From 90607e9056f6ff4cec2447fdd7a8b252d67ffde7 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Tue, 11 Feb 2025 14:58:07 -0800 Subject: Don't panic in ModuleForTests and friends Panicking in ModuleForTests and similar test helper functions was a mistake. Go's test runner stops running tests as soon as any test panics, which means debugging multiple tests panicking requires rerunning all the tests after fixing each panic to find the next one. Pass the *testing.T into ModuleForTests and friends so that it can call t.Fatalf instead. Test: all soong tests pass Change-Id: I5d0f2424eaf04fb795079e6d1e4b9469d8c7033c --- apex/bootclasspath_fragment_test.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'apex/bootclasspath_fragment_test.go') diff --git a/apex/bootclasspath_fragment_test.go b/apex/bootclasspath_fragment_test.go index 60d111f67..97644e631 100644 --- a/apex/bootclasspath_fragment_test.go +++ b/apex/bootclasspath_fragment_test.go @@ -330,7 +330,7 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) { // Make sure that the source bootclasspath_fragment copies its dex files to the predefined // locations for the art image. - module := result.ModuleForTests("dex_bootjars", "android_common") + module := result.ModuleForTests(t, "dex_bootjars", "android_common") checkCopiesToPredefinedLocationForArt(t, result.Config, module, "bar", "foo") }) @@ -438,7 +438,7 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) { // Make sure that the prebuilt bootclasspath_fragment copies its dex files to the predefined // locations for the art image. - module := result.ModuleForTests("dex_bootjars", "android_common") + module := result.ModuleForTests(t, "dex_bootjars", "android_common") checkCopiesToPredefinedLocationForArt(t, result.Config, module, "bar", "foo") }) @@ -604,7 +604,7 @@ func TestBootclasspathFragmentInPrebuiltArtApex(t *testing.T) { `prebuilt_foo`, }) - module := result.ModuleForTests("dex_bootjars", "android_common") + module := result.ModuleForTests(t, "dex_bootjars", "android_common") checkCopiesToPredefinedLocationForArt(t, result.Config, module, "bar", "foo") }) } @@ -709,7 +709,7 @@ func TestBootclasspathFragmentContentsNoName(t *testing.T) { `mybootclasspathfragment`, }) - apex := result.ModuleForTests("myapex", "android_common_myapex") + apex := result.ModuleForTests(t, "myapex", "android_common_myapex") apexRule := apex.Rule("apexRule") copyCommands := apexRule.Args["copy_commands"] @@ -877,7 +877,7 @@ func TestBootclasspathFragment_HiddenAPIList(t *testing.T) { quuzModuleLibStubs := getDexJarPath(result, "quuz.stubs.exportable.module_lib") // Make sure that the fragment uses the quuz stub dex jars when generating the hidden API flags. - fragment := result.ModuleForTests("mybootclasspathfragment", "android_common_myapex") + fragment := result.ModuleForTests(t, "mybootclasspathfragment", "android_common_myapex") rule := fragment.Rule("modularHiddenAPIStubFlagsFile") command := rule.RuleParams.Command @@ -1054,7 +1054,7 @@ func TestBootclasspathFragment_AndroidNonUpdatable_FromSource(t *testing.T) { // Make sure that the fragment uses the android-non-updatable modules when generating the hidden // API flags. - fragment := result.ModuleForTests("mybootclasspathfragment", "android_common_myapex") + fragment := result.ModuleForTests(t, "mybootclasspathfragment", "android_common_myapex") rule := fragment.Rule("modularHiddenAPIStubFlagsFile") command := rule.RuleParams.Command @@ -1225,7 +1225,7 @@ func TestBootclasspathFragment_AndroidNonUpdatable_FromText(t *testing.T) { // Make sure that the fragment uses the android-non-updatable modules when generating the hidden // API flags. - fragment := result.ModuleForTests("mybootclasspathfragment", "android_common_myapex") + fragment := result.ModuleForTests(t, "mybootclasspathfragment", "android_common_myapex") rule := fragment.Rule("modularHiddenAPIStubFlagsFile") command := rule.RuleParams.Command @@ -1383,7 +1383,7 @@ func TestBootclasspathFragment_AndroidNonUpdatable_AlwaysUsePrebuiltSdks(t *test // Make sure that the fragment uses the android-non-updatable modules when generating the hidden // API flags. - fragment := result.ModuleForTests("mybootclasspathfragment", "android_common_myapex") + fragment := result.ModuleForTests(t, "mybootclasspathfragment", "android_common_myapex") rule := fragment.Rule("modularHiddenAPIStubFlagsFile") command := rule.RuleParams.Command @@ -1466,7 +1466,7 @@ func TestBootclasspathFragmentProtoContainsMinSdkVersion(t *testing.T) { } `) - fragment := result.ModuleForTests("mybootclasspathfragment", "android_common_myapex") + fragment := result.ModuleForTests(t, "mybootclasspathfragment", "android_common_myapex") classPathProtoContent := android.ContentFromFileRuleForTests(t, result.TestContext, fragment.Output("bootclasspath.pb.textproto")) // foo ensureContains(t, classPathProtoContent, `jars { -- cgit v1.2.3-59-g8ed1b