diff options
Diffstat (limited to 'cc/cc_test.go')
| -rw-r--r-- | cc/cc_test.go | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/cc/cc_test.go b/cc/cc_test.go index 5d569cc9e..01ac13320 100644 --- a/cc/cc_test.go +++ b/cc/cc_test.go @@ -4386,3 +4386,93 @@ func TestCcBuildBrokenClangProperty(t *testing.T) { }) } } + +func TestCcBuildBrokenClangAsFlags(t *testing.T) { + tests := []struct { + name string + clangAsFlags []string + BuildBrokenClangAsFlags bool + err string + }{ + { + name: "error when clang_asflags is set", + clangAsFlags: []string{"-a", "-b"}, + err: "clang_asflags: property is deprecated", + }, + { + name: "no error when BuildBrokenClangAsFlags is explicitly set to true", + clangAsFlags: []string{"-a", "-b"}, + BuildBrokenClangAsFlags: true, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + bp := fmt.Sprintf(` + cc_library { + name: "foo", + clang_asflags: %s, + }`, `["`+strings.Join(test.clangAsFlags, `","`)+`"]`) + + if test.err == "" { + android.GroupFixturePreparers( + prepareForCcTest, + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + if test.BuildBrokenClangAsFlags { + variables.BuildBrokenClangAsFlags = test.BuildBrokenClangAsFlags + } + }), + ).RunTestWithBp(t, bp) + } else { + prepareForCcTest. + ExtendWithErrorHandler(android.FixtureExpectsOneErrorPattern(test.err)). + RunTestWithBp(t, bp) + } + }) + } +} + +func TestCcBuildBrokenClangCFlags(t *testing.T) { + tests := []struct { + name string + clangCFlags []string + BuildBrokenClangCFlags bool + err string + }{ + { + name: "error when clang_cflags is set", + clangCFlags: []string{"-a", "-b"}, + err: "clang_cflags: property is deprecated", + }, + { + name: "no error when BuildBrokenClangCFlags is explicitly set to true", + clangCFlags: []string{"-a", "-b"}, + BuildBrokenClangCFlags: true, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + bp := fmt.Sprintf(` + cc_library { + name: "foo", + clang_cflags: %s, + }`, `["`+strings.Join(test.clangCFlags, `","`)+`"]`) + + if test.err == "" { + android.GroupFixturePreparers( + prepareForCcTest, + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + if test.BuildBrokenClangCFlags { + variables.BuildBrokenClangCFlags = test.BuildBrokenClangCFlags + } + }), + ).RunTestWithBp(t, bp) + } else { + prepareForCcTest. + ExtendWithErrorHandler(android.FixtureExpectsOneErrorPattern(test.err)). + RunTestWithBp(t, bp) + } + }) + } +} |