diff options
Diffstat (limited to 'cc')
| -rw-r--r-- | cc/afdo_test.go | 50 | ||||
| -rw-r--r-- | cc/binary_test.go | 2 | ||||
| -rw-r--r-- | cc/cc.go | 28 | ||||
| -rw-r--r-- | cc/cc_preprocess_no_configuration_test.go | 2 | ||||
| -rw-r--r-- | cc/cc_test.go | 154 | ||||
| -rw-r--r-- | cc/cc_test_only_property_test.go | 2 | ||||
| -rw-r--r-- | cc/ccdeps.go | 9 | ||||
| -rw-r--r-- | cc/cmake_snapshot_test.go | 6 | ||||
| -rw-r--r-- | cc/gen_test.go | 12 | ||||
| -rw-r--r-- | cc/genrule_test.go | 12 | ||||
| -rw-r--r-- | cc/library_headers_test.go | 10 | ||||
| -rw-r--r-- | cc/library_test.go | 42 | ||||
| -rw-r--r-- | cc/lto_test.go | 28 | ||||
| -rw-r--r-- | cc/ndk_test.go | 4 | ||||
| -rw-r--r-- | cc/object_test.go | 10 | ||||
| -rw-r--r-- | cc/orderfile_test.go | 36 | ||||
| -rw-r--r-- | cc/prebuilt_test.go | 78 | ||||
| -rw-r--r-- | cc/proto_test.go | 10 | ||||
| -rw-r--r-- | cc/sabi_test.go | 8 | ||||
| -rw-r--r-- | cc/sanitize.go | 2 | ||||
| -rw-r--r-- | cc/sanitize_test.go | 456 | ||||
| -rw-r--r-- | cc/sdk_test.go | 20 | ||||
| -rw-r--r-- | cc/test.go | 3 | ||||
| -rw-r--r-- | cc/test_data_test.go | 2 | ||||
| -rw-r--r-- | cc/testing.go | 7 | ||||
| -rw-r--r-- | cc/tidy_test.go | 8 | ||||
| -rw-r--r-- | cc/vendor_public_library_test.go | 14 |
27 files changed, 513 insertions, 502 deletions
diff --git a/cc/afdo_test.go b/cc/afdo_test.go index 0679d1386..d2d5584ff 100644 --- a/cc/afdo_test.go +++ b/cc/afdo_test.go @@ -94,9 +94,9 @@ func TestAfdoDeps(t *testing.T) { afdoLtoLdFlag := "-Wl,-plugin-opt,-import-instr-limit=40" noAfdoLtoLdFlag := "-Wl,-plugin-opt,-import-instr-limit=5" - libTest := result.ModuleForTests("libTest", "android_arm64_armv8-a_shared") - libFooAfdoVariant := result.ModuleForTests("libFoo", "android_arm64_armv8-a_static_afdo-libTest") - libBarAfdoVariant := result.ModuleForTests("libBar", "android_arm64_armv8-a_static_afdo-libTest") + libTest := result.ModuleForTests(t, "libTest", "android_arm64_armv8-a_shared") + libFooAfdoVariant := result.ModuleForTests(t, "libFoo", "android_arm64_armv8-a_static_afdo-libTest") + libBarAfdoVariant := result.ModuleForTests(t, "libBar", "android_arm64_armv8-a_static_afdo-libTest") // Check cFlags of afdo-enabled module and the afdo-variant of its static deps cFlags := libTest.Rule("cc").Args["cFlags"] @@ -138,8 +138,8 @@ func TestAfdoDeps(t *testing.T) { } // Verify non-afdo variant exists and doesn't contain afdo - libFoo := result.ModuleForTests("libFoo", "android_arm64_armv8-a_static") - libBar := result.ModuleForTests("libBar", "android_arm64_armv8-a_static") + libFoo := result.ModuleForTests(t, "libFoo", "android_arm64_armv8-a_static") + libBar := result.ModuleForTests(t, "libBar", "android_arm64_armv8-a_static") cFlags = libFoo.Rule("cc").Args["cFlags"] if strings.Contains(cFlags, profileSampleCFlag) { @@ -166,9 +166,9 @@ func TestAfdoDeps(t *testing.T) { } // Verify that the arm variant does not have FDO since the fdo_profile module only has a profile for arm64 - libTest32 := result.ModuleForTests("libTest", "android_arm_armv7-a-neon_shared") - libFooAfdoVariant32 := result.ModuleForTests("libFoo", "android_arm_armv7-a-neon_static_afdo-libTest_lto-thin") - libBarAfdoVariant32 := result.ModuleForTests("libBar", "android_arm_armv7-a-neon_static_afdo-libTest_lto-thin") + libTest32 := result.ModuleForTests(t, "libTest", "android_arm_armv7-a-neon_shared") + libFooAfdoVariant32 := result.ModuleForTests(t, "libFoo", "android_arm_armv7-a-neon_static_afdo-libTest_lto-thin") + libBarAfdoVariant32 := result.ModuleForTests(t, "libBar", "android_arm_armv7-a-neon_static_afdo-libTest_lto-thin") cFlags = libTest32.Rule("cc").Args["cFlags"] if strings.Contains(cFlags, profileSampleCFlag) { @@ -215,9 +215,9 @@ func TestAfdoDeps(t *testing.T) { } // Verify that the host variants don't enable afdo - libTestHost := result.ModuleForTests("libTest", result.Config.BuildOSTarget.String()+"_shared") - libFooHost := result.ModuleForTests("libFoo", result.Config.BuildOSTarget.String()+"_static_lto-thin") - libBarHost := result.ModuleForTests("libBar", result.Config.BuildOSTarget.String()+"_static_lto-thin") + libTestHost := result.ModuleForTests(t, "libTest", result.Config.BuildOSTarget.String()+"_shared") + libFooHost := result.ModuleForTests(t, "libFoo", result.Config.BuildOSTarget.String()+"_static_lto-thin") + libBarHost := result.ModuleForTests(t, "libBar", result.Config.BuildOSTarget.String()+"_static_lto-thin") cFlags = libTestHost.Rule("cc").Args["cFlags"] if strings.Contains(cFlags, profileSampleCFlag) { @@ -301,9 +301,9 @@ func TestAfdoEnabledOnStaticDepNoAfdo(t *testing.T) { }.AddToFixture(), ).RunTestWithBp(t, bp) - libTest := result.ModuleForTests("libTest", "android_arm64_armv8-a_shared").Module() - libFoo := result.ModuleForTests("libFoo", "android_arm64_armv8-a_static") - libBar := result.ModuleForTests("libBar", "android_arm64_armv8-a_static").Module() + libTest := result.ModuleForTests(t, "libTest", "android_arm64_armv8-a_shared").Module() + libFoo := result.ModuleForTests(t, "libFoo", "android_arm64_armv8-a_static") + libBar := result.ModuleForTests(t, "libBar", "android_arm64_armv8-a_static").Module() if !hasDirectDep(result, libTest, libFoo.Module()) { t.Errorf("libTest missing dependency on non-afdo variant of libFoo") @@ -412,13 +412,13 @@ func TestAfdoEnabledWithMultiArchs(t *testing.T) { }.AddToFixture(), ).RunTestWithBp(t, bp) - fooArm := result.ModuleForTests("foo", "android_arm_armv7-a-neon_shared") + fooArm := result.ModuleForTests(t, "foo", "android_arm_armv7-a-neon_shared") fooArmCFlags := fooArm.Rule("cc").Args["cFlags"] if w := "-fprofile-sample-use=afdo_profiles_package/foo_arm.afdo"; !strings.Contains(fooArmCFlags, w) { t.Errorf("Expected 'foo' to enable afdo, but did not find %q in cflags %q", w, fooArmCFlags) } - fooArm64 := result.ModuleForTests("foo", "android_arm64_armv8-a_shared") + fooArm64 := result.ModuleForTests(t, "foo", "android_arm64_armv8-a_shared") fooArm64CFlags := fooArm64.Rule("cc").Args["cFlags"] if w := "-fprofile-sample-use=afdo_profiles_package/foo_arm64.afdo"; !strings.Contains(fooArm64CFlags, w) { t.Errorf("Expected 'foo' to enable afdo, but did not find %q in cflags %q", w, fooArm64CFlags) @@ -476,11 +476,11 @@ func TestMultipleAfdoRDeps(t *testing.T) { expectedCFlagLibTest := "-fprofile-sample-use=afdo_profiles_package/libTest.afdo" expectedCFlagLibBar := "-fprofile-sample-use=afdo_profiles_package/libBar.afdo" - libTest := result.ModuleForTests("libTest", "android_arm64_armv8-a_shared") - libFooAfdoVariantWithLibTest := result.ModuleForTests("libFoo", "android_arm64_armv8-a_static_afdo-libTest") + libTest := result.ModuleForTests(t, "libTest", "android_arm64_armv8-a_shared") + libFooAfdoVariantWithLibTest := result.ModuleForTests(t, "libFoo", "android_arm64_armv8-a_static_afdo-libTest") - libBar := result.ModuleForTests("libBar", "android_arm64_armv8-a_shared") - libFooAfdoVariantWithLibBar := result.ModuleForTests("libFoo", "android_arm64_armv8-a_static_afdo-libBar") + libBar := result.ModuleForTests(t, "libBar", "android_arm64_armv8-a_shared") + libFooAfdoVariantWithLibBar := result.ModuleForTests(t, "libFoo", "android_arm64_armv8-a_static_afdo-libBar") // Check cFlags of afdo-enabled module and the afdo-variant of its static deps cFlags := libTest.Rule("cc").Args["cFlags"] @@ -543,9 +543,9 @@ func TestAfdoDepsWithoutProfile(t *testing.T) { // -funique-internal-linkage-names. expectedCFlag := "-funique-internal-linkage-names" - libTest := result.ModuleForTests("libTest", "android_arm64_armv8-a_shared") - libFooAfdoVariant := result.ModuleForTests("libFoo", "android_arm64_armv8-a_static_afdo-libTest") - libBarAfdoVariant := result.ModuleForTests("libBar", "android_arm64_armv8-a_static_afdo-libTest") + libTest := result.ModuleForTests(t, "libTest", "android_arm64_armv8-a_shared") + libFooAfdoVariant := result.ModuleForTests(t, "libFoo", "android_arm64_armv8-a_static_afdo-libTest") + libBarAfdoVariant := result.ModuleForTests(t, "libBar", "android_arm64_armv8-a_static_afdo-libTest") // Check cFlags of afdo-enabled module and the afdo-variant of its static deps cFlags := libTest.Rule("cc").Args["cFlags"] @@ -572,8 +572,8 @@ func TestAfdoDepsWithoutProfile(t *testing.T) { } // Verify non-afdo variant exists and doesn't contain afdo - libFoo := result.ModuleForTests("libFoo", "android_arm64_armv8-a_static") - libBar := result.ModuleForTests("libBar", "android_arm64_armv8-a_static") + libFoo := result.ModuleForTests(t, "libFoo", "android_arm64_armv8-a_static") + libBar := result.ModuleForTests(t, "libBar", "android_arm64_armv8-a_static") cFlags = libFoo.Rule("cc").Args["cFlags"] if strings.Contains(cFlags, expectedCFlag) { diff --git a/cc/binary_test.go b/cc/binary_test.go index 3e18940fe..4f001d7c2 100644 --- a/cc/binary_test.go +++ b/cc/binary_test.go @@ -29,7 +29,7 @@ func TestBinaryLinkerScripts(t *testing.T) { linker_scripts: ["foo.ld", "bar.ld"], }`) - binFoo := result.ModuleForTests("foo", "android_arm64_armv8-a").Rule("ld") + binFoo := result.ModuleForTests(t, "foo", "android_arm64_armv8-a").Rule("ld") android.AssertStringListContains(t, "missing dependency on linker_scripts", binFoo.Implicits.Strings(), "foo.ld") @@ -4056,7 +4056,23 @@ func (c *Module) AndroidMkWriteAdditionalDependenciesForSourceAbiDiff(w io.Write var _ android.ApexModule = (*Module)(nil) // Implements android.ApexModule -func (c *Module) OutgoingDepIsInSameApex(depTag blueprint.DependencyTag) bool { +func (c *Module) GetDepInSameApexChecker() android.DepInSameApexChecker { + return CcDepInSameApexChecker{ + Static: c.static(), + HasStubsVariants: c.HasStubsVariants(), + IsLlndk: c.IsLlndk(), + Host: c.Host(), + } +} + +type CcDepInSameApexChecker struct { + Static bool + HasStubsVariants bool + IsLlndk bool + Host bool +} + +func (c CcDepInSameApexChecker) OutgoingDepIsInSameApex(depTag blueprint.DependencyTag) bool { if depTag == StubImplDepTag { // We don't track from an implementation library to its stubs. return false @@ -4069,7 +4085,7 @@ func (c *Module) OutgoingDepIsInSameApex(depTag blueprint.DependencyTag) bool { } libDepTag, isLibDepTag := depTag.(libraryDependencyTag) - if isLibDepTag && c.static() && libDepTag.shared() { + if isLibDepTag && c.Static && libDepTag.shared() { // shared_lib dependency from a static lib is considered as crossing // the APEX boundary because the dependency doesn't actually is // linked; the dependency is used only during the compilation phase. @@ -4083,11 +4099,11 @@ func (c *Module) OutgoingDepIsInSameApex(depTag blueprint.DependencyTag) bool { return true } -func (c *Module) IncomingDepIsInSameApex(depTag blueprint.DependencyTag) bool { - if c.Host() { +func (c CcDepInSameApexChecker) IncomingDepIsInSameApex(depTag blueprint.DependencyTag) bool { + if c.Host { return false } - if c.HasStubsVariants() { + if c.HasStubsVariants { if IsSharedDepTag(depTag) && !IsExplicitImplSharedDepTag(depTag) { // dynamic dep to a stubs lib crosses APEX boundary return false @@ -4100,7 +4116,7 @@ func (c *Module) IncomingDepIsInSameApex(depTag blueprint.DependencyTag) bool { return false } } - if c.IsLlndk() { + if c.IsLlndk { return false } diff --git a/cc/cc_preprocess_no_configuration_test.go b/cc/cc_preprocess_no_configuration_test.go index c6eae4c3f..f09c44a46 100644 --- a/cc/cc_preprocess_no_configuration_test.go +++ b/cc/cc_preprocess_no_configuration_test.go @@ -36,7 +36,7 @@ func TestCcPreprocessNoConfiguration(t *testing.T) { result := fixture.RunTest(t) - foo := result.ModuleForTests("foo", "") + foo := result.ModuleForTests(t, "foo", "") actual := foo.Rule("cc").Args["cFlags"] expected := "-E -DANDROID -Ifoo/bar" android.AssertStringEquals(t, "cflags should be correct", expected, actual) diff --git a/cc/cc_test.go b/cc/cc_test.go index 98af7b655..2c06924ea 100644 --- a/cc/cc_test.go +++ b/cc/cc_test.go @@ -160,7 +160,7 @@ func TestVendorSrc(t *testing.T) { } `) - ld := ctx.ModuleForTests("libTest", vendorVariant).Rule("ld") + ld := ctx.ModuleForTests(t, "libTest", vendorVariant).Rule("ld") var objs []string for _, o := range ld.Inputs { objs = append(objs, o.Base()) @@ -171,7 +171,7 @@ func TestVendorSrc(t *testing.T) { } func checkInstallPartition(t *testing.T, ctx *android.TestContext, name, variant, expected string) { - mod := ctx.ModuleForTests(name, variant).Module().(*Module) + mod := ctx.ModuleForTests(t, name, variant).Module().(*Module) partitionDefined := false checkPartition := func(specific bool, partition string) { if specific { @@ -311,7 +311,7 @@ func TestDataLibs(t *testing.T) { config := TestConfig(t.TempDir(), android.Android, nil, bp, nil) ctx := testCcWithConfig(t, config) - testingModule := ctx.ModuleForTests("main_test", "android_arm_armv7-a-neon") + testingModule := ctx.ModuleForTests(t, "main_test", "android_arm_armv7-a-neon") testBinary := testingModule.Module().(*Module).linker.(*testBinary) outputFiles := testingModule.OutputFiles(ctx, t, "") if len(outputFiles) != 1 { @@ -363,7 +363,7 @@ func TestDataLibsRelativeInstallPath(t *testing.T) { config := TestConfig(t.TempDir(), android.Android, nil, bp, nil) ctx := testCcWithConfig(t, config) - testingModule := ctx.ModuleForTests("main_test", "android_arm_armv7-a-neon") + testingModule := ctx.ModuleForTests(t, "main_test", "android_arm_armv7-a-neon") module := testingModule.Module() testBinary := module.(*Module).linker.(*testBinary) outputFiles := testingModule.OutputFiles(ctx, t, "") @@ -405,7 +405,7 @@ func TestTestBinaryTestSuites(t *testing.T) { ` ctx := prepareForCcTest.RunTestWithBp(t, bp).TestContext - module := ctx.ModuleForTests("main_test", "android_arm_armv7-a-neon").Module() + module := ctx.ModuleForTests(t, "main_test", "android_arm_armv7-a-neon").Module() entries := android.AndroidMkInfoForTest(t, ctx, module).PrimaryInfo compatEntries := entries.EntryMap["LOCAL_COMPATIBILITY_SUITE"] @@ -437,7 +437,7 @@ func TestTestLibraryTestSuites(t *testing.T) { ` ctx := prepareForCcTest.RunTestWithBp(t, bp).TestContext - module := ctx.ModuleForTests("main_test_lib", "android_arm_armv7-a-neon_shared").Module() + module := ctx.ModuleForTests(t, "main_test_lib", "android_arm_armv7-a-neon_shared").Module() entries := android.AndroidMkInfoForTest(t, ctx, module).PrimaryInfo compatEntries := entries.EntryMap["LOCAL_COMPATIBILITY_SUITE"] @@ -668,7 +668,7 @@ func TestMakeLinkType(t *testing.T) { } for _, test := range tests { t.Run(test.name, func(t *testing.T) { - module := ctx.ModuleForTests(test.name, test.variant).Module().(*Module) + module := ctx.ModuleForTests(t, test.name, test.variant).Module().(*Module) assertString(t, module.makeLinkType, test.expected) }) } @@ -861,10 +861,10 @@ func TestStaticLibDepReordering(t *testing.T) { `) variant := "android_arm64_armv8-a_static" - moduleA := ctx.ModuleForTests("a", variant).Module().(*Module) + moduleA := ctx.ModuleForTests(t, "a", variant).Module().(*Module) staticLibInfo, _ := android.OtherModuleProvider(ctx, moduleA, StaticLibraryInfoProvider) actual := android.Paths(staticLibInfo.TransitiveStaticLibrariesForOrdering.ToList()).RelativeToTop() - expected := GetOutputPaths(ctx, variant, []string{"a", "c", "b", "d"}) + expected := GetOutputPaths(t, ctx, variant, []string{"a", "c", "b", "d"}) if !reflect.DeepEqual(actual, expected) { t.Errorf("staticDeps orderings were not propagated correctly"+ @@ -897,10 +897,10 @@ func TestStaticLibDepReorderingWithShared(t *testing.T) { `) variant := "android_arm64_armv8-a_static" - moduleA := ctx.ModuleForTests("a", variant).Module().(*Module) + moduleA := ctx.ModuleForTests(t, "a", variant).Module().(*Module) staticLibInfo, _ := android.OtherModuleProvider(ctx, moduleA, StaticLibraryInfoProvider) actual := android.Paths(staticLibInfo.TransitiveStaticLibrariesForOrdering.ToList()).RelativeToTop() - expected := GetOutputPaths(ctx, variant, []string{"a", "c", "b"}) + expected := GetOutputPaths(t, ctx, variant, []string{"a", "c", "b"}) if !reflect.DeepEqual(actual, expected) { t.Errorf("staticDeps orderings did not account for shared libs"+ @@ -1004,12 +1004,12 @@ func TestLlndkLibrary(t *testing.T) { } android.AssertArrayString(t, "variants for llndk stubs", expected, actual) - params := result.ModuleForTests("libllndk", "android_vendor_arm_armv7-a-neon_shared").Description("generate stub") + params := result.ModuleForTests(t, "libllndk", "android_vendor_arm_armv7-a-neon_shared").Description("generate stub") android.AssertSame(t, "use Vendor API level for default stubs", "35", params.Args["apiLevel"]) checkExportedIncludeDirs := func(module, variant string, expectedSystemDirs []string, expectedDirs ...string) { t.Helper() - m := result.ModuleForTests(module, variant).Module() + m := result.ModuleForTests(t, module, variant).Module() f, _ := android.OtherModuleProvider(result, m, FlagExporterInfoProvider) android.AssertPathsRelativeToTopEquals(t, "exported include dirs for "+module+"["+variant+"]", expectedDirs, f.IncludeDirs) @@ -1030,14 +1030,14 @@ func TestLlndkLibrary(t *testing.T) { checkAbiLinkerIncludeDirs := func(module string) { t.Helper() - coreModule := result.ModuleForTests(module, coreVariant) + coreModule := result.ModuleForTests(t, module, coreVariant) abiCheckFlags := "" for _, output := range coreModule.AllOutputs() { if strings.HasSuffix(output, ".so.llndk.lsdump") { abiCheckFlags = coreModule.Output(output).Args["exportedHeaderFlags"] } } - vendorModule := result.ModuleForTests(module, vendorVariant).Module() + vendorModule := result.ModuleForTests(t, module, vendorVariant).Module() vendorInfo, _ := android.OtherModuleProvider(result, vendorModule, FlagExporterInfoProvider) vendorDirs := android.Concat(vendorInfo.IncludeDirs, vendorInfo.SystemIncludeDirs) android.AssertStringEquals(t, module+" has different exported include dirs for vendor variant and ABI check", @@ -1078,7 +1078,7 @@ func TestLlndkHeaders(t *testing.T) { `) // _static variant is used since _shared reuses *.o from the static variant - cc := ctx.ModuleForTests("libvendor", "android_vendor_arm_armv7-a-neon_static").Rule("cc") + cc := ctx.ModuleForTests(t, "libvendor", "android_vendor_arm_armv7-a-neon_static").Rule("cc") cflags := cc.Args["cFlags"] if !strings.Contains(cflags, "-Imy_include") { t.Errorf("cflags for libvendor must contain -Imy_include, but was %#v.", cflags) @@ -1189,33 +1189,33 @@ func TestRuntimeLibs(t *testing.T) { // runtime_libs for core variants use the module names without suffixes. variant := "android_arm64_armv8-a_shared" - module := ctx.ModuleForTests("libvendor_available1", variant).Module().(*Module) + module := ctx.ModuleForTests(t, "libvendor_available1", variant).Module().(*Module) checkRuntimeLibs(t, []string{"liball_available"}, module) - module = ctx.ModuleForTests("libproduct_available1", variant).Module().(*Module) + module = ctx.ModuleForTests(t, "libproduct_available1", variant).Module().(*Module) checkRuntimeLibs(t, []string{"liball_available"}, module) - module = ctx.ModuleForTests("libcore", variant).Module().(*Module) + module = ctx.ModuleForTests(t, "libcore", variant).Module().(*Module) checkRuntimeLibs(t, []string{"liball_available"}, module) // runtime_libs for vendor variants have '.vendor' suffixes if the modules have both core // and vendor variants. variant = "android_vendor_arm64_armv8-a_shared" - module = ctx.ModuleForTests("libvendor_available1", variant).Module().(*Module) + module = ctx.ModuleForTests(t, "libvendor_available1", variant).Module().(*Module) checkRuntimeLibs(t, []string{"liball_available.vendor"}, module) - module = ctx.ModuleForTests("libvendor2", variant).Module().(*Module) + module = ctx.ModuleForTests(t, "libvendor2", variant).Module().(*Module) checkRuntimeLibs(t, []string{"liball_available.vendor", "libvendor1", "libproduct_vendor.vendor"}, module) // runtime_libs for product variants have '.product' suffixes if the modules have both core // and product variants. variant = "android_product_arm64_armv8-a_shared" - module = ctx.ModuleForTests("libproduct_available1", variant).Module().(*Module) + module = ctx.ModuleForTests(t, "libproduct_available1", variant).Module().(*Module) checkRuntimeLibs(t, []string{"liball_available.product"}, module) - module = ctx.ModuleForTests("libproduct2", variant).Module().(*Module) + module = ctx.ModuleForTests(t, "libproduct2", variant).Module().(*Module) checkRuntimeLibs(t, []string{"liball_available.product", "libproduct1", "libproduct_vendor"}, module) } @@ -1224,11 +1224,11 @@ func TestExcludeRuntimeLibs(t *testing.T) { ctx := testCc(t, runtimeLibAndroidBp) variant := "android_arm64_armv8-a_shared" - module := ctx.ModuleForTests("libvendor_available2", variant).Module().(*Module) + module := ctx.ModuleForTests(t, "libvendor_available2", variant).Module().(*Module) checkRuntimeLibs(t, []string{"liball_available"}, module) variant = "android_vendor_arm64_armv8-a_shared" - module = ctx.ModuleForTests("libvendor_available2", variant).Module().(*Module) + module = ctx.ModuleForTests(t, "libvendor_available2", variant).Module().(*Module) checkRuntimeLibs(t, nil, module) } @@ -1261,12 +1261,12 @@ func TestStaticLibDepExport(t *testing.T) { // Check the shared version of lib2. variant := "android_arm64_armv8-a_shared" - module := ctx.ModuleForTests("lib2", variant).Module().(*Module) + module := ctx.ModuleForTests(t, "lib2", variant).Module().(*Module) checkStaticLibs(t, []string{"lib1", "libc++demangle", "libclang_rt.builtins"}, module) // Check the static version of lib2. variant = "android_arm64_armv8-a_static" - module = ctx.ModuleForTests("lib2", variant).Module().(*Module) + module = ctx.ModuleForTests(t, "lib2", variant).Module().(*Module) // libc++_static is linked additionally. checkStaticLibs(t, []string{"lib1", "libc++_static", "libc++demangle", "libclang_rt.builtins"}, module) } @@ -1387,7 +1387,7 @@ func TestRecovery(t *testing.T) { t.Errorf("multilib was set to 32 for librecovery32, but its variants has %s.", arm64) } - recoveryModule := ctx.ModuleForTests("libHalInRecovery", recoveryVariant).Module().(*Module) + recoveryModule := ctx.ModuleForTests(t, "libHalInRecovery", recoveryVariant).Module().(*Module) if !recoveryModule.Platform() { t.Errorf("recovery variant of libHalInRecovery must not specific to device, soc, or product") } @@ -1412,7 +1412,7 @@ func TestDataLibsPrebuiltSharedTestLibrary(t *testing.T) { config := TestConfig(t.TempDir(), android.Android, nil, bp, nil) ctx := testCcWithConfig(t, config) - testingModule := ctx.ModuleForTests("main_test", "android_arm_armv7-a-neon") + testingModule := ctx.ModuleForTests(t, "main_test", "android_arm_armv7-a-neon") module := testingModule.Module() testBinary := module.(*Module).linker.(*testBinary) outputFiles := testingModule.OutputFiles(ctx, t, "") @@ -1487,14 +1487,14 @@ func TestVersionedStubs(t *testing.T) { } } - libBarLinkRule := ctx.ModuleForTests("libBar", "android_arm64_armv8-a_shared").Rule("ld") + libBarLinkRule := ctx.ModuleForTests(t, "libBar", "android_arm64_armv8-a_shared").Rule("ld") libFlags := libBarLinkRule.Args["libFlags"] libFoo1StubPath := "libFoo/android_arm64_armv8-a_shared_1/libFoo.so" if !strings.Contains(libFlags, libFoo1StubPath) { t.Errorf("%q is not found in %q", libFoo1StubPath, libFlags) } - libBarCompileRule := ctx.ModuleForTests("libBar", "android_arm64_armv8-a_shared").Rule("cc") + libBarCompileRule := ctx.ModuleForTests(t, "libBar", "android_arm64_armv8-a_shared").Rule("cc") cFlags := libBarCompileRule.Args["cFlags"] libFoo1VersioningMacro := "-D__LIBFOO_API__=1" if !strings.Contains(cFlags, libFoo1VersioningMacro) { @@ -1550,7 +1550,7 @@ func TestStaticLibArchiveArgs(t *testing.T) { }`) variant := "android_arm64_armv8-a_static" - arRule := ctx.ModuleForTests("baz", variant).Rule("ar") + arRule := ctx.ModuleForTests(t, "baz", variant).Rule("ar") // For static libraries, the object files of a whole static dep are included in the archive // directly @@ -1591,7 +1591,7 @@ func TestSharedLibLinkingArgs(t *testing.T) { }`) variant := "android_arm64_armv8-a_shared" - linkRule := ctx.ModuleForTests("baz", variant).Rule("ld") + linkRule := ctx.ModuleForTests(t, "baz", variant).Rule("ld") libFlags := linkRule.Args["libFlags"] // When dynamically linking, we expect static dependencies to be found on the command line if expected := "foo.a"; !strings.Contains(libFlags, expected) { @@ -1623,7 +1623,7 @@ func TestStaticExecutable(t *testing.T) { }`) variant := "android_arm64_armv8-a" - binModuleRule := ctx.ModuleForTests("static_test", variant).Rule("ld") + binModuleRule := ctx.ModuleForTests(t, "static_test", variant).Rule("ld") libFlags := binModuleRule.Args["libFlags"] systemStaticLibs := []string{"libc.a", "libm.a"} for _, lib := range systemStaticLibs { @@ -1666,9 +1666,9 @@ func TestStaticDepsOrderWithStubs(t *testing.T) { }, }`) - mybin := ctx.ModuleForTests("mybin", "android_arm64_armv8-a").Rule("ld") + mybin := ctx.ModuleForTests(t, "mybin", "android_arm64_armv8-a").Rule("ld") actual := mybin.Implicits[:2] - expected := GetOutputPaths(ctx, "android_arm64_armv8-a_static", []string{"libfooB", "libfooC"}) + expected := GetOutputPaths(t, ctx, "android_arm64_armv8-a_static", []string{"libfooB", "libfooC"}) if !reflect.DeepEqual(actual, expected) { t.Errorf("staticDeps orderings were not propagated correctly"+ @@ -1775,7 +1775,7 @@ func VerifyAFLFuzzTargetVariant(t *testing.T, variant string) { checkPcGuardFlag := func( modName string, variantName string, shouldHave bool) { - cc := ctx.ModuleForTests(modName, variantName).Rule("cc") + cc := ctx.ModuleForTests(t, modName, variantName).Rule("cc") cFlags, ok := cc.Args["cFlags"] if !ok { @@ -1802,9 +1802,9 @@ func VerifyAFLFuzzTargetVariant(t *testing.T, variant string) { checkPcGuardFlag(moduleName, variant+"_static", false) checkPcGuardFlag(moduleName, variant+"_static_fuzzer_afl", true) - ctx.ModuleForTests("afl_fuzz_shared_lib", + ctx.ModuleForTests(t, "afl_fuzz_shared_lib", "android_arm64_armv8-a_shared").Rule("cc") - ctx.ModuleForTests("afl_fuzz_shared_lib", + ctx.ModuleForTests(t, "afl_fuzz_shared_lib", "android_arm64_armv8-a_shared_fuzzer").Rule("cc") } @@ -1833,7 +1833,7 @@ func TestFuzzTarget(t *testing.T) { }`) variant := "android_arm64_armv8-a_fuzzer" - ctx.ModuleForTests("fuzz_smoke_test", variant).Rule("cc") + ctx.ModuleForTests(t, "fuzz_smoke_test", variant).Rule("cc") } func assertString(t *testing.T, got, expected string) { @@ -1897,24 +1897,24 @@ func TestDefaults(t *testing.T) { defaults: ["defaults"], }`) - shared := ctx.ModuleForTests("libshared", "android_arm64_armv8-a_shared").Rule("ld") + shared := ctx.ModuleForTests(t, "libshared", "android_arm64_armv8-a_shared").Rule("ld") if g, w := pathsToBase(shared.Inputs), []string{"foo.o", "baz.o"}; !reflect.DeepEqual(w, g) { t.Errorf("libshared ld rule wanted %q, got %q", w, g) } - bothShared := ctx.ModuleForTests("libboth", "android_arm64_armv8-a_shared").Rule("ld") + bothShared := ctx.ModuleForTests(t, "libboth", "android_arm64_armv8-a_shared").Rule("ld") if g, w := pathsToBase(bothShared.Inputs), []string{"foo.o", "baz.o"}; !reflect.DeepEqual(w, g) { t.Errorf("libboth ld rule wanted %q, got %q", w, g) } - binary := ctx.ModuleForTests("binary", "android_arm64_armv8-a").Rule("ld") + binary := ctx.ModuleForTests(t, "binary", "android_arm64_armv8-a").Rule("ld") if g, w := pathsToBase(binary.Inputs), []string{"foo.o"}; !reflect.DeepEqual(w, g) { t.Errorf("binary ld rule wanted %q, got %q", w, g) } - static := ctx.ModuleForTests("libstatic", "android_arm64_armv8-a_static").Rule("ar") + static := ctx.ModuleForTests(t, "libstatic", "android_arm64_armv8-a_static").Rule("ar") if g, w := pathsToBase(static.Inputs), []string{"foo.o", "bar.o"}; !reflect.DeepEqual(w, g) { t.Errorf("libstatic ar rule wanted %q, got %q", w, g) } - bothStatic := ctx.ModuleForTests("libboth", "android_arm64_armv8-a_static").Rule("ar") + bothStatic := ctx.ModuleForTests(t, "libboth", "android_arm64_armv8-a_static").Rule("ar") if g, w := pathsToBase(bothStatic.Inputs), []string{"foo.o", "bar.o"}; !reflect.DeepEqual(w, g) { t.Errorf("libboth ar rule wanted %q, got %q", w, g) } @@ -1973,12 +1973,12 @@ func TestEmptyWholeStaticLibsAllowMissingDependencies(t *testing.T) { android.PrepareForTestWithAllowMissingDependencies, ).RunTestWithBp(t, bp) - libbar := result.ModuleForTests("libbar", "android_arm64_armv8-a_static").Output("libbar.a") + libbar := result.ModuleForTests(t, "libbar", "android_arm64_armv8-a_static").Output("libbar.a") android.AssertDeepEquals(t, "libbar rule", android.ErrorRule, libbar.Rule) android.AssertStringDoesContain(t, "libbar error", libbar.Args["error"], "missing dependencies: libmissing") - libfoo := result.ModuleForTests("libfoo", "android_arm64_armv8-a_static").Output("libfoo.a") + libfoo := result.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_static").Output("libfoo.a") android.AssertStringListContains(t, "libfoo.a dependencies", libfoo.Inputs.Strings(), libbar.Output.String()) } @@ -2025,11 +2025,11 @@ func TestInstallSharedLibs(t *testing.T) { config := TestConfig(t.TempDir(), android.Android, nil, bp, nil) ctx := testCcWithConfig(t, config) - hostBin := ctx.ModuleForTests("bin", config.BuildOSTarget.String()).Description("install") - hostShared := ctx.ModuleForTests("libshared", config.BuildOSTarget.String()+"_shared").Description("install") - hostRuntime := ctx.ModuleForTests("libruntime", config.BuildOSTarget.String()+"_shared").Description("install") - hostTransitive := ctx.ModuleForTests("libtransitive", config.BuildOSTarget.String()+"_shared").Description("install") - hostTool := ctx.ModuleForTests("tool", config.BuildOSTarget.String()).Description("install") + hostBin := ctx.ModuleForTests(t, "bin", config.BuildOSTarget.String()).Description("install") + hostShared := ctx.ModuleForTests(t, "libshared", config.BuildOSTarget.String()+"_shared").Description("install") + hostRuntime := ctx.ModuleForTests(t, "libruntime", config.BuildOSTarget.String()+"_shared").Description("install") + hostTransitive := ctx.ModuleForTests(t, "libtransitive", config.BuildOSTarget.String()+"_shared").Description("install") + hostTool := ctx.ModuleForTests(t, "tool", config.BuildOSTarget.String()).Description("install") if g, w := hostBin.Implicits.Strings(), hostShared.Output.String(); !android.InList(w, g) { t.Errorf("expected host bin dependency %q, got %q", w, g) @@ -2051,10 +2051,10 @@ func TestInstallSharedLibs(t *testing.T) { t.Errorf("expected no host bin dependency %q, got %q", w, g) } - deviceBin := ctx.ModuleForTests("bin", "android_arm64_armv8-a").Description("install") - deviceShared := ctx.ModuleForTests("libshared", "android_arm64_armv8-a_shared").Description("install") - deviceTransitive := ctx.ModuleForTests("libtransitive", "android_arm64_armv8-a_shared").Description("install") - deviceRuntime := ctx.ModuleForTests("libruntime", "android_arm64_armv8-a_shared").Description("install") + deviceBin := ctx.ModuleForTests(t, "bin", "android_arm64_armv8-a").Description("install") + deviceShared := ctx.ModuleForTests(t, "libshared", "android_arm64_armv8-a_shared").Description("install") + deviceTransitive := ctx.ModuleForTests(t, "libtransitive", "android_arm64_armv8-a_shared").Description("install") + deviceRuntime := ctx.ModuleForTests(t, "libruntime", "android_arm64_armv8-a_shared").Description("install") if g, w := deviceBin.OrderOnly.Strings(), deviceShared.Output.String(); !android.InList(w, g) { t.Errorf("expected device bin dependency %q, got %q", w, g) @@ -2104,7 +2104,7 @@ func TestStubsLibReexportsHeaders(t *testing.T) { srcs: ["foo.c"], }`) - cFlags := ctx.ModuleForTests("libclient", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"] + cFlags := ctx.ModuleForTests(t, "libclient", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"] if !strings.Contains(cFlags, "-Iinclude/libbar") { t.Errorf("expected %q in cflags, got %q", "-Iinclude/libbar", cFlags) @@ -2144,7 +2144,7 @@ func TestAidlLibraryWithHeaders(t *testing.T) { }.AddToFixture(), ).RunTest(t).TestContext - libfoo := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_static") + libfoo := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_static") android.AssertPathsRelativeToTopEquals( t, @@ -2192,7 +2192,7 @@ func TestAidlFlagsPassedToTheAidlCompiler(t *testing.T) { } `) - libfoo := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_static") + libfoo := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_static") manifest := android.RuleBuilderSboxProtoForTests(t, ctx.TestContext, libfoo.Output("aidl.sbox.textproto")) aidlCommand := manifest.Commands[0].GetCommand() expectedAidlFlag := "-Werror" @@ -2243,7 +2243,7 @@ func TestAidlFlagsWithMinSdkVersion(t *testing.T) { `+tc.sdkVersion+` } `) - libfoo := ctx.ModuleForTests("libfoo", tc.variant) + libfoo := ctx.ModuleForTests(t, "libfoo", tc.variant) manifest := android.RuleBuilderSboxProtoForTests(t, ctx, libfoo.Output("aidl.sbox.textproto")) aidlCommand := manifest.Commands[0].GetCommand() expectedAidlFlag := "--min_sdk_version=" + tc.expected @@ -2312,7 +2312,7 @@ func TestMinSdkVersionInClangTriple(t *testing.T) { min_sdk_version: "29", }`) - cFlags := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"] + cFlags := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"] android.AssertStringDoesContain(t, "min sdk version", cFlags, "-target aarch64-linux-android29") } @@ -2332,7 +2332,7 @@ func TestNonDigitMinSdkVersionInClangTriple(t *testing.T) { }), ).RunTestWithBp(t, bp) ctx := result.TestContext - cFlags := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"] + cFlags := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"] android.AssertStringDoesContain(t, "min sdk version", cFlags, "-target aarch64-linux-android31") } @@ -2439,7 +2439,7 @@ func TestIncludeDirsExporting(t *testing.T) { export_generated_headers: ["genrule_bar"], } `) - foo := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Module() + foo := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Module() checkIncludeDirs(t, ctx, foo, expectedIncludeDirs(` foo/standard @@ -2450,7 +2450,7 @@ func TestIncludeDirsExporting(t *testing.T) { expectedOrderOnlyDeps(`.intermediates/genrule_foo/gen/generated_headers/foo/generated_header.h`), ) - bar := ctx.ModuleForTests("libbar", "android_arm64_armv8-a_shared").Module() + bar := ctx.ModuleForTests(t, "libbar", "android_arm64_armv8-a_shared").Module() checkIncludeDirs(t, ctx, bar, expectedIncludeDirs(` bar/standard @@ -2483,7 +2483,7 @@ func TestIncludeDirsExporting(t *testing.T) { export_generated_headers: ["genrule_bar"], } `) - foo := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Module() + foo := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Module() checkIncludeDirs(t, ctx, foo, expectedIncludeDirs(` foo/standard @@ -2494,7 +2494,7 @@ func TestIncludeDirsExporting(t *testing.T) { expectedOrderOnlyDeps(`.intermediates/genrule_foo/gen/generated_headers/foo/generated_header.h`), ) - bar := ctx.ModuleForTests("libbar", "android_arm64_armv8-a_shared").Module() + bar := ctx.ModuleForTests(t, "libbar", "android_arm64_armv8-a_shared").Module() checkIncludeDirs(t, ctx, bar, expectedIncludeDirs(` bar/standard @@ -2540,7 +2540,7 @@ func TestIncludeDirsExporting(t *testing.T) { } } `).TestContext - foo := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Module() + foo := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Module() checkIncludeDirs(t, ctx, foo, expectedIncludeDirs(` .intermediates/libfoo/android_arm64_armv8-a_shared/gen/aidl @@ -2580,7 +2580,7 @@ func TestIncludeDirsExporting(t *testing.T) { } } `) - foo := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Module() + foo := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Module() checkIncludeDirs(t, ctx, foo, expectedIncludeDirs(` .intermediates/libfoo/android_arm64_armv8-a_shared/gen/proto @@ -2607,7 +2607,7 @@ func TestIncludeDirsExporting(t *testing.T) { ], } `) - foo := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Module() + foo := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Module() checkIncludeDirs(t, ctx, foo, expectedIncludeDirs(` .intermediates/libfoo/android_arm64_armv8-a_shared/gen/sysprop/include @@ -2877,7 +2877,7 @@ func TestIncludeDirectoryOrdering(t *testing.T) { PrepareForIntegrationTestWithCc, android.FixtureAddTextFile("external/foo/Android.bp", bp), ).RunTest(t) - cflags := ctx.ModuleForTests("libfoo", variant).Output("obj/external/foo/foo.o").Args["cFlags"] + cflags := ctx.ModuleForTests(t, "libfoo", variant).Output("obj/external/foo/foo.o").Args["cFlags"] var includes []string flags := strings.Split(cflags, " ") @@ -2931,7 +2931,7 @@ func TestAddnoOverride64GlobalCflags(t *testing.T) { srcs: ["foo.c"], }`) - cFlags := ctx.ModuleForTests("libclient", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"] + cFlags := ctx.ModuleForTests(t, "libclient", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"] if !strings.Contains(cFlags, "${config.NoOverride64GlobalCflags}") { t.Errorf("expected %q in cflags, got %q", "${config.NoOverride64GlobalCflags}", cFlags) @@ -3095,7 +3095,7 @@ func TestStrippedAllOutputFile(t *testing.T) { ` config := TestConfig(t.TempDir(), android.Android, nil, bp, nil) ctx := testCcWithConfig(t, config) - testingModule := ctx.ModuleForTests("test_lib", "android_arm_armv7-a-neon_shared") + testingModule := ctx.ModuleForTests(t, "test_lib", "android_arm_armv7-a-neon_shared") outputFile := testingModule.OutputFiles(ctx, t, "stripped_all") if !strings.HasSuffix(outputFile.Strings()[0], "/stripped_all/test_lib.so") { t.Errorf("Unexpected output file: %s", outputFile.Strings()[0]) @@ -3140,8 +3140,8 @@ func TestImageVariants(t *testing.T) { if imageVariant != "core" { imageVariantStr = "_" + imageVariant } - binFooModule := ctx.ModuleForTests("binfoo", "android"+imageVariantStr+"_arm64_armv8-a").Module() - libBarModule := ctx.ModuleForTests("libbar", "android"+imageVariantStr+"_arm64_armv8-a_shared").Module() + binFooModule := ctx.ModuleForTests(t, "binfoo", "android"+imageVariantStr+"_arm64_armv8-a").Module() + libBarModule := ctx.ModuleForTests(t, "libbar", "android"+imageVariantStr+"_arm64_armv8-a_shared").Module() android.AssertBoolEquals(t, "binfoo should have dependency on libbar with image variant "+imageVariant, true, hasDep(binFooModule, libBarModule)) } @@ -3172,7 +3172,7 @@ func TestVendorOrProductVariantUsesPlatformSdkVersionAsDefault(t *testing.T) { ctx := prepareForCcTest.RunTestWithBp(t, bp) testSdkVersionFlag := func(module, variant, version string) { - flags := ctx.ModuleForTests(module, "android_"+variant+"_arm64_armv8-a_static").Rule("cc").Args["cFlags"] + flags := ctx.ModuleForTests(t, module, "android_"+variant+"_arm64_armv8-a_static").Rule("cc").Args["cFlags"] android.AssertStringDoesContain(t, "target SDK version", flags, "-target aarch64-linux-android"+version) } @@ -3199,14 +3199,14 @@ func TestClangVerify(t *testing.T) { } `) - module := ctx.ModuleForTests("lib_no_clang_verify", "android_arm64_armv8-a_shared") + module := ctx.ModuleForTests(t, "lib_no_clang_verify", "android_arm64_armv8-a_shared") cFlags_no_cv := module.Rule("cc").Args["cFlags"] if strings.Contains(cFlags_no_cv, "-Xclang") || strings.Contains(cFlags_no_cv, "-verify") { t.Errorf("expected %q not in cflags, got %q", "-Xclang -verify", cFlags_no_cv) } - cFlags_cv := ctx.ModuleForTests("lib_clang_verify", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"] + cFlags_cv := ctx.ModuleForTests(t, "lib_clang_verify", "android_arm64_armv8-a_shared").Rule("cc").Args["cFlags"] if strings.Contains(cFlags_cv, "-Xclang") && strings.Contains(cFlags_cv, "-verify") { t.Errorf("expected %q in cflags, got %q", "-Xclang -verify", cFlags_cv) } diff --git a/cc/cc_test_only_property_test.go b/cc/cc_test_only_property_test.go index 972e86bc5..a178cad68 100644 --- a/cc/cc_test_only_property_test.go +++ b/cc/cc_test_only_property_test.go @@ -173,7 +173,7 @@ func TestInvalidTestOnlyTargets(t *testing.T) { func getTeamProtoOutput(t *testing.T, ctx *android.TestResult) *team_proto.AllTeams { teams := new(team_proto.AllTeams) - config := ctx.SingletonForTests("all_teams") + config := ctx.SingletonForTests(t, "all_teams") allOutputs := config.AllOutputs() protoPath := allOutputs[0] diff --git a/cc/ccdeps.go b/cc/ccdeps.go index 469fe31fa..4247778e8 100644 --- a/cc/ccdeps.go +++ b/cc/ccdeps.go @@ -41,8 +41,6 @@ type ccdepsGeneratorSingleton struct { outputPath android.Path } -var _ android.SingletonMakeVarsProvider = (*ccdepsGeneratorSingleton)(nil) - const ( ccdepsJsonFileName = "module_bp_cc_deps.json" cClang = "clang" @@ -114,13 +112,6 @@ func (c *ccdepsGeneratorSingleton) GenerateBuildActions(ctx android.SingletonCon Rule: android.Touch, Output: ccfpath, }) -} - -func (c *ccdepsGeneratorSingleton) MakeVars(ctx android.MakeVarsContext) { - if c.outputPath == nil { - return - } - ctx.DistForGoal("general-tests", c.outputPath) } diff --git a/cc/cmake_snapshot_test.go b/cc/cmake_snapshot_test.go index b6f4369b0..d08096a82 100644 --- a/cc/cmake_snapshot_test.go +++ b/cc/cmake_snapshot_test.go @@ -49,7 +49,7 @@ func TestEmptyCmakeSnapshot(t *testing.T) { t.Skip("CMake snapshots are only supported on Linux") } - snapshotModule := result.ModuleForTests("foo", "linux_glibc_x86_64") + snapshotModule := result.ModuleForTests(t, "foo", "linux_glibc_x86_64") wasGenerated(t, &snapshotModule, "CMakeLists.txt", "rawFileCopy") wasGenerated(t, &snapshotModule, "foo.zip", "") @@ -77,7 +77,7 @@ func TestCmakeSnapshotWithBinary(t *testing.T) { t.Skip("CMake snapshots are only supported on Linux") } - snapshotModule := result.ModuleForTests("foo", "linux_glibc_x86_64") + snapshotModule := result.ModuleForTests(t, "foo", "linux_glibc_x86_64") wasGenerated(t, &snapshotModule, "some/module/CMakeLists.txt", "rawFileCopy") } @@ -110,7 +110,7 @@ func TestCmakeSnapshotAsTestData(t *testing.T) { t.Skip("CMake snapshots are only supported on Linux") } - snapshotModule := result.ModuleForTests("foo", "linux_glibc_x86_64") + snapshotModule := result.ModuleForTests(t, "foo", "linux_glibc_x86_64") wasGenerated(t, &snapshotModule, "CMakeLists.txt", "rawFileCopy") wasGenerated(t, &snapshotModule, "foo.zip", "") diff --git a/cc/gen_test.go b/cc/gen_test.go index 439f0a996..dde0dcfa0 100644 --- a/cc/gen_test.go +++ b/cc/gen_test.go @@ -33,8 +33,8 @@ func TestGen(t *testing.T) { ], }`) - aidl := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Rule("aidl") - libfoo := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Module().(*Module) + aidl := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Rule("aidl") + libfoo := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Module().(*Module) expected := "-I" + filepath.Dir(aidl.Output.String()) actual := android.StringsRelativeToTop(ctx.Config(), libfoo.flags.Local.CommonFlags) @@ -59,9 +59,9 @@ func TestGen(t *testing.T) { ], }`) - aidl := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Rule("aidl") - aidlManifest := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Output("aidl.sbox.textproto") - libfoo := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Module().(*Module) + aidl := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Rule("aidl") + aidlManifest := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Output("aidl.sbox.textproto") + libfoo := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Module().(*Module) if !inList("-I"+filepath.Dir(aidl.Output.String()), android.StringsRelativeToTop(ctx.Config(), libfoo.flags.Local.CommonFlags)) { t.Errorf("missing aidl includes in global flags") @@ -84,7 +84,7 @@ func TestGen(t *testing.T) { }`) outDir := "out/soong/.intermediates/libsysprop/android_arm64_armv8-a_static/gen" - syspropBuildParams := ctx.ModuleForTests("libsysprop", "android_arm64_armv8-a_static").Rule("sysprop") + syspropBuildParams := ctx.ModuleForTests(t, "libsysprop", "android_arm64_armv8-a_static").Rule("sysprop") android.AssertStringEquals(t, "header output directory does not match", outDir+"/sysprop/include/path/to", syspropBuildParams.Args["headerOutDir"]) android.AssertStringEquals(t, "public output directory does not match", outDir+"/sysprop/public/include/path/to", syspropBuildParams.Args["publicOutDir"]) diff --git a/cc/genrule_test.go b/cc/genrule_test.go index 9a8049b2c..438eb9880 100644 --- a/cc/genrule_test.go +++ b/cc/genrule_test.go @@ -64,13 +64,13 @@ func TestArchGenruleCmd(t *testing.T) { t.Fatal(errs) } - gen := ctx.ModuleForTests("gen", "android_arm_armv7-a-neon").Output("out_arm") + gen := ctx.ModuleForTests(t, "gen", "android_arm_armv7-a-neon").Output("out_arm") expected := []string{"foo"} if !reflect.DeepEqual(expected, gen.Implicits.Strings()[:len(expected)]) { t.Errorf(`want arm inputs %v, got %v`, expected, gen.Implicits.Strings()) } - gen = ctx.ModuleForTests("gen", "android_arm64_armv8-a").Output("out_arm") + gen = ctx.ModuleForTests(t, "gen", "android_arm64_armv8-a").Output("out_arm") expected = []string{"bar"} if !reflect.DeepEqual(expected, gen.Implicits.Strings()[:len(expected)]) { t.Errorf(`want arm64 inputs %v, got %v`, expected, gen.Implicits.Strings()) @@ -105,7 +105,7 @@ func TestLibraryGenruleCmd(t *testing.T) { ` ctx := testCc(t, bp) - gen := ctx.ModuleForTests("gen", "android_arm_armv7-a-neon").Output("out") + gen := ctx.ModuleForTests(t, "gen", "android_arm_armv7-a-neon").Output("out") expected := []string{"libboth.so", "libshared.so", "libstatic.a"} var got []string for _, input := range gen.Implicits { @@ -178,7 +178,7 @@ func TestCmdPrefix(t *testing.T) { PrepareForIntegrationTestWithCc, android.OptionalFixturePreparer(tt.preparer), ).RunTestWithBp(t, bp) - gen := result.ModuleForTests("gen", tt.variant) + gen := result.ModuleForTests(t, "gen", tt.variant) sboxProto := android.RuleBuilderSboxProtoForTests(t, result.TestContext, gen.Output("genrule.sbox.textproto")) cmd := *sboxProto.Commands[0].Command android.AssertStringDoesContain(t, "incorrect CC_ARCH", cmd, "CC_ARCH="+tt.arch+" ") @@ -236,7 +236,7 @@ func TestMultilibGenruleOut(t *testing.T) { } ` result := PrepareForIntegrationTestWithCc.RunTestWithBp(t, bp) - gen_32bit := result.ModuleForTests("gen", "android_arm_armv7-a-neon").OutputFiles(result.TestContext, t, "") + gen_32bit := result.ModuleForTests(t, "gen", "android_arm_armv7-a-neon").OutputFiles(result.TestContext, t, "") android.AssertPathsEndWith(t, "genrule_out", []string{ @@ -245,7 +245,7 @@ func TestMultilibGenruleOut(t *testing.T) { gen_32bit, ) - gen_64bit := result.ModuleForTests("gen", "android_arm64_armv8-a").OutputFiles(result.TestContext, t, "") + gen_64bit := result.ModuleForTests(t, "gen", "android_arm64_armv8-a").OutputFiles(result.TestContext, t, "") android.AssertPathsEndWith(t, "genrule_out", []string{ diff --git a/cc/library_headers_test.go b/cc/library_headers_test.go index 5a4576703..88ccd4303 100644 --- a/cc/library_headers_test.go +++ b/cc/library_headers_test.go @@ -41,11 +41,11 @@ func TestLibraryHeaders(t *testing.T) { ctx := testCc(t, fmt.Sprintf(bp, headerModule)) // test if header search paths are correctly added - cc := ctx.ModuleForTests("lib", "android_arm64_armv8-a_static").Rule("cc") + cc := ctx.ModuleForTests(t, "lib", "android_arm64_armv8-a_static").Rule("cc") android.AssertStringDoesContain(t, "cFlags for lib module", cc.Args["cFlags"], " -Imy_include ") // Test that there's a valid AndroidMk entry. - headers := ctx.ModuleForTests("headers", "android_arm64_armv8-a").Module() + headers := ctx.ModuleForTests(t, "headers", "android_arm64_armv8-a").Module() e := android.AndroidMkInfoForTest(t, ctx, headers).PrimaryInfo // This duplicates the tests done in AndroidMkEntries.write. It would be @@ -80,9 +80,9 @@ func TestPrebuiltLibraryHeadersPreferred(t *testing.T) { for _, prebuiltPreferred := range []bool{false, true} { t.Run(fmt.Sprintf("prebuilt prefer %t", prebuiltPreferred), func(t *testing.T) { ctx := testCc(t, fmt.Sprintf(bp, prebuiltPreferred)) - lib := ctx.ModuleForTests("lib", "android_arm64_armv8-a_static") - sourceDep := ctx.ModuleForTests("headers", "android_arm64_armv8-a") - prebuiltDep := ctx.ModuleForTests("prebuilt_headers", "android_arm64_armv8-a") + lib := ctx.ModuleForTests(t, "lib", "android_arm64_armv8-a_static") + sourceDep := ctx.ModuleForTests(t, "headers", "android_arm64_armv8-a") + prebuiltDep := ctx.ModuleForTests(t, "prebuilt_headers", "android_arm64_armv8-a") hasSourceDep := false hasPrebuiltDep := false ctx.VisitDirectDeps(lib.Module(), func(dep blueprint.Module) { diff --git a/cc/library_test.go b/cc/library_test.go index 2ed2d761c..8b7fed2dc 100644 --- a/cc/library_test.go +++ b/cc/library_test.go @@ -30,8 +30,8 @@ func TestLibraryReuse(t *testing.T) { srcs: ["foo.c", "baz.o"], }`) - libfooShared := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") - libfooStatic := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_static").Output("libfoo.a") + libfooShared := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") + libfooStatic := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_static").Output("libfoo.a") if len(libfooShared.Inputs) != 2 { t.Fatalf("unexpected inputs to libfoo shared: %#v", libfooShared.Inputs.Strings()) @@ -59,8 +59,8 @@ func TestLibraryReuse(t *testing.T) { }, }`) - libfooShared := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") - libfooStatic := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_static").Output("libfoo.a") + libfooShared := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") + libfooStatic := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_static").Output("libfoo.a") if len(libfooShared.Inputs) != 1 { t.Fatalf("unexpected inputs to libfoo shared: %#v", libfooShared.Inputs.Strings()) @@ -85,8 +85,8 @@ func TestLibraryReuse(t *testing.T) { }, }`) - libfooShared := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") - libfooStatic := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_static").Output("libfoo.a") + libfooShared := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") + libfooStatic := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_static").Output("libfoo.a") if len(libfooShared.Inputs) != 2 { t.Fatalf("unexpected inputs to libfoo shared: %#v", libfooShared.Inputs.Strings()) @@ -111,8 +111,8 @@ func TestLibraryReuse(t *testing.T) { }, }`) - libfooShared := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") - libfooStatic := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_static").Output("libfoo.a") + libfooShared := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") + libfooStatic := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_static").Output("libfoo.a") if len(libfooShared.Inputs) != 1 { t.Fatalf("unexpected inputs to libfoo shared: %#v", libfooShared.Inputs.Strings()) @@ -137,8 +137,8 @@ func TestLibraryReuse(t *testing.T) { }, }`) - libfooShared := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") - libfooStatic := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_static").Output("libfoo.a") + libfooShared := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") + libfooStatic := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_static").Output("libfoo.a") if len(libfooShared.Inputs) != 1 { t.Fatalf("unexpected inputs to libfoo shared: %#v", libfooShared.Inputs.Strings()) @@ -168,8 +168,8 @@ func TestLibraryReuse(t *testing.T) { }, }`) - libfooShared := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") - libfooStatic := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_static").Output("libfoo.a") + libfooShared := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") + libfooStatic := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_static").Output("libfoo.a") if len(libfooShared.Inputs) != 3 { t.Fatalf("unexpected inputs to libfoo shared: %#v", libfooShared.Inputs.Strings()) @@ -183,7 +183,7 @@ func TestLibraryReuse(t *testing.T) { t.Errorf("static objects not reused for shared library") } - libfoo := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Module().(*Module) + libfoo := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Module().(*Module) if !inList("-DGOOGLE_PROTOBUF_NO_RTTI", libfoo.flags.Local.CFlags) { t.Errorf("missing protobuf cflags") } @@ -254,7 +254,7 @@ func TestLibraryVersionScript(t *testing.T) { version_script: "foo.map.txt", }`) - libfoo := result.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Rule("ld") + libfoo := result.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Rule("ld") android.AssertStringListContains(t, "missing dependency on version_script", libfoo.Implicits.Strings(), "foo.map.txt") @@ -272,7 +272,7 @@ func TestLibraryDynamicList(t *testing.T) { dynamic_list: "foo.dynamic.txt", }`) - libfoo := result.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Rule("ld") + libfoo := result.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Rule("ld") android.AssertStringListContains(t, "missing dependency on dynamic_list", libfoo.Implicits.Strings(), "foo.dynamic.txt") @@ -312,14 +312,14 @@ func TestWholeStaticLibPrebuilts(t *testing.T) { } `) - libdirect := result.ModuleForTests("libdirect", "android_arm64_armv8-a_static").Rule("arWithLibs") - libtransitive := result.ModuleForTests("libtransitive", "android_arm64_armv8-a_static").Rule("arWithLibs") + libdirect := result.ModuleForTests(t, "libdirect", "android_arm64_armv8-a_static").Rule("arWithLibs") + libtransitive := result.ModuleForTests(t, "libtransitive", "android_arm64_armv8-a_static").Rule("arWithLibs") - libdirectWithSrcs := result.ModuleForTests("libdirect_with_srcs", "android_arm64_armv8-a_static").Rule("arWithLibs") - libtransitiveWithSrcs := result.ModuleForTests("libtransitive_with_srcs", "android_arm64_armv8-a_static").Rule("arWithLibs") + libdirectWithSrcs := result.ModuleForTests(t, "libdirect_with_srcs", "android_arm64_armv8-a_static").Rule("arWithLibs") + libtransitiveWithSrcs := result.ModuleForTests(t, "libtransitive_with_srcs", "android_arm64_armv8-a_static").Rule("arWithLibs") - barObj := result.ModuleForTests("libdirect_with_srcs", "android_arm64_armv8-a_static").Rule("cc") - bazObj := result.ModuleForTests("libtransitive_with_srcs", "android_arm64_armv8-a_static").Rule("cc") + barObj := result.ModuleForTests(t, "libdirect_with_srcs", "android_arm64_armv8-a_static").Rule("cc") + bazObj := result.ModuleForTests(t, "libtransitive_with_srcs", "android_arm64_armv8-a_static").Rule("cc") android.AssertStringListContains(t, "missing dependency on foo.a", libdirect.Inputs.Strings(), "foo.a") diff --git a/cc/lto_test.go b/cc/lto_test.go index e4b5a3a01..3fb1f3c06 100644 --- a/cc/lto_test.go +++ b/cc/lto_test.go @@ -70,24 +70,24 @@ func TestThinLtoDeps(t *testing.T) { result := LTOPreparer.RunTestWithBp(t, bp) - libLto := result.ModuleForTests("lto_enabled", "android_arm64_armv8-a_shared").Module() + libLto := result.ModuleForTests(t, "lto_enabled", "android_arm64_armv8-a_shared").Module() - libFoo := result.ModuleForTests("foo", "android_arm64_armv8-a_static").Module() + libFoo := result.ModuleForTests(t, "foo", "android_arm64_armv8-a_static").Module() if !hasDep(result, libLto, libFoo) { t.Errorf("'lto_enabled' missing dependency on the default variant of 'foo'") } - libBaz := result.ModuleForTests("baz", "android_arm64_armv8-a_static").Module() + libBaz := result.ModuleForTests(t, "baz", "android_arm64_armv8-a_static").Module() if !hasDep(result, libFoo, libBaz) { t.Errorf("'foo' missing dependency on the default variant of transitive dep 'baz'") } - libNeverLto := result.ModuleForTests("lib_never_lto", "android_arm64_armv8-a_static").Module() + libNeverLto := result.ModuleForTests(t, "lib_never_lto", "android_arm64_armv8-a_static").Module() if !hasDep(result, libLto, libNeverLto) { t.Errorf("'lto_enabled' missing dependency on the default variant of 'lib_never_lto'") } - libBar := result.ModuleForTests("bar", "android_arm64_armv8-a_shared").Module() + libBar := result.ModuleForTests(t, "bar", "android_arm64_armv8-a_shared").Module() if !hasDep(result, libLto, libBar) { t.Errorf("'lto_enabled' missing dependency on the default variant of 'bar'") } @@ -138,15 +138,15 @@ func TestThinLtoOnlyOnStaticDep(t *testing.T) { result := LTOPreparer.RunTestWithBp(t, bp) - libRoot := result.ModuleForTests("root", "android_arm64_armv8-a_shared").Module() - libRootLtoNever := result.ModuleForTests("root_no_lto", "android_arm64_armv8-a_shared").Module() + libRoot := result.ModuleForTests(t, "root", "android_arm64_armv8-a_shared").Module() + libRootLtoNever := result.ModuleForTests(t, "root_no_lto", "android_arm64_armv8-a_shared").Module() - libFoo := result.ModuleForTests("foo", "android_arm64_armv8-a_static") + libFoo := result.ModuleForTests(t, "foo", "android_arm64_armv8-a_static") if !hasDep(result, libRoot, libFoo.Module()) { t.Errorf("'root' missing dependency on the default variant of 'foo'") } - libFooNoLto := result.ModuleForTests("foo", "android_arm64_armv8-a_static_lto-none") + libFooNoLto := result.ModuleForTests(t, "foo", "android_arm64_armv8-a_static_lto-none") if !hasDep(result, libRootLtoNever, libFooNoLto.Module()) { t.Errorf("'root_no_lto' missing dependency on the lto_none variant of 'foo'") } @@ -156,7 +156,7 @@ func TestThinLtoOnlyOnStaticDep(t *testing.T) { t.Errorf("'foo' expected to have flags %q, but got %q", w, libFooCFlags) } - libBaz := result.ModuleForTests("baz", "android_arm64_armv8-a_static") + libBaz := result.ModuleForTests(t, "baz", "android_arm64_armv8-a_static") if !hasDep(result, libFoo.Module(), libBaz.Module()) { t.Errorf("'foo' missing dependency on the default variant of transitive dep 'baz'") } @@ -187,8 +187,8 @@ func TestLtoDisabledButEnabledForArch(t *testing.T) { }` result := LTOPreparer.RunTestWithBp(t, bp) - libFooWithLto := result.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") - libFooWithoutLto := result.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Rule("ld") + libFooWithLto := result.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") + libFooWithoutLto := result.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Rule("ld") android.AssertStringDoesContain(t, "missing flag for LTO in variant that expects it", libFooWithLto.Args["ldFlags"], "-flto=thin") @@ -215,8 +215,8 @@ func TestLtoDoesNotPropagateToRuntimeLibs(t *testing.T) { result := LTOPreparer.RunTestWithBp(t, bp) - libFoo := result.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") - libBar := result.ModuleForTests("runtime_libbar", "android_arm_armv7-a-neon_shared").Rule("ld") + libFoo := result.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Rule("ld") + libBar := result.ModuleForTests(t, "runtime_libbar", "android_arm_armv7-a-neon_shared").Rule("ld") android.AssertStringDoesContain(t, "missing flag for LTO in LTO enabled library", libFoo.Args["ldFlags"], "-flto=thin") diff --git a/cc/ndk_test.go b/cc/ndk_test.go index f20d3c61f..8574bf148 100644 --- a/cc/ndk_test.go +++ b/cc/ndk_test.go @@ -50,7 +50,7 @@ func TestNdkHeaderDependency(t *testing.T) { } ` ctx := prepareForCcTest.RunTestWithBp(t, bp) - libfoo := ctx.ModuleForTests("libfoo.ndk", "android_arm64_armv8-a_sdk_shared") - libfoo_headers := ctx.ModuleForTests("libfoo_headers", "") + libfoo := ctx.ModuleForTests(t, "libfoo.ndk", "android_arm64_armv8-a_sdk_shared") + libfoo_headers := ctx.ModuleForTests(t, "libfoo_headers", "") android.AssertBoolEquals(t, "Could not find headers of ndk_library", true, isDep(ctx, libfoo.Module(), libfoo_headers.Module())) } diff --git a/cc/object_test.go b/cc/object_test.go index 004dfd3e7..6d8226560 100644 --- a/cc/object_test.go +++ b/cc/object_test.go @@ -46,13 +46,13 @@ func TestMinSdkVersionsOfCrtObjects(t *testing.T) { ctx := prepareForCcTest.RunTestWithBp(t, bp) for _, v := range variants { - cflags := ctx.ModuleForTests("crt_foo", v.variant).Rule("cc").Args["cFlags"] + cflags := ctx.ModuleForTests(t, "crt_foo", v.variant).Rule("cc").Args["cFlags"] expected := "-target aarch64-linux-android" + v.num + " " android.AssertStringDoesContain(t, "cflag", cflags, expected) } ctx = prepareForCcTest.RunTestWithBp(t, bp) android.AssertStringDoesContain(t, "cflag", - ctx.ModuleForTests("crt_foo", "android_vendor_arm64_armv8-a").Rule("cc").Args["cFlags"], + ctx.ModuleForTests(t, "crt_foo", "android_vendor_arm64_armv8-a").Rule("cc").Args["cFlags"], "-target aarch64-linux-android10000 ") } @@ -69,13 +69,13 @@ func TestUseCrtObjectOfCorrectVersion(t *testing.T) { // Sdk variant uses the crt object of the matching min_sdk_version variant := "android_arm64_armv8-a_sdk" - crt := ctx.ModuleForTests("bin", variant).Rule("ld").Args["crtBegin"] + crt := ctx.ModuleForTests(t, "bin", variant).Rule("ld").Args["crtBegin"] android.AssertStringDoesContain(t, "crt dep of sdk variant", crt, "29/crtbegin_dynamic.o") // platform variant uses the crt object built for platform variant = "android_arm64_armv8-a" - crt = ctx.ModuleForTests("bin", variant).Rule("ld").Args["crtBegin"] + crt = ctx.ModuleForTests(t, "bin", variant).Rule("ld").Args["crtBegin"] android.AssertStringDoesContain(t, "crt dep of platform variant", crt, variant+"/crtbegin_dynamic.o") } @@ -147,7 +147,7 @@ func TestCcObjectOutputFile(t *testing.T) { ctx := PrepareForIntegrationTestWithCc.RunTestWithBp(t, bp) android.AssertPathRelativeToTopEquals(t, "expected output file foo.o", fmt.Sprintf("out/soong/.intermediates/%s/android_arm64_armv8-a/foo.o", testcase.moduleName), - ctx.ModuleForTests(testcase.moduleName, "android_arm64_armv8-a").Output("foo.o").Output) + ctx.ModuleForTests(t, testcase.moduleName, "android_arm64_armv8-a").Output("foo.o").Output) }) } diff --git a/cc/orderfile_test.go b/cc/orderfile_test.go index 3486f964c..41253adc6 100644 --- a/cc/orderfile_test.go +++ b/cc/orderfile_test.go @@ -41,7 +41,7 @@ func TestOrderfileProfileSharedLibrary(t *testing.T) { expectedCFlag := "-forder-file-instrumentation" - libTest := result.ModuleForTests("libTest", "android_arm64_armv8-a_shared") + libTest := result.ModuleForTests(t, "libTest", "android_arm64_armv8-a_shared") // Check cFlags of orderfile-enabled module cFlags := libTest.Rule("cc").Args["cFlags"] @@ -77,7 +77,7 @@ func TestOrderfileLoadSharedLibrary(t *testing.T) { expectedCFlag := "-Wl,--symbol-ordering-file=toolchain/pgo-profiles/orderfiles/libTest.orderfile" - libTest := result.ModuleForTests("libTest", "android_arm64_armv8-a_shared") + libTest := result.ModuleForTests(t, "libTest", "android_arm64_armv8-a_shared") // Check ldFlags of orderfile-enabled module ldFlags := libTest.Rule("ld").Args["ldFlags"] @@ -106,7 +106,7 @@ func TestOrderfileProfileBinary(t *testing.T) { expectedCFlag := "-forder-file-instrumentation" - test := result.ModuleForTests("test", "android_arm64_armv8-a") + test := result.ModuleForTests(t, "test", "android_arm64_armv8-a") // Check cFlags of orderfile-enabled module cFlags := test.Rule("cc").Args["cFlags"] @@ -142,7 +142,7 @@ func TestOrderfileLoadBinary(t *testing.T) { expectedCFlag := "-Wl,--symbol-ordering-file=toolchain/pgo-profiles/orderfiles/test.orderfile" - test := result.ModuleForTests("test", "android_arm64_armv8-a") + test := result.ModuleForTests(t, "test", "android_arm64_armv8-a") // Check ldFlags of orderfile-enabled module ldFlags := test.Rule("ld").Args["ldFlags"] @@ -185,7 +185,7 @@ func TestOrderfileProfilePropagateStaticDeps(t *testing.T) { expectedCFlag := "-forder-file-instrumentation" // Check cFlags of orderfile-enabled module - libTest := result.ModuleForTests("libTest", "android_arm64_armv8-a_shared") + libTest := result.ModuleForTests(t, "libTest", "android_arm64_armv8-a_shared") cFlags := libTest.Rule("cc").Args["cFlags"] if !strings.Contains(cFlags, expectedCFlag) { @@ -193,8 +193,8 @@ func TestOrderfileProfilePropagateStaticDeps(t *testing.T) { } // Check cFlags of orderfile variant static libraries - libFooOfVariant := result.ModuleForTests("libFoo", "android_arm64_armv8-a_static_orderfile") - libBarOfVariant := result.ModuleForTests("libBar", "android_arm64_armv8-a_static_orderfile") + libFooOfVariant := result.ModuleForTests(t, "libFoo", "android_arm64_armv8-a_static_orderfile") + libBarOfVariant := result.ModuleForTests(t, "libBar", "android_arm64_armv8-a_static_orderfile") cFlags = libFooOfVariant.Rule("cc").Args["cFlags"] if !strings.Contains(cFlags, expectedCFlag) { @@ -216,8 +216,8 @@ func TestOrderfileProfilePropagateStaticDeps(t *testing.T) { } // Check cFlags of the non-orderfile variant static libraries - libFoo := result.ModuleForTests("libFoo", "android_arm64_armv8-a_static") - libBar := result.ModuleForTests("libBar", "android_arm64_armv8-a_static") + libFoo := result.ModuleForTests(t, "libFoo", "android_arm64_armv8-a_static") + libBar := result.ModuleForTests(t, "libBar", "android_arm64_armv8-a_static") cFlags = libFoo.Rule("cc").Args["cFlags"] if strings.Contains(cFlags, expectedCFlag) { @@ -274,15 +274,15 @@ func TestOrderfileLoadPropagateStaticDeps(t *testing.T) { expectedCFlag := "-Wl,--symbol-ordering-file=toolchain/pgo-profiles/orderfiles/test.orderfile" // Check ldFlags of orderfile-enabled module - libTest := result.ModuleForTests("libTest", "android_arm64_armv8-a_shared") + libTest := result.ModuleForTests(t, "libTest", "android_arm64_armv8-a_shared") ldFlags := libTest.Rule("ld").Args["ldFlags"] if !strings.Contains(ldFlags, expectedCFlag) { t.Errorf("Expected 'libTest' to load orderfile, but did not find %q in ldFlags %q", expectedCFlag, ldFlags) } - libFoo := result.ModuleForTests("libFoo", "android_arm64_armv8-a_static") - libBar := result.ModuleForTests("libBar", "android_arm64_armv8-a_static") + libFoo := result.ModuleForTests(t, "libFoo", "android_arm64_armv8-a_static") + libBar := result.ModuleForTests(t, "libBar", "android_arm64_armv8-a_static") // Check dependency edge from orderfile-enabled module to non-orderfile variant static libraries if !hasDirectDep(result, libTest.Module(), libFoo.Module()) { @@ -343,7 +343,7 @@ func TestOrderfileProfilePropagateSharedDeps(t *testing.T) { expectedCFlag := "-forder-file-instrumentation" // Check cFlags of orderfile-enabled module - libTest := result.ModuleForTests("libTest", "android_arm64_armv8-a_shared") + libTest := result.ModuleForTests(t, "libTest", "android_arm64_armv8-a_shared") cFlags := libTest.Rule("cc").Args["cFlags"] if !strings.Contains(cFlags, expectedCFlag) { @@ -351,8 +351,8 @@ func TestOrderfileProfilePropagateSharedDeps(t *testing.T) { } // Check cFlags of the static and shared libraries - libFoo := result.ModuleForTests("libFoo", "android_arm64_armv8-a_shared") - libBar := result.ModuleForTests("libBar", "android_arm64_armv8-a_static") + libFoo := result.ModuleForTests(t, "libFoo", "android_arm64_armv8-a_shared") + libBar := result.ModuleForTests(t, "libBar", "android_arm64_armv8-a_static") cFlags = libFoo.Rule("cc").Args["cFlags"] if strings.Contains(cFlags, expectedCFlag) { @@ -423,7 +423,7 @@ func TestOrderfileProfileStaticLibrary(t *testing.T) { expectedCFlag := "-forder-file-instrumentation" // Check cFlags of module - libTest := result.ModuleForTests("libTest", "android_arm64_armv8-a_static") + libTest := result.ModuleForTests(t, "libTest", "android_arm64_armv8-a_static") cFlags := libTest.Rule("cc").Args["cFlags"] if strings.Contains(cFlags, expectedCFlag) { @@ -431,8 +431,8 @@ func TestOrderfileProfileStaticLibrary(t *testing.T) { } // Check cFlags of the static libraries - libFoo := result.ModuleForTests("libFoo", "android_arm64_armv8-a_static") - libBar := result.ModuleForTests("libBar", "android_arm64_armv8-a_static") + libFoo := result.ModuleForTests(t, "libFoo", "android_arm64_armv8-a_static") + libBar := result.ModuleForTests(t, "libBar", "android_arm64_armv8-a_static") cFlags = libFoo.Rule("cc").Args["cFlags"] if strings.Contains(cFlags, expectedCFlag) { diff --git a/cc/prebuilt_test.go b/cc/prebuilt_test.go index 3214fb4a7..af68ca6bf 100644 --- a/cc/prebuilt_test.go +++ b/cc/prebuilt_test.go @@ -116,21 +116,21 @@ func TestPrebuilt(t *testing.T) { }) // Verify that all the modules exist and that their dependencies were connected correctly - liba := ctx.ModuleForTests("liba", "android_arm64_armv8-a_shared").Module() - libb := ctx.ModuleForTests("libb", "android_arm64_armv8-a_static").Module() - libd := ctx.ModuleForTests("libd", "android_arm64_armv8-a_shared").Module() - libe := ctx.ModuleForTests("libe", "android_arm64_armv8-a_static").Module() - libfStatic := ctx.ModuleForTests("libf", "android_arm64_armv8-a_static").Module() - libfShared := ctx.ModuleForTests("libf", "android_arm64_armv8-a_shared").Module() - crtx := ctx.ModuleForTests("crtx", "android_arm64_armv8-a").Module() - - prebuiltLiba := ctx.ModuleForTests("prebuilt_liba", "android_arm64_armv8-a_shared").Module() - prebuiltLibb := ctx.ModuleForTests("prebuilt_libb", "android_arm64_armv8-a_static").Module() - prebuiltLibd := ctx.ModuleForTests("prebuilt_libd", "android_arm64_armv8-a_shared").Module() - prebuiltLibe := ctx.ModuleForTests("prebuilt_libe", "android_arm64_armv8-a_static").Module() - prebuiltLibfStatic := ctx.ModuleForTests("prebuilt_libf", "android_arm64_armv8-a_static").Module() - prebuiltLibfShared := ctx.ModuleForTests("prebuilt_libf", "android_arm64_armv8-a_shared").Module() - prebuiltCrtx := ctx.ModuleForTests("prebuilt_crtx", "android_arm64_armv8-a").Module() + liba := ctx.ModuleForTests(t, "liba", "android_arm64_armv8-a_shared").Module() + libb := ctx.ModuleForTests(t, "libb", "android_arm64_armv8-a_static").Module() + libd := ctx.ModuleForTests(t, "libd", "android_arm64_armv8-a_shared").Module() + libe := ctx.ModuleForTests(t, "libe", "android_arm64_armv8-a_static").Module() + libfStatic := ctx.ModuleForTests(t, "libf", "android_arm64_armv8-a_static").Module() + libfShared := ctx.ModuleForTests(t, "libf", "android_arm64_armv8-a_shared").Module() + crtx := ctx.ModuleForTests(t, "crtx", "android_arm64_armv8-a").Module() + + prebuiltLiba := ctx.ModuleForTests(t, "prebuilt_liba", "android_arm64_armv8-a_shared").Module() + prebuiltLibb := ctx.ModuleForTests(t, "prebuilt_libb", "android_arm64_armv8-a_static").Module() + prebuiltLibd := ctx.ModuleForTests(t, "prebuilt_libd", "android_arm64_armv8-a_shared").Module() + prebuiltLibe := ctx.ModuleForTests(t, "prebuilt_libe", "android_arm64_armv8-a_static").Module() + prebuiltLibfStatic := ctx.ModuleForTests(t, "prebuilt_libf", "android_arm64_armv8-a_static").Module() + prebuiltLibfShared := ctx.ModuleForTests(t, "prebuilt_libf", "android_arm64_armv8-a_shared").Module() + prebuiltCrtx := ctx.ModuleForTests(t, "prebuilt_crtx", "android_arm64_armv8-a").Module() hasDep := func(m android.Module, wantDep android.Module) bool { t.Helper() @@ -190,7 +190,7 @@ func TestPrebuiltLibraryShared(t *testing.T) { "libf.so": nil, }) - shared := ctx.ModuleForTests("libtest", "android_arm64_armv8-a_shared").Module().(*Module) + shared := ctx.ModuleForTests(t, "libtest", "android_arm64_armv8-a_shared").Module().(*Module) assertString(t, shared.OutputFile().Path().Base(), "libtest.so") } @@ -204,7 +204,7 @@ func TestPrebuiltLibraryStatic(t *testing.T) { "libf.a": nil, }) - static := ctx.ModuleForTests("libtest", "android_arm64_armv8-a_static").Module().(*Module) + static := ctx.ModuleForTests(t, "libtest", "android_arm64_armv8-a_static").Module().(*Module) assertString(t, static.OutputFile().Path().Base(), "libf.a") } @@ -227,10 +227,10 @@ func TestPrebuiltLibrary(t *testing.T) { "libf.so": nil, }) - shared := ctx.ModuleForTests("libtest", "android_arm64_armv8-a_shared").Module().(*Module) + shared := ctx.ModuleForTests(t, "libtest", "android_arm64_armv8-a_shared").Module().(*Module) assertString(t, shared.OutputFile().Path().Base(), "libtest.so") - static := ctx.ModuleForTests("libtest", "android_arm64_armv8-a_static").Module().(*Module) + static := ctx.ModuleForTests(t, "libtest", "android_arm64_armv8-a_static").Module().(*Module) assertString(t, static.OutputFile().Path().Base(), "libf.a") } @@ -254,10 +254,10 @@ func TestPrebuiltLibraryStem(t *testing.T) { "libfoo.so": nil, }) - static := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_static").Module().(*Module) + static := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_static").Module().(*Module) assertString(t, static.OutputFile().Path().Base(), "libfoo.a") - shared := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Module().(*Module) + shared := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Module().(*Module) assertString(t, shared.OutputFile().Path().Base(), "libbar.so") } @@ -275,7 +275,7 @@ func TestPrebuiltLibrarySharedStem(t *testing.T) { "libfoo.so": nil, }) - shared := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Module().(*Module) + shared := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Module().(*Module) assertString(t, shared.OutputFile().Path().Base(), "libbar.so") } @@ -312,7 +312,7 @@ func TestPrebuiltSymlinkedHostBinary(t *testing.T) { "foo": nil, }) - fooRule := ctx.ModuleForTests("foo", "linux_glibc_x86_64").Rule("Symlink") + fooRule := ctx.ModuleForTests(t, "foo", "linux_glibc_x86_64").Rule("Symlink") assertString(t, fooRule.Output.String(), "out/soong/.intermediates/foo/linux_glibc_x86_64/foo") assertString(t, fooRule.Args["fromPath"], "$$PWD/linux_glibc_x86_64/bin/foo") @@ -355,16 +355,16 @@ func TestPrebuiltLibrarySanitized(t *testing.T) { // Without SANITIZE_TARGET. ctx := testPrebuilt(t, bp, fs) - shared_rule := ctx.ModuleForTests("libtest", "android_arm64_armv8-a_shared").Rule("android/soong/cc.strip") + shared_rule := ctx.ModuleForTests(t, "libtest", "android_arm64_armv8-a_shared").Rule("android/soong/cc.strip") assertString(t, shared_rule.Input.String(), "libf.so") - static := ctx.ModuleForTests("libtest", "android_arm64_armv8-a_static").Module().(*Module) + static := ctx.ModuleForTests(t, "libtest", "android_arm64_armv8-a_static").Module().(*Module) assertString(t, static.OutputFile().Path().Base(), "libf.a") - shared_rule2 := ctx.ModuleForTests("libtest_shared", "android_arm64_armv8-a_shared").Rule("android/soong/cc.strip") + shared_rule2 := ctx.ModuleForTests(t, "libtest_shared", "android_arm64_armv8-a_shared").Rule("android/soong/cc.strip") assertString(t, shared_rule2.Input.String(), "libf.so") - static2 := ctx.ModuleForTests("libtest_static", "android_arm64_armv8-a_static").Module().(*Module) + static2 := ctx.ModuleForTests(t, "libtest_static", "android_arm64_armv8-a_static").Module().(*Module) assertString(t, static2.OutputFile().Path().Base(), "libf.a") // With SANITIZE_TARGET=hwaddress @@ -374,16 +374,16 @@ func TestPrebuiltLibrarySanitized(t *testing.T) { }), ) - shared_rule = ctx.ModuleForTests("libtest", "android_arm64_armv8-a_shared_hwasan").Rule("android/soong/cc.strip") + shared_rule = ctx.ModuleForTests(t, "libtest", "android_arm64_armv8-a_shared_hwasan").Rule("android/soong/cc.strip") assertString(t, shared_rule.Input.String(), "hwasan/libf.so") - static = ctx.ModuleForTests("libtest", "android_arm64_armv8-a_static_hwasan").Module().(*Module) + static = ctx.ModuleForTests(t, "libtest", "android_arm64_armv8-a_static_hwasan").Module().(*Module) assertString(t, static.OutputFile().Path().Base(), "libf.hwasan.a") - shared_rule2 = ctx.ModuleForTests("libtest_shared", "android_arm64_armv8-a_shared_hwasan").Rule("android/soong/cc.strip") + shared_rule2 = ctx.ModuleForTests(t, "libtest_shared", "android_arm64_armv8-a_shared_hwasan").Rule("android/soong/cc.strip") assertString(t, shared_rule2.Input.String(), "hwasan/libf.so") - static2 = ctx.ModuleForTests("libtest_static", "android_arm64_armv8-a_static_hwasan").Module().(*Module) + static2 = ctx.ModuleForTests(t, "libtest_static", "android_arm64_armv8-a_static_hwasan").Module().(*Module) assertString(t, static2.OutputFile().Path().Base(), "libf.hwasan.a") } @@ -394,7 +394,7 @@ cc_prebuilt_binary { srcs: [], }` ctx := testPrebuilt(t, bp, map[string][]byte{}) - mod := ctx.ModuleForTests("bintest", "android_arm64_armv8-a").Module().(*Module) + mod := ctx.ModuleForTests(t, "bintest", "android_arm64_armv8-a").Module().(*Module) android.AssertBoolEquals(t, `expected no srcs to yield no output file`, false, mod.OutputFile().Valid()) } @@ -484,8 +484,8 @@ func TestMultiplePrebuilts(t *testing.T) { "libbar.so": nil, "crtx.o": nil, }, preparer) - libfoo := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Module() - expectedDependency := ctx.ModuleForTests(tc.expectedDependencyName, "android_arm64_armv8-a_shared").Module() + libfoo := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Module() + expectedDependency := ctx.ModuleForTests(t, tc.expectedDependencyName, "android_arm64_armv8-a_shared").Module() android.AssertBoolEquals(t, fmt.Sprintf("expected dependency from %s to %s\n", libfoo.Name(), tc.expectedDependencyName), true, hasDep(ctx, libfoo, expectedDependency)) // check that LOCAL_SHARED_LIBRARIES contains libbar and not libbar.v<N> entries := android.AndroidMkInfoForTest(t, ctx, libfoo).PrimaryInfo @@ -493,7 +493,7 @@ func TestMultiplePrebuilts(t *testing.T) { // check installation rules // the selected soong module should be exported to make - libbar := ctx.ModuleForTests(tc.expectedDependencyName, "android_arm64_armv8-a_shared").Module() + libbar := ctx.ModuleForTests(t, tc.expectedDependencyName, "android_arm64_armv8-a_shared").Module() android.AssertBoolEquals(t, fmt.Sprintf("dependency %s should be exported to make\n", expectedDependency), true, !libbar.IsHideFromMake()) // check LOCAL_MODULE of the selected module name @@ -585,8 +585,8 @@ func TestMultiplePrebuiltsPreferredUsingLegacyFlags(t *testing.T) { if tc.expectedErr != "" { return // the fixture will assert that the excepted err has been raised } - libfoo := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Module() - expectedDependency := ctx.ModuleForTests(tc.expectedDependencyName, "android_arm64_armv8-a_shared").Module() + libfoo := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Module() + expectedDependency := ctx.ModuleForTests(t, tc.expectedDependencyName, "android_arm64_armv8-a_shared").Module() android.AssertBoolEquals(t, fmt.Sprintf("expected dependency from %s to %s\n", libfoo.Name(), tc.expectedDependencyName), true, hasDep(ctx, libfoo, expectedDependency)) } } @@ -638,8 +638,8 @@ func TestMissingVariantInModuleSdk(t *testing.T) { "libbar.so": nil, "crtx.o": nil, }, preparer) - libfoo := ctx.ModuleForTests("libfoo", "android_arm64_armv8-a_shared").Module() - sourceLibBar := ctx.ModuleForTests("libbar", "android_arm64_armv8-a_static").Module() + libfoo := ctx.ModuleForTests(t, "libfoo", "android_arm64_armv8-a_shared").Module() + sourceLibBar := ctx.ModuleForTests(t, "libbar", "android_arm64_armv8-a_static").Module() // Even though the prebuilt is listed in apex_contributions, the prebuilt does not have a static variant. // Therefore source of libbar should be used. android.AssertBoolEquals(t, fmt.Sprintf("expected dependency from libfoo to source libbar"), true, hasDep(ctx, libfoo, sourceLibBar)) diff --git a/cc/proto_test.go b/cc/proto_test.go index a905ea889..47b7e1770 100644 --- a/cc/proto_test.go +++ b/cc/proto_test.go @@ -29,7 +29,7 @@ func TestProto(t *testing.T) { srcs: ["a.proto"], }`) - proto := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Output("proto/a.pb.cc") + proto := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Output("proto/a.pb.cc") if cmd := proto.RuleParams.Command; !strings.Contains(cmd, "--cpp_out=") { t.Errorf("expected '--cpp_out' in %q", cmd) @@ -53,8 +53,8 @@ func TestProto(t *testing.T) { buildOS := ctx.Config().BuildOS.String() - proto := ctx.ModuleForTests("libfoo", "android_arm_armv7-a-neon_shared").Output("proto/a.pb.cc") - foobar := ctx.ModuleForTests("protoc-gen-foobar", buildOS+"_x86_64") + proto := ctx.ModuleForTests(t, "libfoo", "android_arm_armv7-a-neon_shared").Output("proto/a.pb.cc") + foobar := ctx.ModuleForTests(t, "protoc-gen-foobar", buildOS+"_x86_64") cmd := proto.RuleParams.Command if w := "--foobar_out="; !strings.Contains(cmd, w) { @@ -85,8 +85,8 @@ func TestProto(t *testing.T) { buildOS := ctx.Config().BuildOS.String() - proto := ctx.ModuleForTests("libgrpc", "android_arm_armv7-a-neon_shared").Output("proto/a.grpc.pb.cc") - grpcCppPlugin := ctx.ModuleForTests("protoc-gen-grpc-cpp-plugin", buildOS+"_x86_64") + proto := ctx.ModuleForTests(t, "libgrpc", "android_arm_armv7-a-neon_shared").Output("proto/a.grpc.pb.cc") + grpcCppPlugin := ctx.ModuleForTests(t, "protoc-gen-grpc-cpp-plugin", buildOS+"_x86_64") cmd := proto.RuleParams.Command if w := "--grpc-cpp-plugin_out="; !strings.Contains(cmd, w) { diff --git a/cc/sabi_test.go b/cc/sabi_test.go index 6b8cc1759..3d2a98ca7 100644 --- a/cc/sabi_test.go +++ b/cc/sabi_test.go @@ -48,16 +48,16 @@ func TestSabi(t *testing.T) { PrepareForTestWithCcDefaultModules, ).RunTestWithBp(t, bp) - libsabiStatic := result.ModuleForTests("libsabi", "android_arm64_armv8-a_static_sabi") + libsabiStatic := result.ModuleForTests(t, "libsabi", "android_arm64_armv8-a_static_sabi") sabiObjSDump := libsabiStatic.Output("obj/sabi.sdump") - libDirect := result.ModuleForTests("libdirect", "android_arm64_armv8-a_static_sabi") + libDirect := result.ModuleForTests(t, "libdirect", "android_arm64_armv8-a_static_sabi") directObjSDump := libDirect.Output("obj/direct.sdump") - libTransitive := result.ModuleForTests("libtransitive", "android_arm64_armv8-a_static_sabi") + libTransitive := result.ModuleForTests(t, "libtransitive", "android_arm64_armv8-a_static_sabi") transitiveObjSDump := libTransitive.Output("obj/transitive.sdump") - libsabiShared := result.ModuleForTests("libsabi", "android_arm64_armv8-a_shared") + libsabiShared := result.ModuleForTests(t, "libsabi", "android_arm64_armv8-a_shared") sabiLink := libsabiShared.Rule("sAbiLink") android.AssertStringListContains(t, "sabi link inputs", sabiLink.Inputs.Strings(), sabiObjSDump.Output.String()) diff --git a/cc/sanitize.go b/cc/sanitize.go index d8d8c7aef..e7598e709 100644 --- a/cc/sanitize.go +++ b/cc/sanitize.go @@ -79,7 +79,7 @@ var ( minimalRuntimeFlags = []string{"-fsanitize-minimal-runtime", "-fno-sanitize-trap=integer,undefined", "-fno-sanitize-recover=integer,undefined"} - memtagStackCommonFlags = []string{"-march=armv8-a+memtag"} + memtagStackCommonFlags = []string{"-Xclang -target-feature -Xclang +mte"} memtagStackLlvmFlags = []string{"-dom-tree-reachability-max-bbs-to-explore=128"} hostOnlySanitizeFlags = []string{"-fno-sanitize-recover=all"} diff --git a/cc/sanitize_test.go b/cc/sanitize_test.go index a1cfb5c36..543e80836 100644 --- a/cc/sanitize_test.go +++ b/cc/sanitize_test.go @@ -222,31 +222,31 @@ func TestAsan(t *testing.T) { staticAsanVariant := staticVariant + "_asan" // The binaries, one with asan and one without - binWithAsan := result.ModuleForTests("bin_with_asan", asanVariant) - binNoAsan := result.ModuleForTests("bin_no_asan", variant) + binWithAsan := result.ModuleForTests(t, "bin_with_asan", asanVariant) + binNoAsan := result.ModuleForTests(t, "bin_no_asan", variant) // Shared libraries that don't request asan - libShared := result.ModuleForTests("libshared", sharedVariant) - libTransitive := result.ModuleForTests("libtransitive", sharedVariant) + libShared := result.ModuleForTests(t, "libshared", sharedVariant) + libTransitive := result.ModuleForTests(t, "libtransitive", sharedVariant) // Shared library that requests asan - libAsan := result.ModuleForTests("libasan", sharedAsanVariant) + libAsan := result.ModuleForTests(t, "libasan", sharedAsanVariant) // Static library that uses an asan variant for bin_with_asan and a non-asan variant // for bin_no_asan. - libStaticAsanVariant := result.ModuleForTests("libstatic", staticAsanVariant) - libStaticNoAsanVariant := result.ModuleForTests("libstatic", staticVariant) + libStaticAsanVariant := result.ModuleForTests(t, "libstatic", staticAsanVariant) + libStaticNoAsanVariant := result.ModuleForTests(t, "libstatic", staticVariant) // Static library that never uses asan. - libNoAsan := result.ModuleForTests("libnoasan", staticVariant) + libNoAsan := result.ModuleForTests(t, "libnoasan", staticVariant) // Static library that specifies asan - libStaticAsan := result.ModuleForTests("libstatic_asan", staticAsanVariant) - libStaticAsanNoAsanVariant := result.ModuleForTests("libstatic_asan", staticVariant) + libStaticAsan := result.ModuleForTests(t, "libstatic_asan", staticAsanVariant) + libStaticAsanNoAsanVariant := result.ModuleForTests(t, "libstatic_asan", staticVariant) - libAsanSharedRuntime := result.ModuleForTests("libclang_rt.asan", sharedVariant) - libAsanStaticRuntime := result.ModuleForTests("libclang_rt.asan.static", staticVariant) - libAsanStaticCxxRuntime := result.ModuleForTests("libclang_rt.asan_cxx.static", staticVariant) + libAsanSharedRuntime := result.ModuleForTests(t, "libclang_rt.asan", sharedVariant) + libAsanStaticRuntime := result.ModuleForTests(t, "libclang_rt.asan.static", staticVariant) + libAsanStaticCxxRuntime := result.ModuleForTests(t, "libclang_rt.asan_cxx.static", staticVariant) expectSharedLinkDep(t, ctx, binWithAsan, libShared) expectSharedLinkDep(t, ctx, binWithAsan, libAsan) @@ -386,15 +386,15 @@ func TestTsan(t *testing.T) { sharedTsanVariant := sharedVariant + "_tsan" // The binaries, one with tsan and one without - binWithTsan := result.ModuleForTests("bin_with_tsan", tsanVariant) - binNoTsan := result.ModuleForTests("bin_no_tsan", variant) + binWithTsan := result.ModuleForTests(t, "bin_with_tsan", tsanVariant) + binNoTsan := result.ModuleForTests(t, "bin_no_tsan", variant) // Shared libraries that don't request tsan - libShared := result.ModuleForTests("libshared", sharedVariant) - libTransitive := result.ModuleForTests("libtransitive", sharedVariant) + libShared := result.ModuleForTests(t, "libshared", sharedVariant) + libTransitive := result.ModuleForTests(t, "libtransitive", sharedVariant) // Shared library that requests tsan - libTsan := result.ModuleForTests("libtsan", sharedTsanVariant) + libTsan := result.ModuleForTests(t, "libtsan", sharedTsanVariant) expectSharedLinkDep(t, ctx, binWithTsan, libShared) expectSharedLinkDep(t, ctx, binWithTsan, libTsan) @@ -479,16 +479,16 @@ func TestMiscUndefined(t *testing.T) { staticVariant := variant + "_static" // The binaries, one with ubsan and one without - binWithUbsan := result.ModuleForTests("bin_with_ubsan", variant) - binNoUbsan := result.ModuleForTests("bin_no_ubsan", variant) + binWithUbsan := result.ModuleForTests(t, "bin_with_ubsan", variant) + binNoUbsan := result.ModuleForTests(t, "bin_no_ubsan", variant) // Static libraries that don't request ubsan - libStatic := result.ModuleForTests("libstatic", staticVariant) - libTransitive := result.ModuleForTests("libtransitive", staticVariant) + libStatic := result.ModuleForTests(t, "libstatic", staticVariant) + libTransitive := result.ModuleForTests(t, "libtransitive", staticVariant) - libUbsan := result.ModuleForTests("libubsan", staticVariant) + libUbsan := result.ModuleForTests(t, "libubsan", staticVariant) - libUbsanMinimal := result.ModuleForTests("libclang_rt.ubsan_minimal", staticVariant) + libUbsanMinimal := result.ModuleForTests(t, "libclang_rt.ubsan_minimal", staticVariant) expectStaticLinkDep(t, ctx, binWithUbsan, libStatic) expectStaticLinkDep(t, ctx, binWithUbsan, libUbsan) @@ -610,31 +610,31 @@ func TestFuzz(t *testing.T) { staticFuzzerVariant := staticVariant + "_fuzzer" // The binaries, one with fuzzer and one without - binWithFuzzer := result.ModuleForTests("bin_with_fuzzer", fuzzerVariant) - binNoFuzzer := result.ModuleForTests("bin_no_fuzzer", variant) + binWithFuzzer := result.ModuleForTests(t, "bin_with_fuzzer", fuzzerVariant) + binNoFuzzer := result.ModuleForTests(t, "bin_no_fuzzer", variant) // Shared libraries that don't request fuzzer - libShared := result.ModuleForTests("libshared", sharedVariant) - libTransitive := result.ModuleForTests("libtransitive", sharedVariant) + libShared := result.ModuleForTests(t, "libshared", sharedVariant) + libTransitive := result.ModuleForTests(t, "libtransitive", sharedVariant) // Shared libraries that don't request fuzzer - libSharedFuzzer := result.ModuleForTests("libshared", sharedFuzzerVariant) - libTransitiveFuzzer := result.ModuleForTests("libtransitive", sharedFuzzerVariant) + libSharedFuzzer := result.ModuleForTests(t, "libshared", sharedFuzzerVariant) + libTransitiveFuzzer := result.ModuleForTests(t, "libtransitive", sharedFuzzerVariant) // Shared library that requests fuzzer - libFuzzer := result.ModuleForTests("libfuzzer", sharedFuzzerVariant) + libFuzzer := result.ModuleForTests(t, "libfuzzer", sharedFuzzerVariant) // Static library that uses an fuzzer variant for bin_with_fuzzer and a non-fuzzer variant // for bin_no_fuzzer. - libStaticFuzzerVariant := result.ModuleForTests("libstatic", staticFuzzerVariant) - libStaticNoFuzzerVariant := result.ModuleForTests("libstatic", staticVariant) + libStaticFuzzerVariant := result.ModuleForTests(t, "libstatic", staticFuzzerVariant) + libStaticNoFuzzerVariant := result.ModuleForTests(t, "libstatic", staticVariant) // Static library that never uses fuzzer. - libNoFuzzer := result.ModuleForTests("libnofuzzer", staticVariant) + libNoFuzzer := result.ModuleForTests(t, "libnofuzzer", staticVariant) // Static library that specifies fuzzer - libStaticFuzzer := result.ModuleForTests("libstatic_fuzzer", staticFuzzerVariant) - libStaticFuzzerNoFuzzerVariant := result.ModuleForTests("libstatic_fuzzer", staticVariant) + libStaticFuzzer := result.ModuleForTests(t, "libstatic_fuzzer", staticFuzzerVariant) + libStaticFuzzerNoFuzzerVariant := result.ModuleForTests(t, "libstatic_fuzzer", staticVariant) expectSharedLinkDep(t, ctx, binWithFuzzer, libSharedFuzzer) expectSharedLinkDep(t, ctx, binWithFuzzer, libFuzzer) @@ -781,16 +781,16 @@ func TestUbsan(t *testing.T) { staticVariant := variant + "_static" sharedVariant := variant + "_shared" - minimalRuntime := result.ModuleForTests("libclang_rt.ubsan_minimal", staticVariant) - standaloneRuntime := result.ModuleForTests("libclang_rt.ubsan_standalone.static", staticVariant) + minimalRuntime := result.ModuleForTests(t, "libclang_rt.ubsan_minimal", staticVariant) + standaloneRuntime := result.ModuleForTests(t, "libclang_rt.ubsan_standalone.static", staticVariant) // The binaries, one with ubsan and one without - binWithUbsan := result.ModuleForTests("bin_with_ubsan", variant) - binDependsUbsan := result.ModuleForTests("bin_depends_ubsan_static", variant) - libSharedUbsan := result.ModuleForTests("libsharedubsan", sharedVariant) - binDependsUbsanShared := result.ModuleForTests("bin_depends_ubsan_shared", variant) - binNoUbsan := result.ModuleForTests("bin_no_ubsan", variant) - staticBin := result.ModuleForTests("static_bin_with_ubsan_dep", variant) + binWithUbsan := result.ModuleForTests(t, "bin_with_ubsan", variant) + binDependsUbsan := result.ModuleForTests(t, "bin_depends_ubsan_static", variant) + libSharedUbsan := result.ModuleForTests(t, "libsharedubsan", sharedVariant) + binDependsUbsanShared := result.ModuleForTests(t, "bin_depends_ubsan_shared", variant) + binNoUbsan := result.ModuleForTests(t, "bin_no_ubsan", variant) + staticBin := result.ModuleForTests(t, "static_bin_with_ubsan_dep", variant) android.AssertStringListContains(t, "missing libclang_rt.ubsan_minimal in bin_with_ubsan static libs", strings.Split(binWithUbsan.Rule("ld").Args["libFlags"], " "), @@ -979,67 +979,67 @@ func TestSanitizeMemtagHeap(t *testing.T) { ).RunTest(t) ctx := result.TestContext - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_binary_no_override", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_binary_override_default_async", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_binary_override_default_disable", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_binary_override_default_sync", variant), None) - - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_test_no_override", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_test_override_default_async", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_test_override_default_disable", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_test_override_default_sync", variant), None) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_binary_no_override", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_binary_override_default_async", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_binary_override_default_disable", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_binary_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_test_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_test_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_test_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_test_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_binary_no_override", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_binary_override_default_async", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_binary_override_default_disable", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_binary_override_default_sync", variant), Async) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_test_no_override", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_test_override_default_async", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_test_override_default_disable", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_test_override_default_sync", variant), Async) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_binary_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_binary_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_binary_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_binary_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_test_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_test_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_test_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_test_override_default_sync", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_binary_no_override", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_binary_override_default_async", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_binary_override_default_disable", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_binary_override_default_sync", variant), None) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_test_no_override", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_test_override_default_async", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_test_override_default_disable", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_test_override_default_sync", variant), None) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_binary_no_override", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_binary_override_default_async", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_binary_override_default_disable", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_binary_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_test_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_test_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_test_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_test_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_binary_no_override", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_binary_override_default_async", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_binary_override_default_disable", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_binary_override_default_sync", variant), Async) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_test_no_override", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_test_override_default_async", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_test_override_default_disable", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_test_override_default_sync", variant), Async) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_binary_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_binary_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_binary_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_binary_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_test_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_test_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_test_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_test_override_default_sync", variant), Sync) // should sanitize: { diag: { memtag: true } } result in Sync instead of None here? - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_binary_no_override", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_binary_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_binary_no_override", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_binary_override_default_async", variant), Sync) // should sanitize: { diag: { memtag: true } } result in Sync instead of None here? - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_binary_override_default_disable", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_binary_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_test_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_test_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_test_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_test_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("unset_binary_no_override", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_binary_override_default_async", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_binary_override_default_disable", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_binary_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("unset_test_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_test_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_test_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_test_override_default_sync", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_binary_override_default_disable", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_binary_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_test_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_test_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_test_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_test_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_binary_no_override", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_binary_override_default_async", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_binary_override_default_disable", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_binary_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_test_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_test_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_test_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_test_override_default_sync", variant), Sync) } func TestSanitizeMemtagHeapWithSanitizeDevice(t *testing.T) { @@ -1055,66 +1055,66 @@ func TestSanitizeMemtagHeapWithSanitizeDevice(t *testing.T) { ).RunTest(t) ctx := result.TestContext - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_binary_no_override", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_binary_override_default_async", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_binary_override_default_disable", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_binary_override_default_sync", variant), None) - - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_test_no_override", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_test_override_default_async", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_test_override_default_disable", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_test_override_default_sync", variant), None) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_binary_no_override", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_binary_override_default_async", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_binary_override_default_disable", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_binary_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_test_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_test_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_test_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_test_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_binary_no_override", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_binary_override_default_async", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_binary_override_default_disable", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_binary_override_default_sync", variant), Async) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_test_no_override", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_test_override_default_async", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_test_override_default_disable", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_test_override_default_sync", variant), Async) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_binary_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_binary_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_binary_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_binary_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_test_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_test_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_test_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_test_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_binary_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_binary_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_binary_no_override", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_binary_override_default_async", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_binary_override_default_disable", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_binary_override_default_sync", variant), None) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_test_no_override", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_test_override_default_async", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_test_override_default_disable", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_test_override_default_sync", variant), None) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_binary_no_override", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_binary_override_default_async", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_binary_override_default_disable", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_binary_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_test_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_test_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_test_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_test_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_binary_no_override", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_binary_override_default_async", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_binary_override_default_disable", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_binary_override_default_sync", variant), Async) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_test_no_override", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_test_override_default_async", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_test_override_default_disable", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_test_override_default_sync", variant), Async) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_binary_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_binary_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_binary_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_binary_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_test_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_test_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_test_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_test_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_binary_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_binary_override_default_async", variant), Sync) // should sanitize: { diag: { memtag: true } } result in Sync instead of None here? - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_binary_override_default_disable", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_binary_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_test_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_test_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_test_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_test_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("unset_binary_no_override", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_binary_override_default_async", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_binary_override_default_disable", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_binary_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("unset_test_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_test_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_test_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_test_override_default_sync", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_binary_override_default_disable", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_binary_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_test_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_test_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_test_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_test_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_binary_no_override", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_binary_override_default_async", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_binary_override_default_disable", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_binary_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_test_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_test_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_test_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_test_override_default_sync", variant), Sync) } func TestSanitizeMemtagHeapWithSanitizeDeviceDiag(t *testing.T) { @@ -1131,66 +1131,66 @@ func TestSanitizeMemtagHeapWithSanitizeDeviceDiag(t *testing.T) { ).RunTest(t) ctx := result.TestContext - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_binary_no_override", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_binary_override_default_async", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_binary_override_default_disable", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_binary_override_default_sync", variant), None) - - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_test_no_override", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_test_override_default_async", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_test_override_default_disable", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("no_memtag_test_override_default_sync", variant), None) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_binary_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_binary_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_binary_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_binary_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_test_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_test_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_test_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_test_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_binary_no_override", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_binary_override_default_async", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_binary_override_default_disable", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_binary_override_default_sync", variant), Async) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_test_no_override", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_test_override_default_async", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_test_override_default_disable", variant), Async) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_async_test_override_default_sync", variant), Async) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_binary_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_binary_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_binary_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_binary_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_test_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_test_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_test_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("set_memtag_set_sync_test_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_binary_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_binary_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_binary_no_override", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_binary_override_default_async", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_binary_override_default_disable", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_binary_override_default_sync", variant), None) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_test_no_override", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_test_override_default_async", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_test_override_default_disable", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "no_memtag_test_override_default_sync", variant), None) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_binary_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_binary_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_binary_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_binary_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_test_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_test_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_test_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_test_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_binary_no_override", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_binary_override_default_async", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_binary_override_default_disable", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_binary_override_default_sync", variant), Async) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_test_no_override", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_test_override_default_async", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_test_override_default_disable", variant), Async) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_async_test_override_default_sync", variant), Async) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_binary_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_binary_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_binary_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_binary_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_test_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_test_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_test_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "set_memtag_set_sync_test_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_binary_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_binary_override_default_async", variant), Sync) // should sanitize: { diag: { memtag: true } } result in Sync instead of None here? - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_binary_override_default_disable", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_binary_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_test_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_test_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_test_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_memtag_set_sync_test_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("unset_binary_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_binary_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_binary_override_default_disable", variant), None) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_binary_override_default_sync", variant), Sync) - - checkHasMemtagNote(t, ctx.ModuleForTests("unset_test_no_override", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_test_override_default_async", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_test_override_default_disable", variant), Sync) - checkHasMemtagNote(t, ctx.ModuleForTests("unset_test_override_default_sync", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_binary_override_default_disable", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_binary_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_test_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_test_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_test_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_memtag_set_sync_test_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_binary_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_binary_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_binary_override_default_disable", variant), None) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_binary_override_default_sync", variant), Sync) + + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_test_no_override", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_test_override_default_async", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_test_override_default_disable", variant), Sync) + checkHasMemtagNote(t, ctx.ModuleForTests(t, "unset_test_override_default_sync", variant), Sync) } func TestCfi(t *testing.T) { @@ -1250,14 +1250,14 @@ func TestCfi(t *testing.T) { cfi_suffix := "_cfi" static_suffix := "_static" - sharedWithCfiLib := result.ModuleForTests("shared_with_cfi", buildOs+shared_suffix+cfi_suffix) - sharedNoCfiLib := result.ModuleForTests("shared_no_cfi", buildOs+shared_suffix) - staticWithCfiLib := result.ModuleForTests("static_dep_with_cfi", buildOs+static_suffix) - staticWithCfiLibCfiVariant := result.ModuleForTests("static_dep_with_cfi", buildOs+static_suffix+cfi_suffix) - staticNoCfiLib := result.ModuleForTests("static_dep_no_cfi", buildOs+static_suffix) - staticNoCfiLibCfiVariant := result.ModuleForTests("static_dep_no_cfi", buildOs+static_suffix+cfi_suffix) - sharedRdepNoCfi := result.ModuleForTests("shared_rdep_no_cfi", buildOs+shared_suffix) - staticDepWithCfi2Lib := result.ModuleForTests("static_dep_with_cfi_2", buildOs+static_suffix) + sharedWithCfiLib := result.ModuleForTests(t, "shared_with_cfi", buildOs+shared_suffix+cfi_suffix) + sharedNoCfiLib := result.ModuleForTests(t, "shared_no_cfi", buildOs+shared_suffix) + staticWithCfiLib := result.ModuleForTests(t, "static_dep_with_cfi", buildOs+static_suffix) + staticWithCfiLibCfiVariant := result.ModuleForTests(t, "static_dep_with_cfi", buildOs+static_suffix+cfi_suffix) + staticNoCfiLib := result.ModuleForTests(t, "static_dep_no_cfi", buildOs+static_suffix) + staticNoCfiLibCfiVariant := result.ModuleForTests(t, "static_dep_no_cfi", buildOs+static_suffix+cfi_suffix) + sharedRdepNoCfi := result.ModuleForTests(t, "shared_rdep_no_cfi", buildOs+shared_suffix) + staticDepWithCfi2Lib := result.ModuleForTests(t, "static_dep_with_cfi_2", buildOs+static_suffix) // Confirm assumptions about propagation of CFI enablement expectStaticLinkDep(t, ctx, sharedWithCfiLib, staticWithCfiLibCfiVariant) diff --git a/cc/sdk_test.go b/cc/sdk_test.go index 61925e30c..664a7c6e6 100644 --- a/cc/sdk_test.go +++ b/cc/sdk_test.go @@ -81,16 +81,16 @@ func TestSdkMutator(t *testing.T) { ctx := testCc(t, bp) - libsdkNDK := ctx.ModuleForTests("libsdk", "android_arm64_armv8-a_sdk_shared") - libsdkPlatform := ctx.ModuleForTests("libsdk", "android_arm64_armv8-a_shared") - libsdkdepNDK := ctx.ModuleForTests("libsdkdep", "android_arm64_armv8-a_sdk_shared") - libsdkdepPlatform := ctx.ModuleForTests("libsdkdep", "android_arm64_armv8-a_shared") - libplatform := ctx.ModuleForTests("libplatform", "android_arm64_armv8-a_shared") - platformbinary := ctx.ModuleForTests("platformbinary", "android_arm64_armv8-a") - sdkbinary := ctx.ModuleForTests("sdkbinary", "android_arm64_armv8-a_sdk") - - libcxxNDK := ctx.ModuleForTests("ndk_libc++_shared", "android_arm64_armv8-a_sdk_shared") - libcxxPlatform := ctx.ModuleForTests("libc++", "android_arm64_armv8-a_shared") + libsdkNDK := ctx.ModuleForTests(t, "libsdk", "android_arm64_armv8-a_sdk_shared") + libsdkPlatform := ctx.ModuleForTests(t, "libsdk", "android_arm64_armv8-a_shared") + libsdkdepNDK := ctx.ModuleForTests(t, "libsdkdep", "android_arm64_armv8-a_sdk_shared") + libsdkdepPlatform := ctx.ModuleForTests(t, "libsdkdep", "android_arm64_armv8-a_shared") + libplatform := ctx.ModuleForTests(t, "libplatform", "android_arm64_armv8-a_shared") + platformbinary := ctx.ModuleForTests(t, "platformbinary", "android_arm64_armv8-a") + sdkbinary := ctx.ModuleForTests(t, "sdkbinary", "android_arm64_armv8-a_sdk") + + libcxxNDK := ctx.ModuleForTests(t, "ndk_libc++_shared", "android_arm64_armv8-a_sdk_shared") + libcxxPlatform := ctx.ModuleForTests(t, "libc++", "android_arm64_armv8-a_shared") assertDep(t, libsdkNDK, libsdkdepNDK) assertDep(t, libsdkPlatform, libsdkdepPlatform) diff --git a/cc/test.go b/cc/test.go index 9f86c7af3..b3b2ae8c4 100644 --- a/cc/test.go +++ b/cc/test.go @@ -442,6 +442,9 @@ func (test *testBinary) install(ctx ModuleContext, file android.Path) { if standaloneTestDep.ToGob().SrcPath == nil { continue } + if standaloneTestDep.SkipInstall() { + continue + } test.binaryDecorator.baseInstaller.installStandaloneTestDep(ctx, standaloneTestDep) } } diff --git a/cc/test_data_test.go b/cc/test_data_test.go index a62116677..2c03ca4d5 100644 --- a/cc/test_data_test.go +++ b/cc/test_data_test.go @@ -132,7 +132,7 @@ func TestDataTests(t *testing.T) { _, errs = ctx.PrepareBuildActions(config) android.FailIfErrored(t, errs) - foo := ctx.ModuleForTests("foo", "") + foo := ctx.ModuleForTests(t, "foo", "") got := foo.Module().(*testDataTest).data if len(got) != len(test.data) { diff --git a/cc/testing.go b/cc/testing.go index c9d362da2..69ae11dfd 100644 --- a/cc/testing.go +++ b/cc/testing.go @@ -708,7 +708,7 @@ func CreateTestContext(config android.Config) *android.TestContext { func checkSnapshotIncludeExclude(t *testing.T, ctx *android.TestContext, singleton android.TestingSingleton, moduleName, snapshotFilename, subDir, variant string, include bool, fake bool) { t.Helper() - mod := ctx.ModuleForTests(moduleName, variant) + mod := ctx.ModuleForTests(t, moduleName, variant) outputFiles := mod.OutputFiles(ctx, t, "") if len(outputFiles) != 1 { t.Errorf("%q must have single output\n", moduleName) @@ -750,9 +750,10 @@ func CheckSnapshotRule(t *testing.T, ctx *android.TestContext, singleton android checkSnapshotIncludeExclude(t, ctx, singleton, moduleName, snapshotFilename, subDir, variant, true, true) } -func GetOutputPaths(ctx *android.TestContext, variant string, moduleNames []string) (paths android.Paths) { +func GetOutputPaths(t *testing.T, ctx *android.TestContext, variant string, moduleNames []string) (paths android.Paths) { + t.Helper() for _, moduleName := range moduleNames { - module := ctx.ModuleForTests(moduleName, variant).Module().(*Module) + module := ctx.ModuleForTests(t, moduleName, variant).Module().(*Module) output := module.outputFile.Path().RelativeToTop() paths = append(paths, output) } diff --git a/cc/tidy_test.go b/cc/tidy_test.go index 9481778a2..afc12b8d9 100644 --- a/cc/tidy_test.go +++ b/cc/tidy_test.go @@ -83,7 +83,7 @@ func TestTidyFlagsWarningsAsErrors(t *testing.T) { variant := "android_arm64_armv8-a_shared" ctx := testCc(t, test.bp) t.Run("caseTidyFlags", func(t *testing.T) { - flags := ctx.ModuleForTests(test.libName, variant).Rule("clangTidy").Args["tidyFlags"] + flags := ctx.ModuleForTests(t, test.libName, variant).Rule("clangTidy").Args["tidyFlags"] for _, flag := range test.flags { if !strings.Contains(flags, flag) { t.Errorf("tidyFlags %v for %s does not contain %s.", flags, test.libName, flag) @@ -143,7 +143,7 @@ func TestTidyChecks(t *testing.T) { variant := "android_arm64_armv8-a_shared" for _, test := range testCases { libName := fmt.Sprintf("libfoo_%d", test.libNumber) - flags := ctx.ModuleForTests(libName, variant).Rule("clangTidy").Args["tidyFlags"] + flags := ctx.ModuleForTests(t, libName, variant).Rule("clangTidy").Args["tidyFlags"] splitFlags := strings.Split(flags, " ") foundCheckFlag := false for _, flag := range splitFlags { @@ -231,7 +231,7 @@ func TestWithTidy(t *testing.T) { checkLibraryRule := func(foo, variant, ruleName string) { libName := fmt.Sprintf("lib%s_%d", foo, n) tidyFile := "out/soong/.intermediates/" + libName + "/" + variant + "/obj/" + foo + ".tidy" - depFiles := ctx.ModuleForTests(libName, variant).Rule(ruleName).Validations.Strings() + depFiles := ctx.ModuleForTests(t, libName, variant).Rule(ruleName).Validations.Strings() if test.needTidyFile[n] { android.AssertStringListContains(t, libName+" needs .tidy file", depFiles, tidyFile) } else { @@ -262,7 +262,7 @@ func TestWithGeneratedCode(t *testing.T) { ctx := android.GroupFixturePreparers(prepareForCcTest, android.FixtureMergeEnv(testEnv)).RunTestWithBp(t, bp) t.Run("tidy should be only run for source code, not for generated code", func(t *testing.T) { - depFiles := ctx.ModuleForTests("libfoo", variant).Rule("ld").Validations.Strings() + depFiles := ctx.ModuleForTests(t, "libfoo", variant).Rule("ld").Validations.Strings() tidyFileForCpp := "out/soong/.intermediates/libfoo/" + variant + "/obj/foo_src.tidy" diff --git a/cc/vendor_public_library_test.go b/cc/vendor_public_library_test.go index 7385f2b88..797bb251c 100644 --- a/cc/vendor_public_library_test.go +++ b/cc/vendor_public_library_test.go @@ -70,32 +70,32 @@ func TestVendorPublicLibraries(t *testing.T) { // test if header search paths are correctly added // _static variant is used since _shared reuses *.o from the static variant - cc := ctx.ModuleForTests("libsystem", strings.Replace(coreVariant, "_shared", "_static", 1)).Rule("cc") + cc := ctx.ModuleForTests(t, "libsystem", strings.Replace(coreVariant, "_shared", "_static", 1)).Rule("cc") cflags := cc.Args["cFlags"] if !strings.Contains(cflags, "-Imy_include") { t.Errorf("cflags for libsystem must contain -Imy_include, but was %#v.", cflags) } // test if libsystem is linked to the stub - ld := ctx.ModuleForTests("libsystem", coreVariant).Rule("ld") + ld := ctx.ModuleForTests(t, "libsystem", coreVariant).Rule("ld") libflags := ld.Args["libFlags"] - stubPaths := GetOutputPaths(ctx, coreVariant, []string{"libvendorpublic"}) + stubPaths := GetOutputPaths(t, ctx, coreVariant, []string{"libvendorpublic"}) if !strings.Contains(libflags, stubPaths[0].String()) { t.Errorf("libflags for libsystem must contain %#v, but was %#v", stubPaths[0], libflags) } // test if libsystem is linked to the stub - ld = ctx.ModuleForTests("libproduct", productVariant).Rule("ld") + ld = ctx.ModuleForTests(t, "libproduct", productVariant).Rule("ld") libflags = ld.Args["libFlags"] - stubPaths = GetOutputPaths(ctx, productVariant, []string{"libvendorpublic"}) + stubPaths = GetOutputPaths(t, ctx, productVariant, []string{"libvendorpublic"}) if !strings.Contains(libflags, stubPaths[0].String()) { t.Errorf("libflags for libproduct must contain %#v, but was %#v", stubPaths[0], libflags) } // test if libvendor is linked to the real shared lib - ld = ctx.ModuleForTests("libvendor", vendorVariant).Rule("ld") + ld = ctx.ModuleForTests(t, "libvendor", vendorVariant).Rule("ld") libflags = ld.Args["libFlags"] - stubPaths = GetOutputPaths(ctx, vendorVariant, []string{"libvendorpublic"}) + stubPaths = GetOutputPaths(t, ctx, vendorVariant, []string{"libvendorpublic"}) if !strings.Contains(libflags, stubPaths[0].String()) { t.Errorf("libflags for libvendor must contain %#v, but was %#v", stubPaths[0], libflags) |