diff options
Diffstat (limited to 'java/app_test.go')
-rw-r--r-- | java/app_test.go | 358 |
1 files changed, 228 insertions, 130 deletions
diff --git a/java/app_test.go b/java/app_test.go index bde801b32..701fc3594 100644 --- a/java/app_test.go +++ b/java/app_test.go @@ -42,6 +42,7 @@ func testApp(t *testing.T, bp string) *android.TestContext { } func TestApp(t *testing.T) { + t.Parallel() resourceFiles := []string{ "res/layout/layout.xml", "res/values/strings.xml", @@ -56,6 +57,7 @@ func TestApp(t *testing.T) { for _, moduleType := range []string{"android_app", "android_library"} { t.Run(moduleType, func(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( prepareForJavaTest, android.FixtureModifyMockFS(func(fs android.MockFS) { @@ -101,6 +103,7 @@ func TestApp(t *testing.T) { } func TestAppSplits(t *testing.T) { + t.Parallel() ctx := testApp(t, ` android_app { name: "foo", @@ -125,6 +128,7 @@ func TestAppSplits(t *testing.T) { } func TestPlatformAPIs(t *testing.T) { + t.Parallel() testJava(t, ` android_app { name: "foo", @@ -159,6 +163,7 @@ func TestPlatformAPIs(t *testing.T) { } func TestAndroidAppLinkType(t *testing.T) { + t.Parallel() testJava(t, ` android_app { name: "foo", @@ -248,6 +253,7 @@ func TestAndroidAppLinkType(t *testing.T) { } func TestUpdatableApps(t *testing.T) { + t.Parallel() testCases := []struct { name string bp string @@ -359,6 +365,7 @@ func TestUpdatableApps(t *testing.T) { for _, test := range testCases { t.Run(test.name, func(t *testing.T) { + t.Parallel() errorHandler := android.FixtureExpectsNoErrors if test.expectedError != "" { errorHandler = android.FixtureExpectsAtLeastOneErrorMatchingPattern(test.expectedError) @@ -373,6 +380,7 @@ func TestUpdatableApps(t *testing.T) { } func TestUpdatableApps_TransitiveDepsShouldSetMinSdkVersion(t *testing.T) { + t.Parallel() testJavaError(t, `module "bar".*: should support min_sdk_version\(29\)`, cc.GatherRequiredDepsForTest(android.Android)+` android_app { name: "foo", @@ -391,6 +399,7 @@ func TestUpdatableApps_TransitiveDepsShouldSetMinSdkVersion(t *testing.T) { } func TestUpdatableApps_JniLibsShouldShouldSupportMinSdkVersion(t *testing.T) { + t.Parallel() testJava(t, cc.GatherRequiredDepsForTest(android.Android)+` android_app { name: "foo", @@ -411,6 +420,7 @@ func TestUpdatableApps_JniLibsShouldShouldSupportMinSdkVersion(t *testing.T) { } func TestUpdatableApps_JniLibShouldBeBuiltAgainstMinSdkVersion(t *testing.T) { + t.Parallel() bp := cc.GatherRequiredDepsForTest(android.Android) + ` android_app { name: "foo", @@ -466,6 +476,7 @@ func TestUpdatableApps_JniLibShouldBeBuiltAgainstMinSdkVersion(t *testing.T) { } func TestUpdatableApps_ErrorIfJniLibDoesntSupportMinSdkVersion(t *testing.T) { + t.Parallel() bp := cc.GatherRequiredDepsForTest(android.Android) + ` android_app { name: "foo", @@ -487,6 +498,7 @@ func TestUpdatableApps_ErrorIfJniLibDoesntSupportMinSdkVersion(t *testing.T) { } func TestUpdatableApps_ErrorIfDepMinSdkVersionIsHigher(t *testing.T) { + t.Parallel() bp := cc.GatherRequiredDepsForTest(android.Android) + ` android_app { name: "foo", @@ -518,6 +530,7 @@ func TestUpdatableApps_ErrorIfDepMinSdkVersionIsHigher(t *testing.T) { } func TestUpdatableApps_ApplyDefaultUpdatableModuleVersion(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, ).RunTestWithBp(t, ` @@ -538,6 +551,7 @@ func TestUpdatableApps_ApplyDefaultUpdatableModuleVersion(t *testing.T) { } func TestUpdatableApps_ApplyOverrideApexManifestDefaultVersion(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.FixtureMergeEnv(map[string]string{ @@ -561,6 +575,7 @@ func TestUpdatableApps_ApplyOverrideApexManifestDefaultVersion(t *testing.T) { } func TestResourceDirs(t *testing.T) { + t.Parallel() testCases := []struct { name string prop string @@ -597,6 +612,7 @@ func TestResourceDirs(t *testing.T) { for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, fs.AddToFixture(), @@ -618,6 +634,7 @@ func TestResourceDirs(t *testing.T) { } func TestLibraryAssets(t *testing.T) { + t.Parallel() bp := ` android_app { name: "foo", @@ -712,6 +729,7 @@ func TestLibraryAssets(t *testing.T) { for _, test := range testCases { t.Run(test.name, func(t *testing.T) { + t.Parallel() m := ctx.ModuleForTests(test.name, "android_common") // Check asset flag in aapt2 link flags @@ -747,6 +765,7 @@ func TestLibraryAssets(t *testing.T) { } func TestAppJavaResources(t *testing.T) { + t.Parallel() bp := ` android_app { name: "foo", @@ -792,6 +811,7 @@ func TestAppJavaResources(t *testing.T) { } func TestAndroidResourceProcessor(t *testing.T) { + t.Parallel() testCases := []struct { name string appUsesRP bool @@ -1224,6 +1244,7 @@ func TestAndroidResourceProcessor(t *testing.T) { for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) { + t.Parallel() bp := fmt.Sprintf(` android_app { name: "app", @@ -1420,6 +1441,7 @@ func TestAndroidResourceProcessor(t *testing.T) { } func TestAndroidResourceOverlays(t *testing.T) { + t.Parallel() type moduleAndVariant struct { module string variant string @@ -1616,6 +1638,7 @@ func TestAndroidResourceOverlays(t *testing.T) { for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, fs.AddToFixture(), @@ -1725,6 +1748,7 @@ func checkSdkVersion(t *testing.T, result *android.TestResult, expectedSdkVersio } func TestAppSdkVersion(t *testing.T) { + t.Parallel() testCases := []struct { name string sdkVersion string @@ -1792,6 +1816,7 @@ func TestAppSdkVersion(t *testing.T) { for _, moduleType := range []string{"android_app", "android_library"} { for _, test := range testCases { t.Run(moduleType+" "+test.name, func(t *testing.T) { + t.Parallel() platformApiProp := "" if test.platformApis { platformApiProp = "platform_apis: true," @@ -1828,6 +1853,7 @@ func TestAppSdkVersion(t *testing.T) { } func TestVendorAppSdkVersion(t *testing.T) { + t.Parallel() testCases := []struct { name string sdkVersion string @@ -1870,6 +1896,7 @@ func TestVendorAppSdkVersion(t *testing.T) { for _, sdkKind := range []string{"", "system_"} { for _, test := range testCases { t.Run(moduleType+" "+test.name, func(t *testing.T) { + t.Parallel() bp := fmt.Sprintf(`%s { name: "foo", srcs: ["a.java"], @@ -1901,6 +1928,7 @@ func TestVendorAppSdkVersion(t *testing.T) { } func TestJNIABI(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, cc.GatherRequiredDepsForTest(android.Android)+` cc_library { name: "libjni", @@ -1957,6 +1985,7 @@ func TestJNIABI(t *testing.T) { for _, test := range testCases { t.Run(test.name, func(t *testing.T) { + t.Parallel() app := ctx.ModuleForTests(test.name, "android_common") jniLibZip := app.Output("jnilibs.zip") var abis []string @@ -1975,6 +2004,7 @@ func TestJNIABI(t *testing.T) { } func TestAppSdkVersionByPartition(t *testing.T) { + t.Parallel() testJavaError(t, "sdk_version must have a value when the module is located at vendor or product", ` android_app { name: "foo", @@ -2019,6 +2049,7 @@ func TestAppSdkVersionByPartition(t *testing.T) { } func TestJNIPackaging(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, cc.GatherRequiredDepsForTest(android.Android)+` cc_library { name: "libjni", @@ -2090,6 +2121,7 @@ func TestJNIPackaging(t *testing.T) { for _, test := range testCases { t.Run(test.name, func(t *testing.T) { + t.Parallel() app := ctx.ModuleForTests(test.name, "android_common") jniLibZip := app.MaybeOutput("jnilibs.zip") if g, w := (jniLibZip.Rule != nil), test.packaged; g != w { @@ -2110,6 +2142,7 @@ func TestJNIPackaging(t *testing.T) { } func TestJNISDK(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, cc.GatherRequiredDepsForTest(android.Android)+` cc_library { name: "libjni", @@ -2180,6 +2213,7 @@ func TestJNISDK(t *testing.T) { for _, test := range testCases { t.Run(test.name, func(t *testing.T) { + t.Parallel() app := ctx.ModuleForTests(test.name, "android_common") jniLibZip := app.MaybeOutput("jnilibs.zip") @@ -2205,6 +2239,7 @@ func TestJNISDK(t *testing.T) { } t.Run("jni_uses_platform_apis_error", func(t *testing.T) { + t.Parallel() testJavaError(t, `jni_uses_platform_apis: can only be set for modules that set sdk_version`, ` android_test { name: "app_platform", @@ -2215,6 +2250,7 @@ func TestJNISDK(t *testing.T) { }) t.Run("jni_uses_sdk_apis_error", func(t *testing.T) { + t.Parallel() testJavaError(t, `jni_uses_sdk_apis: can only be set for modules that do not set sdk_version`, ` android_test { name: "app_sdk", @@ -2227,6 +2263,7 @@ func TestJNISDK(t *testing.T) { } func TestCertificates(t *testing.T) { + t.Parallel() testCases := []struct { name string bp string @@ -2364,6 +2401,7 @@ func TestCertificates(t *testing.T) { for _, test := range testCases { t.Run(test.name, func(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { @@ -2401,6 +2439,7 @@ func TestCertificates(t *testing.T) { } func TestRequestV4SigningFlag(t *testing.T) { + t.Parallel() testCases := []struct { name string bp string @@ -2445,6 +2484,7 @@ func TestRequestV4SigningFlag(t *testing.T) { for _, test := range testCases { t.Run(test.name, func(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, ).RunTestWithBp(t, test.bp) @@ -2459,6 +2499,7 @@ func TestRequestV4SigningFlag(t *testing.T) { } func TestPackageNameOverride(t *testing.T) { + t.Parallel() testCases := []struct { name string bp string @@ -2516,6 +2557,7 @@ func TestPackageNameOverride(t *testing.T) { for _, test := range testCases { t.Run(test.name, func(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { @@ -2544,6 +2586,7 @@ func TestPackageNameOverride(t *testing.T) { } func TestInstrumentationTargetOverridden(t *testing.T) { + t.Parallel() bp := ` android_app { name: "foo", @@ -2575,6 +2618,7 @@ func TestInstrumentationTargetOverridden(t *testing.T) { } func TestOverrideAndroidApp(t *testing.T) { + t.Parallel() result := PrepareForTestWithJavaDefaultModules.RunTestWithBp( t, ` android_app { @@ -2757,6 +2801,7 @@ func TestOverrideAndroidApp(t *testing.T) { } func TestOverrideAndroidAppOverrides(t *testing.T) { + t.Parallel() ctx, _ := testJava( t, ` android_app { @@ -2815,6 +2860,7 @@ func TestOverrideAndroidAppOverrides(t *testing.T) { } func TestOverrideAndroidAppWithPrebuilt(t *testing.T) { + t.Parallel() result := PrepareForTestWithJavaDefaultModules.RunTestWithBp( t, ` android_app { @@ -2850,6 +2896,7 @@ func TestOverrideAndroidAppWithPrebuilt(t *testing.T) { } func TestOverrideAndroidAppStem(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_app { name: "foo", @@ -2924,6 +2971,7 @@ func TestOverrideAndroidAppStem(t *testing.T) { } func TestOverrideAndroidAppDependency(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_app { name: "foo", @@ -3159,6 +3207,7 @@ func TestInstrumentationTargetPrebuilt(t *testing.T) { } func TestStl(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, cc.GatherRequiredDepsForTest(android.Android)+` cc_library { name: "libjni", @@ -3201,6 +3250,7 @@ func TestStl(t *testing.T) { for _, test := range testCases { t.Run(test.name, func(t *testing.T) { + t.Parallel() app := ctx.ModuleForTests(test.name, "android_common") jniLibZip := app.Output("jnilibs.zip") var jnis []string @@ -3431,6 +3481,7 @@ func TestUsesLibraries(t *testing.T) { } func TestDexpreoptBcp(t *testing.T) { + t.Parallel() bp := ` java_sdk_library { name: "foo", @@ -3473,6 +3524,7 @@ func TestDexpreoptBcp(t *testing.T) { for _, test := range testCases { t.Run(test.name, func(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( prepareForJavaTest, PrepareForTestWithJavaSdkLibraryFiles, @@ -3491,6 +3543,7 @@ func TestDexpreoptBcp(t *testing.T) { } func TestCodelessApp(t *testing.T) { + t.Parallel() testCases := []struct { name string bp string @@ -3555,6 +3608,7 @@ func TestCodelessApp(t *testing.T) { for _, test := range testCases { t.Run(test.name, func(t *testing.T) { + t.Parallel() ctx := testApp(t, test.bp) foo := ctx.ModuleForTests("foo", "android_common") @@ -3567,6 +3621,7 @@ func TestCodelessApp(t *testing.T) { } func TestUncompressDex(t *testing.T) { + t.Parallel() testCases := []struct { name string bp string @@ -3666,10 +3721,13 @@ func TestUncompressDex(t *testing.T) { for _, tt := range testCases { t.Run(tt.name, func(t *testing.T) { + t.Parallel() t.Run("platform", func(t *testing.T) { + t.Parallel() test(t, tt.bp, tt.uncompressedPlatform, false) }) t.Run("unbundled", func(t *testing.T) { + t.Parallel() test(t, tt.bp, tt.uncompressedUnbundled, true) }) }) @@ -3691,6 +3749,7 @@ func checkAapt2LinkFlag(t *testing.T, aapt2Flags, flagName, expectedValue string } func TestExportedProguardFlagFiles(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_app { name: "foo", @@ -3752,6 +3811,7 @@ func TestExportedProguardFlagFiles(t *testing.T) { } func TestTargetSdkVersionManifestFixer(t *testing.T) { + t.Parallel() platform_sdk_codename := "Tiramisu" platform_sdk_version := 33 testCases := []struct { @@ -3804,43 +3864,47 @@ func TestTargetSdkVersionManifestFixer(t *testing.T) { }, } for _, testCase := range testCases { - targetSdkVersionTemplate := "" - if testCase.targetSdkVersionInBp != "" { - targetSdkVersionTemplate = fmt.Sprintf(`target_sdk_version: "%s",`, testCase.targetSdkVersionInBp) - } - bp := fmt.Sprintf(` + t.Run(testCase.name, func(t *testing.T) { + t.Parallel() + targetSdkVersionTemplate := "" + if testCase.targetSdkVersionInBp != "" { + targetSdkVersionTemplate = fmt.Sprintf(`target_sdk_version: "%s",`, testCase.targetSdkVersionInBp) + } + bp := fmt.Sprintf(` android_app { name: "foo", sdk_version: "current", %s } `, targetSdkVersionTemplate) - fixture := android.GroupFixturePreparers( - prepareForJavaTest, - android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { - if testCase.platformSdkFinal { - variables.Platform_sdk_final = proptools.BoolPtr(true) - } - // explicitly set platform_sdk_codename to make the test deterministic - variables.Platform_sdk_codename = &platform_sdk_codename - variables.Platform_sdk_version = &platform_sdk_version - variables.Platform_version_active_codenames = []string{platform_sdk_codename} - // create a non-empty list if unbundledBuild==true - if testCase.unbundledBuild { - variables.Unbundled_build_apps = []string{"apex_a", "apex_b"} - } - }), - ) + fixture := android.GroupFixturePreparers( + prepareForJavaTest, + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + if testCase.platformSdkFinal { + variables.Platform_sdk_final = proptools.BoolPtr(true) + } + // explicitly set platform_sdk_codename to make the test deterministic + variables.Platform_sdk_codename = &platform_sdk_codename + variables.Platform_sdk_version = &platform_sdk_version + variables.Platform_version_active_codenames = []string{platform_sdk_codename} + // create a non-empty list if unbundledBuild==true + if testCase.unbundledBuild { + variables.Unbundled_build_apps = []string{"apex_a", "apex_b"} + } + }), + ) - result := fixture.RunTestWithBp(t, bp) - foo := result.ModuleForTests("foo", "android_common") + result := fixture.RunTestWithBp(t, bp) + foo := result.ModuleForTests("foo", "android_common") - manifestFixerArgs := foo.Output("manifest_fixer/AndroidManifest.xml").Args["args"] - android.AssertStringDoesContain(t, testCase.name, manifestFixerArgs, "--targetSdkVersion "+testCase.targetSdkVersionExpected) + manifestFixerArgs := foo.Output("manifest_fixer/AndroidManifest.xml").Args["args"] + android.AssertStringDoesContain(t, testCase.name, manifestFixerArgs, "--targetSdkVersion "+testCase.targetSdkVersionExpected) + }) } } func TestDefaultAppTargetSdkVersionForUpdatableModules(t *testing.T) { + t.Parallel() platform_sdk_codename := "Tiramisu" platform_sdk_version := 33 testCases := []struct { @@ -3896,11 +3960,13 @@ func TestDefaultAppTargetSdkVersionForUpdatableModules(t *testing.T) { }, } for _, testCase := range testCases { - targetSdkVersionTemplate := "" - if testCase.targetSdkVersionInBp != nil { - targetSdkVersionTemplate = fmt.Sprintf(`target_sdk_version: "%s",`, *testCase.targetSdkVersionInBp) - } - bp := fmt.Sprintf(` + t.Run(testCase.name, func(t *testing.T) { + t.Parallel() + targetSdkVersionTemplate := "" + if testCase.targetSdkVersionInBp != nil { + targetSdkVersionTemplate = fmt.Sprintf(`target_sdk_version: "%s",`, *testCase.targetSdkVersionInBp) + } + bp := fmt.Sprintf(` android_app { name: "foo", sdk_version: "current", @@ -3911,30 +3977,32 @@ func TestDefaultAppTargetSdkVersionForUpdatableModules(t *testing.T) { } `, targetSdkVersionTemplate, testCase.updatable, testCase.updatable) // enforce default target sdk version if app is updatable - fixture := android.GroupFixturePreparers( - PrepareForTestWithJavaDefaultModules, - android.PrepareForTestWithAllowMissingDependencies, - android.PrepareForTestWithAndroidMk, - android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { - // explicitly set following platform variables to make the test deterministic - variables.Platform_sdk_final = &testCase.platform_sdk_final - variables.Platform_sdk_version = &platform_sdk_version - variables.Platform_sdk_codename = &platform_sdk_codename - variables.Platform_version_active_codenames = []string{platform_sdk_codename} - variables.Unbundled_build = proptools.BoolPtr(true) - variables.Unbundled_build_apps = []string{"sampleModule"} - }), - ) + fixture := android.GroupFixturePreparers( + PrepareForTestWithJavaDefaultModules, + android.PrepareForTestWithAllowMissingDependencies, + android.PrepareForTestWithAndroidMk, + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + // explicitly set following platform variables to make the test deterministic + variables.Platform_sdk_final = &testCase.platform_sdk_final + variables.Platform_sdk_version = &platform_sdk_version + variables.Platform_sdk_codename = &platform_sdk_codename + variables.Platform_version_active_codenames = []string{platform_sdk_codename} + variables.Unbundled_build = proptools.BoolPtr(true) + variables.Unbundled_build_apps = []string{"sampleModule"} + }), + ) - result := fixture.RunTestWithBp(t, bp) - foo := result.ModuleForTests("foo", "android_common") + result := fixture.RunTestWithBp(t, bp) + foo := result.ModuleForTests("foo", "android_common") - manifestFixerArgs := foo.Output("manifest_fixer/AndroidManifest.xml").Args["args"] - android.AssertStringDoesContain(t, testCase.name, manifestFixerArgs, "--targetSdkVersion "+*testCase.targetSdkVersionExpected) + manifestFixerArgs := foo.Output("manifest_fixer/AndroidManifest.xml").Args["args"] + android.AssertStringDoesContain(t, testCase.name, manifestFixerArgs, "--targetSdkVersion "+*testCase.targetSdkVersionExpected) + }) } } func TestEnforceDefaultAppTargetSdkVersionFlag(t *testing.T) { + t.Parallel() platform_sdk_codename := "Tiramisu" platform_sdk_version := 33 testCases := []struct { @@ -3979,8 +4047,10 @@ func TestEnforceDefaultAppTargetSdkVersionFlag(t *testing.T) { }, } for _, testCase := range testCases { - errExpected := testCase.expectedError != "" - bp := fmt.Sprintf(` + t.Run(testCase.name, func(t *testing.T) { + t.Parallel() + errExpected := testCase.expectedError != "" + bp := fmt.Sprintf(` android_app { name: "foo", enforce_default_target_sdk_version: %t, @@ -3991,35 +4061,37 @@ func TestEnforceDefaultAppTargetSdkVersionFlag(t *testing.T) { } `, testCase.enforceDefaultTargetSdkVersion, testCase.targetSdkVersionInBp, testCase.updatable) - fixture := android.GroupFixturePreparers( - PrepareForTestWithJavaDefaultModules, - android.PrepareForTestWithAllowMissingDependencies, - android.PrepareForTestWithAndroidMk, - android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { - // explicitly set following platform variables to make the test deterministic - variables.Platform_sdk_final = &testCase.platform_sdk_final - variables.Platform_sdk_version = &platform_sdk_version - variables.Platform_sdk_codename = &platform_sdk_codename - variables.Unbundled_build = proptools.BoolPtr(true) - variables.Unbundled_build_apps = []string{"sampleModule"} - }), - ) + fixture := android.GroupFixturePreparers( + PrepareForTestWithJavaDefaultModules, + android.PrepareForTestWithAllowMissingDependencies, + android.PrepareForTestWithAndroidMk, + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + // explicitly set following platform variables to make the test deterministic + variables.Platform_sdk_final = &testCase.platform_sdk_final + variables.Platform_sdk_version = &platform_sdk_version + variables.Platform_sdk_codename = &platform_sdk_codename + variables.Unbundled_build = proptools.BoolPtr(true) + variables.Unbundled_build_apps = []string{"sampleModule"} + }), + ) - errorHandler := android.FixtureExpectsNoErrors - if errExpected { - errorHandler = android.FixtureExpectsAtLeastOneErrorMatchingPattern(testCase.expectedError) - } - result := fixture.ExtendWithErrorHandler(errorHandler).RunTestWithBp(t, bp) + errorHandler := android.FixtureExpectsNoErrors + if errExpected { + errorHandler = android.FixtureExpectsAtLeastOneErrorMatchingPattern(testCase.expectedError) + } + result := fixture.ExtendWithErrorHandler(errorHandler).RunTestWithBp(t, bp) - if !errExpected { - foo := result.ModuleForTests("foo", "android_common") - manifestFixerArgs := foo.Output("manifest_fixer/AndroidManifest.xml").Args["args"] - android.AssertStringDoesContain(t, testCase.name, manifestFixerArgs, "--targetSdkVersion "+testCase.targetSdkVersionExpected) - } + if !errExpected { + foo := result.ModuleForTests("foo", "android_common") + manifestFixerArgs := foo.Output("manifest_fixer/AndroidManifest.xml").Args["args"] + android.AssertStringDoesContain(t, testCase.name, manifestFixerArgs, "--targetSdkVersion "+testCase.targetSdkVersionExpected) + } + }) } } func TestEnforceDefaultAppTargetSdkVersionFlagForTests(t *testing.T) { + t.Parallel() platform_sdk_codename := "Tiramisu" platform_sdk_version := 33 testCases := []struct { @@ -4052,8 +4124,10 @@ func TestEnforceDefaultAppTargetSdkVersionFlagForTests(t *testing.T) { }, } for _, testCase := range testCases { - errExpected := testCase.expectedError != "" - bp := fmt.Sprintf(` + t.Run(testCase.name, func(t *testing.T) { + t.Parallel() + errExpected := testCase.expectedError != "" + bp := fmt.Sprintf(` android_test { name: "foo", enforce_default_target_sdk_version: %t, @@ -4062,35 +4136,37 @@ func TestEnforceDefaultAppTargetSdkVersionFlagForTests(t *testing.T) { } `, testCase.enforceDefaultTargetSdkVersion, testCase.targetSdkVersionInBp) - fixture := android.GroupFixturePreparers( - PrepareForTestWithJavaDefaultModules, - android.PrepareForTestWithAllowMissingDependencies, - android.PrepareForTestWithAndroidMk, - android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { - // explicitly set following platform variables to make the test deterministic - variables.Platform_sdk_final = &testCase.platform_sdk_final - variables.Platform_sdk_version = &platform_sdk_version - variables.Platform_sdk_codename = &platform_sdk_codename - variables.Unbundled_build = proptools.BoolPtr(true) - variables.Unbundled_build_apps = []string{"sampleModule"} - }), - ) + fixture := android.GroupFixturePreparers( + PrepareForTestWithJavaDefaultModules, + android.PrepareForTestWithAllowMissingDependencies, + android.PrepareForTestWithAndroidMk, + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + // explicitly set following platform variables to make the test deterministic + variables.Platform_sdk_final = &testCase.platform_sdk_final + variables.Platform_sdk_version = &platform_sdk_version + variables.Platform_sdk_codename = &platform_sdk_codename + variables.Unbundled_build = proptools.BoolPtr(true) + variables.Unbundled_build_apps = []string{"sampleModule"} + }), + ) - errorHandler := android.FixtureExpectsNoErrors - if errExpected { - errorHandler = android.FixtureExpectsAtLeastOneErrorMatchingPattern(testCase.expectedError) - } - result := fixture.ExtendWithErrorHandler(errorHandler).RunTestWithBp(t, bp) + errorHandler := android.FixtureExpectsNoErrors + if errExpected { + errorHandler = android.FixtureExpectsAtLeastOneErrorMatchingPattern(testCase.expectedError) + } + result := fixture.ExtendWithErrorHandler(errorHandler).RunTestWithBp(t, bp) - if !errExpected { - foo := result.ModuleForTests("foo", "android_common") - manifestFixerArgs := foo.Output("manifest_fixer/AndroidManifest.xml").Args["args"] - android.AssertStringDoesContain(t, testCase.name, manifestFixerArgs, "--targetSdkVersion "+testCase.targetSdkVersionExpected) - } + if !errExpected { + foo := result.ModuleForTests("foo", "android_common") + manifestFixerArgs := foo.Output("manifest_fixer/AndroidManifest.xml").Args["args"] + android.AssertStringDoesContain(t, testCase.name, manifestFixerArgs, "--targetSdkVersion "+testCase.targetSdkVersionExpected) + } + }) } } func TestAppMissingCertificateAllowMissingDependencies(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.PrepareForTestWithAllowMissingDependencies, @@ -4120,6 +4196,7 @@ func TestAppMissingCertificateAllowMissingDependencies(t *testing.T) { } func TestAppIncludesJniPackages(t *testing.T) { + t.Parallel() ctx := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, ).RunTestWithBp(t, ` @@ -4182,6 +4259,7 @@ func TestAppIncludesJniPackages(t *testing.T) { for _, tc := range testCases { t.Run(tc.name, func(t *testing.T) { + t.Parallel() app := ctx.ModuleForTests(tc.name, "android_common") outputFile := "jnilibs.zip" @@ -4206,6 +4284,7 @@ func TestAppIncludesJniPackages(t *testing.T) { } func TestTargetSdkVersionMtsTests(t *testing.T) { + t.Parallel() platformSdkCodename := "Tiramisu" android_test := "android_test" android_test_helper_app := "android_test_helper_app" @@ -4261,14 +4340,18 @@ func TestTargetSdkVersionMtsTests(t *testing.T) { }), ) for _, testCase := range testCases { - result := fixture.RunTestWithBp(t, fmt.Sprintf(bpTemplate, testCase.moduleType, testCase.targetSdkVersionInBp, testCase.testSuites)) - mytest := result.ModuleForTests("mytest", "android_common") - manifestFixerArgs := mytest.Output("manifest_fixer/AndroidManifest.xml").Args["args"] - android.AssertStringDoesContain(t, testCase.desc, manifestFixerArgs, "--targetSdkVersion "+testCase.targetSdkVersionExpected) + t.Run(testCase.desc, func(t *testing.T) { + t.Parallel() + result := fixture.RunTestWithBp(t, fmt.Sprintf(bpTemplate, testCase.moduleType, testCase.targetSdkVersionInBp, testCase.testSuites)) + mytest := result.ModuleForTests("mytest", "android_common") + manifestFixerArgs := mytest.Output("manifest_fixer/AndroidManifest.xml").Args["args"] + android.AssertStringDoesContain(t, testCase.desc, manifestFixerArgs, "--targetSdkVersion "+testCase.targetSdkVersionExpected) + }) } } func TestPrivappAllowlist(t *testing.T) { + t.Parallel() testJavaError(t, "privileged must be set in order to use privapp_allowlist", ` android_app { name: "foo", @@ -4311,6 +4394,7 @@ func TestPrivappAllowlist(t *testing.T) { } func TestPrivappAllowlistAndroidMk(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.PrepareForTestWithAndroidMk, @@ -4390,6 +4474,7 @@ func TestPrivappAllowlistAndroidMk(t *testing.T) { } func TestAppFlagsPackages(t *testing.T) { + t.Parallel() ctx := android.GroupFixturePreparers( prepareForJavaTest, android.FixtureMergeMockFs( @@ -4454,6 +4539,7 @@ func TestAppFlagsPackages(t *testing.T) { } func TestAppFlagsPackagesPropagation(t *testing.T) { + t.Parallel() ctx := testApp(t, ` aconfig_declarations { name: "foo", @@ -4531,6 +4617,7 @@ func TestAppFlagsPackagesPropagation(t *testing.T) { // Test that dexpreopt is disabled if an optional_uses_libs exists, but does not provide an implementation. func TestNoDexpreoptOptionalUsesLibDoesNotHaveImpl(t *testing.T) { + t.Parallel() bp := ` java_sdk_library_import { name: "sdklib_noimpl", @@ -4660,6 +4747,7 @@ func TestTestConfigTemplate(t *testing.T) { } func TestAppStem(t *testing.T) { + t.Parallel() ctx := testApp(t, ` android_app { name: "foo", @@ -4677,6 +4765,7 @@ func TestAppStem(t *testing.T) { } func TestAppMinSdkVersionOverride(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, ).RunTestWithBp(t, ` @@ -4710,6 +4799,7 @@ func TestAppMinSdkVersionOverride(t *testing.T) { } func TestNotApplyDefaultUpdatableModuleVersion(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, ).RunTestWithBp(t, ` @@ -4729,6 +4819,7 @@ func TestNotApplyDefaultUpdatableModuleVersion(t *testing.T) { } func TestNotApplyOverrideApexManifestDefaultVersion(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.FixtureMergeEnv(map[string]string{ @@ -4751,6 +4842,7 @@ func TestNotApplyOverrideApexManifestDefaultVersion(t *testing.T) { } func TestResourcesWithFlagDirectories(t *testing.T) { + t.Parallel() result := android.GroupFixturePreparers( PrepareForTestWithJavaDefaultModules, android.FixtureMergeMockFs(android.MockFS{ @@ -4855,17 +4947,20 @@ override_android_app { }, } for _, tc := range testCases { - result := android.GroupFixturePreparers( - PrepareForTestWithJavaDefaultModules, - android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { - variables.EnforceRROTargets = []string{"*"} - }), - android.OptionalFixturePreparer(tc.preparer), - ).RunTestWithBp(t, bp) - vendorOverlayApk := result.ModuleForTests("foo__test_product__auto_generated_rro_vendor", "android_arm64_armv8-a").MaybeOutput("foo__test_product__auto_generated_rro_vendor.apk") - android.AssertBoolEquals(t, tc.desc, tc.overlayApkExpected, vendorOverlayApk.Rule != nil) - overrideVendorOverlayApk := result.ModuleForTests("override_foo__test_product__auto_generated_rro_vendor", "android_arm64_armv8-a").MaybeOutput("override_foo__test_product__auto_generated_rro_vendor.apk") - android.AssertBoolEquals(t, tc.desc, tc.overlayApkExpected, overrideVendorOverlayApk.Rule != nil) + t.Run(tc.desc, func(t *testing.T) { + t.Parallel() + result := android.GroupFixturePreparers( + PrepareForTestWithJavaDefaultModules, + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + variables.EnforceRROTargets = []string{"*"} + }), + android.OptionalFixturePreparer(tc.preparer), + ).RunTestWithBp(t, bp) + vendorOverlayApk := result.ModuleForTests("foo__test_product__auto_generated_rro_vendor", "android_arm64_armv8-a").MaybeOutput("foo__test_product__auto_generated_rro_vendor.apk") + android.AssertBoolEquals(t, tc.desc, tc.overlayApkExpected, vendorOverlayApk.Rule != nil) + overrideVendorOverlayApk := result.ModuleForTests("override_foo__test_product__auto_generated_rro_vendor", "android_arm64_armv8-a").MaybeOutput("override_foo__test_product__auto_generated_rro_vendor.apk") + android.AssertBoolEquals(t, tc.desc, tc.overlayApkExpected, overrideVendorOverlayApk.Rule != nil) + }) } } @@ -4922,22 +5017,25 @@ my_custom_override_android_app { }, } for _, tc := range testCases { - result := android.GroupFixturePreparers( - PrepareForTestWithJavaDefaultModules, - android.PrepareForTestWithSoongConfigModuleBuildComponents, - android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { - variables.EnforceRROTargets = []string{"*"} - }), - android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { - variables.DeviceResourceOverlays = []string{"device/company/test_product"} - }), - android.MockFS{ - "res/foo.xml": nil, - "device/company/test_product/res/foo.xml": nil, - }.AddToFixture(), - android.OptionalFixturePreparer(tc.preparer), - ).RunTestWithBp(t, bp) - overrideVendorOverlayApk := result.ModuleForTests("override_foo__test_product__auto_generated_rro_vendor", "android_arm64_armv8-a").Module().(*AutogenRuntimeResourceOverlay) - android.AssertBoolEquals(t, tc.desc, tc.overlayApkExpected, overrideVendorOverlayApk.exportPackage != nil) + t.Run(tc.desc, func(t *testing.T) { + t.Parallel() + result := android.GroupFixturePreparers( + PrepareForTestWithJavaDefaultModules, + android.PrepareForTestWithSoongConfigModuleBuildComponents, + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + variables.EnforceRROTargets = []string{"*"} + }), + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + variables.DeviceResourceOverlays = []string{"device/company/test_product"} + }), + android.MockFS{ + "res/foo.xml": nil, + "device/company/test_product/res/foo.xml": nil, + }.AddToFixture(), + android.OptionalFixturePreparer(tc.preparer), + ).RunTestWithBp(t, bp) + overrideVendorOverlayApk := result.ModuleForTests("override_foo__test_product__auto_generated_rro_vendor", "android_arm64_armv8-a").Module().(*AutogenRuntimeResourceOverlay) + android.AssertBoolEquals(t, tc.desc, tc.overlayApkExpected, overrideVendorOverlayApk.exportPackage != nil) + }) } } |