summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Colin Cross <ccross@android.com> 2024-10-11 12:52:56 -0700
committer Colin Cross <ccross@android.com> 2024-10-24 11:33:33 -0700
commita2fdb61a04e444d308cae227f3ce0dfe571807d9 (patch)
tree4a2f0de53023e168f0827c3e055b8ba59e77d99d
parenta14fb6a73e2207c1084a0230fd97f08c14ef4818 (diff)
Make apex tests parallel
Mark all the apex tests and subtests with t.Parallel(), which will allow the test runner to run them in parallel. Reduces the time required to run the apex tests from 70s to 9.7s. Test: go test ./apex Flag: EXEMPT test only Change-Id: I08bd3cb4d8eec1f9520c1118b4525aa79e95288e
-rw-r--r--apex/aconfig_test.go6
-rw-r--r--apex/apex_test.go202
-rw-r--r--apex/bootclasspath_fragment_test.go19
-rw-r--r--apex/classpath_element_test.go7
-rw-r--r--apex/container_test.go3
-rw-r--r--apex/dexpreopt_bootjars_test.go5
-rw-r--r--apex/platform_bootclasspath_test.go10
-rw-r--r--apex/systemserver_classpath_fragment_test.go6
8 files changed, 258 insertions, 0 deletions
diff --git a/apex/aconfig_test.go b/apex/aconfig_test.go
index bb811f58a..2ab61b35e 100644
--- a/apex/aconfig_test.go
+++ b/apex/aconfig_test.go
@@ -33,6 +33,7 @@ var withAconfigValidationError = android.FixtureModifyProductVariables(func(vari
})
func TestValidationAcrossContainersExportedPass(t *testing.T) {
+ t.Parallel()
testCases := []struct {
name string
bp string
@@ -294,6 +295,7 @@ func TestValidationAcrossContainersExportedPass(t *testing.T) {
}
for _, test := range testCases {
t.Run(test.name, func(t *testing.T) {
+ t.Parallel()
android.GroupFixturePreparers(
java.PrepareForTestWithJavaDefaultModules,
cc.PrepareForTestWithCcBuildComponents,
@@ -309,6 +311,7 @@ func TestValidationAcrossContainersExportedPass(t *testing.T) {
}
func TestValidationAcrossContainersNotExportedFail(t *testing.T) {
+ t.Parallel()
testCases := []struct {
name string
expectedError string
@@ -709,6 +712,7 @@ func TestValidationAcrossContainersNotExportedFail(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)
@@ -730,6 +734,7 @@ func TestValidationAcrossContainersNotExportedFail(t *testing.T) {
}
func TestValidationNotPropagateAcrossShared(t *testing.T) {
+ t.Parallel()
testCases := []struct {
name string
bp string
@@ -786,6 +791,7 @@ func TestValidationNotPropagateAcrossShared(t *testing.T) {
}
for _, test := range testCases {
t.Run(test.name, func(t *testing.T) {
+ t.Parallel()
android.GroupFixturePreparers(
java.PrepareForTestWithJavaDefaultModules,
cc.PrepareForTestWithCcBuildComponents,
diff --git a/apex/apex_test.go b/apex/apex_test.go
index 68978b2e8..6f0357a09 100644
--- a/apex/apex_test.go
+++ b/apex/apex_test.go
@@ -308,6 +308,7 @@ func ensureListNotEmpty(t *testing.T, result []string) {
// Minimal test
func TestBasicApex(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_defaults {
name: "myapex-defaults",
@@ -605,6 +606,7 @@ func TestBasicApex(t *testing.T) {
}
func TestDefaults(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_defaults {
name: "myapex-defaults",
@@ -687,6 +689,7 @@ func TestDefaults(t *testing.T) {
}
func TestApexManifest(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -709,6 +712,7 @@ func TestApexManifest(t *testing.T) {
}
func TestApexManifestMinSdkVersion(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_defaults {
name: "my_defaults",
@@ -782,6 +786,7 @@ func TestApexManifestMinSdkVersion(t *testing.T) {
}
func TestApexWithDessertSha(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_defaults {
name: "my_defaults",
@@ -855,6 +860,7 @@ func TestApexWithDessertSha(t *testing.T) {
}
func TestFileContexts(t *testing.T) {
+ t.Parallel()
for _, vendor := range []bool{true, false} {
prop := ""
if vendor {
@@ -889,6 +895,7 @@ func TestFileContexts(t *testing.T) {
}
func TestApexWithStubs(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -1060,6 +1067,7 @@ func TestApexWithStubs(t *testing.T) {
}
func TestApexShouldNotEmbedStubVariant(t *testing.T) {
+ t.Parallel()
testApexError(t, `module "myapex" .*: native_shared_libs: "libbar" is a stub`, `
apex {
name: "myapex",
@@ -1086,6 +1094,7 @@ func TestApexShouldNotEmbedStubVariant(t *testing.T) {
}
func TestApexCanUsePrivateApis(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -1336,6 +1345,7 @@ func TestApex_PlatformUsesLatestStubFromApex(t *testing.T) {
}
func TestApexWithExplicitStubsDependency(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex2",
@@ -1422,6 +1432,7 @@ func TestApexWithExplicitStubsDependency(t *testing.T) {
}
func TestApexWithRuntimeLibsDependency(t *testing.T) {
+ t.Parallel()
/*
myapex
|
@@ -1550,6 +1561,7 @@ var prepareForTestOfRuntimeApexWithHwasan = android.GroupFixturePreparers(
)
func TestRuntimeApexShouldInstallHwasanIfLibcDependsOnIt(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(prepareForTestOfRuntimeApexWithHwasan).RunTestWithBp(t, `
cc_library {
name: "libc",
@@ -1603,6 +1615,7 @@ func TestRuntimeApexShouldInstallHwasanIfLibcDependsOnIt(t *testing.T) {
}
func TestRuntimeApexShouldInstallHwasanIfHwaddressSanitized(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestOfRuntimeApexWithHwasan,
android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
@@ -1658,6 +1671,7 @@ func TestRuntimeApexShouldInstallHwasanIfHwaddressSanitized(t *testing.T) {
}
func TestApexDependsOnLLNDKTransitively(t *testing.T) {
+ t.Parallel()
testcases := []struct {
name string
minSdkVersion string
@@ -1682,6 +1696,7 @@ func TestApexDependsOnLLNDKTransitively(t *testing.T) {
}
for _, tc := range testcases {
t.Run(tc.name, func(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -1749,6 +1764,7 @@ func TestApexDependsOnLLNDKTransitively(t *testing.T) {
}
func TestApexWithSystemLibsStubs(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -1841,6 +1857,7 @@ func TestApexWithSystemLibsStubs(t *testing.T) {
}
func TestApexMinSdkVersion_NativeModulesShouldBeBuiltAgainstStubs(t *testing.T) {
+ t.Parallel()
// there are three links between liba --> libz.
// 1) myapex -> libx -> liba -> libz : this should be #30 link
// 2) otherapex -> liby -> liba -> libz : this should be #30 link
@@ -1929,6 +1946,7 @@ func TestApexMinSdkVersion_NativeModulesShouldBeBuiltAgainstStubs(t *testing.T)
}
func TestApexMinSdkVersion_SupportsCodeNames(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -1981,6 +1999,7 @@ func TestApexMinSdkVersion_SupportsCodeNames(t *testing.T) {
}
func TestApexMinSdkVersion_SupportsCodeNames_JavaLibs(t *testing.T) {
+ t.Parallel()
testApex(t, `
apex {
name: "myapex",
@@ -2011,6 +2030,7 @@ func TestApexMinSdkVersion_SupportsCodeNames_JavaLibs(t *testing.T) {
}
func TestApexMinSdkVersion_DefaultsToLatest(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -2058,6 +2078,7 @@ func TestApexMinSdkVersion_DefaultsToLatest(t *testing.T) {
}
func TestApexMinSdkVersion_InVendorApex(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -2111,6 +2132,7 @@ func TestApexMinSdkVersion_InVendorApex(t *testing.T) {
}
func TestTrackAllowedDeps(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -2178,6 +2200,7 @@ func TestTrackAllowedDeps(t *testing.T) {
}
func TestTrackCustomAllowedDepsInvalidDefaultTxt(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -2250,6 +2273,7 @@ func TestTrackCustomAllowedDepsInvalidDefaultTxt(t *testing.T) {
}
func TestTrackCustomAllowedDepsWithDefaultTxt(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -2323,6 +2347,7 @@ func TestTrackCustomAllowedDepsWithDefaultTxt(t *testing.T) {
}
func TestTrackAllowedDeps_SkipWithoutAllowedDepsTxt(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -2344,6 +2369,7 @@ func TestTrackAllowedDeps_SkipWithoutAllowedDepsTxt(t *testing.T) {
}
func TestPlatformUsesLatestStubsFromApexes(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -2399,6 +2425,7 @@ var prepareForTestWithSantitizeHwaddress = android.FixtureModifyProductVariables
)
func TestQApexesUseLatestStubsInBundledBuildsAndHWASAN(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -2438,6 +2465,7 @@ func TestQApexesUseLatestStubsInBundledBuildsAndHWASAN(t *testing.T) {
}
func TestQTargetApexUsesStaticUnwinder(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -2468,6 +2496,7 @@ func TestQTargetApexUsesStaticUnwinder(t *testing.T) {
}
func TestApexMinSdkVersion_ErrorIfIncompatibleVersion(t *testing.T) {
+ t.Parallel()
testApexError(t, `module "mylib".*: should support min_sdk_version\(29\)`, `
apex {
name: "myapex",
@@ -2573,6 +2602,7 @@ func TestApexMinSdkVersion_ErrorIfIncompatibleVersion(t *testing.T) {
}
func TestApexMinSdkVersion_Okay(t *testing.T) {
+ t.Parallel()
testApex(t, `
apex {
name: "myapex",
@@ -2633,6 +2663,7 @@ func TestApexMinSdkVersion_Okay(t *testing.T) {
}
func TestApexMinSdkVersion_MinApiForArch(t *testing.T) {
+ t.Parallel()
// Tests that an apex dependency with min_sdk_version higher than the
// min_sdk_version of the apex is allowed as long as the dependency's
// min_sdk_version is less than or equal to the api level that the
@@ -2665,6 +2696,7 @@ func TestApexMinSdkVersion_MinApiForArch(t *testing.T) {
}
func TestJavaStableSdkVersion(t *testing.T) {
+ t.Parallel()
testCases := []struct {
name string
expectedError string
@@ -2804,6 +2836,7 @@ func TestJavaStableSdkVersion(t *testing.T) {
continue
}
t.Run(test.name, func(t *testing.T) {
+ t.Parallel()
errorHandler := android.FixtureExpectsNoErrors
if test.expectedError != "" {
errorHandler = android.FixtureExpectsAtLeastOneErrorMatchingPattern(test.expectedError)
@@ -2862,6 +2895,7 @@ func TestApexMinSdkVersion_ErrorIfDepIsNewer(t *testing.T) {
}
func TestApexMinSdkVersion_ErrorIfDepIsNewer_Java(t *testing.T) {
+ t.Parallel()
testApexError(t, `module "bar".*: should support min_sdk_version\(29\) for "myapex"`, `
apex {
name: "myapex",
@@ -2898,6 +2932,7 @@ func TestApexMinSdkVersion_ErrorIfDepIsNewer_Java(t *testing.T) {
}
func TestApexMinSdkVersion_OkayEvenWhenDepIsNewer_IfItSatisfiesApexMinSdkVersion(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -2951,6 +2986,7 @@ func TestApexMinSdkVersion_OkayEvenWhenDepIsNewer_IfItSatisfiesApexMinSdkVersion
}
func TestApexMinSdkVersion_WorksWithSdkCodename(t *testing.T) {
+ t.Parallel()
withSAsActiveCodeNames := android.FixtureModifyProductVariables(
func(variables android.FixtureProductVariables) {
variables.Platform_sdk_codename = proptools.StringPtr("S")
@@ -2983,6 +3019,7 @@ func TestApexMinSdkVersion_WorksWithSdkCodename(t *testing.T) {
}
func TestApexMinSdkVersion_WorksWithActiveCodenames(t *testing.T) {
+ t.Parallel()
withSAsActiveCodeNames := android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) {
variables.Platform_sdk_codename = proptools.StringPtr("S")
variables.Platform_version_active_codenames = []string{"S", "T"}
@@ -3021,6 +3058,7 @@ func TestApexMinSdkVersion_WorksWithActiveCodenames(t *testing.T) {
}
func TestFilesInSubDir(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -3090,6 +3128,7 @@ func TestFilesInSubDir(t *testing.T) {
}
func TestFilesInSubDirWhenNativeBridgeEnabled(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -3148,6 +3187,7 @@ func TestFilesInSubDirWhenNativeBridgeEnabled(t *testing.T) {
}
func TestVendorApex(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForApexTest,
android.FixtureModifyConfig(android.SetKatiEnabledForTests),
@@ -3198,6 +3238,7 @@ func TestVendorApex(t *testing.T) {
}
func TestProductVariant(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -3230,6 +3271,7 @@ func TestProductVariant(t *testing.T) {
}
func TestApex_withPrebuiltFirmware(t *testing.T) {
+ t.Parallel()
testCases := []struct {
name string
additionalProp string
@@ -3239,6 +3281,7 @@ func TestApex_withPrebuiltFirmware(t *testing.T) {
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -3267,6 +3310,7 @@ func TestApex_withPrebuiltFirmware(t *testing.T) {
}
func TestAndroidMk_VendorApexRequired(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -3329,6 +3373,7 @@ func TestAndroidMkWritesCommonProperties(t *testing.T) {
}
func TestStaticLinking(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -3371,6 +3416,7 @@ func TestStaticLinking(t *testing.T) {
}
func TestKeys(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex_keytest",
@@ -3428,7 +3474,9 @@ func TestKeys(t *testing.T) {
}
func TestCertificate(t *testing.T) {
+ t.Parallel()
t.Run("if unspecified, it defaults to DefaultAppCertificate", func(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -3447,6 +3495,7 @@ func TestCertificate(t *testing.T) {
}
})
t.Run("override when unspecified", func(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex_keytest",
@@ -3470,6 +3519,7 @@ func TestCertificate(t *testing.T) {
}
})
t.Run("if specified as :module, it respects the prop", func(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -3493,6 +3543,7 @@ func TestCertificate(t *testing.T) {
}
})
t.Run("override when specifiec as <:module>", func(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex_keytest",
@@ -3517,6 +3568,7 @@ func TestCertificate(t *testing.T) {
}
})
t.Run("if specified as name, finds it from DefaultDevKeyDir", func(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -3536,6 +3588,7 @@ func TestCertificate(t *testing.T) {
}
})
t.Run("override when specified as <name>", func(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex_keytest",
@@ -3562,6 +3615,7 @@ func TestCertificate(t *testing.T) {
}
func TestMacro(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -3655,6 +3709,7 @@ func TestMacro(t *testing.T) {
}
func TestHeaderLibsDependency(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -3858,6 +3913,7 @@ func vndkLibrariesTxtFiles(vers ...string) (result string) {
}
func TestVndkApexVersion(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_vndk {
name: "com.android.vndk.v27",
@@ -3927,6 +3983,7 @@ func TestVndkApexVersion(t *testing.T) {
}
func TestVndkApexNameRule(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_vndk {
name: "com.android.vndk.v29",
@@ -3959,6 +4016,7 @@ func TestVndkApexNameRule(t *testing.T) {
}
func TestVndkApexDoesntSupportNativeBridgeSupported(t *testing.T) {
+ t.Parallel()
testApexError(t, `module "com.android.vndk.v30" .*: native_bridge_supported: .* doesn't support native bridge binary`, `
apex_vndk {
name: "com.android.vndk.v30",
@@ -3989,6 +4047,7 @@ func TestVndkApexDoesntSupportNativeBridgeSupported(t *testing.T) {
}
func TestVndkApexWithBinder32(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_vndk {
name: "com.android.vndk.v27",
@@ -4067,6 +4126,7 @@ func TestVndkApexWithBinder32(t *testing.T) {
}
func TestDependenciesInApexManifest(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex_nodep",
@@ -4200,6 +4260,7 @@ func TestDependenciesInApexManifest(t *testing.T) {
}
func TestOverrideApexManifestDefaultVersion(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -4234,6 +4295,7 @@ func TestOverrideApexManifestDefaultVersion(t *testing.T) {
}
func TestCompileMultilibProp(t *testing.T) {
+ t.Parallel()
testCases := []struct {
compileMultiLibProp string
containedLibs []string
@@ -4304,6 +4366,7 @@ func TestCompileMultilibProp(t *testing.T) {
}
func TestNonTestApex(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -4357,6 +4420,7 @@ func TestNonTestApex(t *testing.T) {
}
func TestTestApex(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_test {
name: "myapex",
@@ -4406,6 +4470,7 @@ func TestTestApex(t *testing.T) {
}
func TestLibzVendorIsntStable(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -4472,6 +4537,7 @@ func TestLibzVendorIsntStable(t *testing.T) {
}
func TestApexWithTarget(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -4563,6 +4629,7 @@ func TestApexWithTarget(t *testing.T) {
}
func TestApexWithArch(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -4638,6 +4705,7 @@ func TestApexWithArch(t *testing.T) {
}
func TestApexWithShBinary(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -4668,6 +4736,7 @@ func TestApexWithShBinary(t *testing.T) {
}
func TestApexInVariousPartition(t *testing.T) {
+ t.Parallel()
testcases := []struct {
propName, partition string
}{
@@ -4680,6 +4749,7 @@ func TestApexInVariousPartition(t *testing.T) {
}
for _, tc := range testcases {
t.Run(tc.propName+":"+tc.partition, func(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -4706,6 +4776,7 @@ func TestApexInVariousPartition(t *testing.T) {
}
func TestFileContexts_FindInDefaultLocationIfNotSet(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -4725,6 +4796,7 @@ func TestFileContexts_FindInDefaultLocationIfNotSet(t *testing.T) {
}
func TestFileContexts_ShouldBeUnderSystemSepolicyForSystemApexes(t *testing.T) {
+ t.Parallel()
testApexError(t, `"myapex" .*: file_contexts: should be under system/sepolicy`, `
apex {
name: "myapex",
@@ -4744,6 +4816,7 @@ func TestFileContexts_ShouldBeUnderSystemSepolicyForSystemApexes(t *testing.T) {
}
func TestFileContexts_ProductSpecificApexes(t *testing.T) {
+ t.Parallel()
testApexError(t, `"myapex" .*: file_contexts: cannot find`, `
apex {
name: "myapex",
@@ -4783,6 +4856,7 @@ func TestFileContexts_ProductSpecificApexes(t *testing.T) {
}
func TestFileContexts_SetViaFileGroup(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -4811,6 +4885,7 @@ func TestFileContexts_SetViaFileGroup(t *testing.T) {
}
func TestApexKeyFromOtherModule(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_key {
name: "myapex.key",
@@ -4844,6 +4919,7 @@ func TestApexKeyFromOtherModule(t *testing.T) {
}
func TestPrebuilt(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
prebuilt_apex {
name: "myapex",
@@ -4878,6 +4954,7 @@ func TestPrebuilt(t *testing.T) {
}
func TestPrebuiltMissingSrc(t *testing.T) {
+ t.Parallel()
testApexError(t, `module "myapex" variant "android_common_myapex".*: prebuilt_apex does not support "arm64_armv8-a"`, `
prebuilt_apex {
name: "myapex",
@@ -4886,6 +4963,7 @@ func TestPrebuiltMissingSrc(t *testing.T) {
}
func TestPrebuiltFilenameOverride(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
prebuilt_apex {
name: "myapex",
@@ -4909,6 +4987,7 @@ func TestPrebuiltFilenameOverride(t *testing.T) {
}
func TestApexSetFilenameOverride(t *testing.T) {
+ t.Parallel()
testApex(t, `
apex_set {
name: "com.company.android.myapex",
@@ -4938,6 +5017,7 @@ func TestApexSetFilenameOverride(t *testing.T) {
}
func TestPrebuiltOverrides(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
prebuilt_apex {
name: "myapex.prebuilt",
@@ -4964,6 +5044,7 @@ func TestPrebuiltOverrides(t *testing.T) {
}
func TestPrebuiltApexName(t *testing.T) {
+ t.Parallel()
testApex(t, `
prebuilt_apex {
name: "com.company.android.myapex",
@@ -4982,6 +5063,7 @@ func TestPrebuiltApexName(t *testing.T) {
}
func TestPrebuiltApexNameWithPlatformBootclasspath(t *testing.T) {
+ t.Parallel()
_ = android.GroupFixturePreparers(
java.PrepareForTestWithJavaDefaultModules,
PrepareForTestWithApexBuildComponents,
@@ -5032,6 +5114,7 @@ func (ctx moduleErrorfTestCtx) ModuleErrorf(format string, args ...interface{})
}
func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
+ t.Parallel()
preparer := android.GroupFixturePreparers(
java.FixtureConfigureApexBootJars("myapex:libfoo", "myapex:libbar"),
// Make sure that the frameworks/base/Android.bp file exists as otherwise hidden API encoding
@@ -5077,6 +5160,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
}
t.Run("prebuilt only", func(t *testing.T) {
+ t.Parallel()
bp := `
prebuilt_apex {
name: "myapex",
@@ -5138,6 +5222,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
})
t.Run("apex_set only", func(t *testing.T) {
+ t.Parallel()
bp := `
apex_set {
name: "myapex",
@@ -5228,6 +5313,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
})
t.Run("prebuilt with source library preferred", func(t *testing.T) {
+ t.Parallel()
bp := `
prebuilt_apex {
name: "myapex",
@@ -5301,6 +5387,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
})
t.Run("prebuilt library preferred with source", func(t *testing.T) {
+ t.Parallel()
bp := `
apex {
name: "myapex",
@@ -5403,6 +5490,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
})
t.Run("prebuilt with source apex preferred", func(t *testing.T) {
+ t.Parallel()
bp := `
apex {
name: "myapex",
@@ -5501,6 +5589,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
})
t.Run("prebuilt preferred with source apex disabled", func(t *testing.T) {
+ t.Parallel()
bp := `
apex {
name: "myapex",
@@ -5612,6 +5701,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
})
t.Run("Co-existing unflagged apexes should create a duplicate module error", func(t *testing.T) {
+ t.Parallel()
bp := `
// Source
apex {
@@ -5691,6 +5781,7 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
}
func TestApexWithTests(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_test {
name: "myapex",
@@ -5766,6 +5857,7 @@ func TestApexWithTests(t *testing.T) {
}
func TestErrorsIfDepsAreNotEnabled(t *testing.T) {
+ t.Parallel()
testApexError(t, `module "myapex" .* depends on disabled module "libfoo"`, `
apex {
name: "myapex",
@@ -5841,6 +5933,7 @@ func TestApexWithJavaImport(t *testing.T) {
}
func TestApexWithApps(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -5935,6 +6028,7 @@ func TestApexWithApps(t *testing.T) {
}
func TestApexWithAppImportBuildId(t *testing.T) {
+ t.Parallel()
invalidBuildIds := []string{"../", "a b", "a/b", "a/b/../c", "/a"}
for _, id := range invalidBuildIds {
message := fmt.Sprintf("Unable to use build id %s as filename suffix", id)
@@ -5965,6 +6059,7 @@ func TestApexWithAppImportBuildId(t *testing.T) {
}
func TestApexWithAppImports(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -6014,6 +6109,7 @@ func TestApexWithAppImports(t *testing.T) {
}
func TestApexWithAppImportsPrefer(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -6056,6 +6152,7 @@ func TestApexWithAppImportsPrefer(t *testing.T) {
}
func TestApexWithTestHelperApp(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -6089,6 +6186,7 @@ func TestApexWithTestHelperApp(t *testing.T) {
}
func TestApexPropertiesShouldBeDefaultable(t *testing.T) {
+ t.Parallel()
// libfoo's apex_available comes from cc_defaults
testApexError(t, `requires "libfoo" that doesn't list the APEX under 'apex_available'.`, `
apex {
@@ -6125,6 +6223,7 @@ func TestApexPropertiesShouldBeDefaultable(t *testing.T) {
}
func TestApexAvailable_DirectDep(t *testing.T) {
+ t.Parallel()
// libfoo is not available to myapex, but only to otherapex
testApexError(t, "requires \"libfoo\" that doesn't list the APEX under 'apex_available'.", `
apex {
@@ -6243,6 +6342,7 @@ func TestApexAvailable_DirectDep(t *testing.T) {
}
func TestApexAvailable_IndirectDep(t *testing.T) {
+ t.Parallel()
// libbbaz is an indirect dep
testApexError(t, `requires "libbaz" that doesn't list the APEX under 'apex_available'.\n\nDependency path:
.*via tag apex\.dependencyTag\{"sharedLib"\}
@@ -6373,6 +6473,7 @@ func TestApexAvailable_IndirectDep(t *testing.T) {
}
func TestApexAvailable_IndirectStaticDep(t *testing.T) {
+ t.Parallel()
testApex(t, `
apex {
name: "myapex",
@@ -6439,6 +6540,7 @@ func TestApexAvailable_IndirectStaticDep(t *testing.T) {
}
func TestApexAvailable_InvalidApexName(t *testing.T) {
+ t.Parallel()
testApexError(t, "\"otherapex\" is not a valid module name", `
apex {
name: "myapex",
@@ -6500,7 +6602,9 @@ func TestApexAvailable_InvalidApexName(t *testing.T) {
}
func TestApexAvailable_ApexAvailableNameWithVersionCodeError(t *testing.T) {
+ t.Parallel()
t.Run("negative variant_version produces error", func(t *testing.T) {
+ t.Parallel()
testApexError(t, "expected an integer between 0-9; got -1", `
apex {
name: "myapex",
@@ -6518,6 +6622,7 @@ func TestApexAvailable_ApexAvailableNameWithVersionCodeError(t *testing.T) {
})
t.Run("variant_version greater than 9 produces error", func(t *testing.T) {
+ t.Parallel()
testApexError(t, "expected an integer between 0-9; got 10", `
apex {
name: "myapex",
@@ -6536,6 +6641,7 @@ func TestApexAvailable_ApexAvailableNameWithVersionCodeError(t *testing.T) {
}
func TestApexAvailable_ApexAvailableNameWithVersionCode(t *testing.T) {
+ t.Parallel()
context := android.GroupFixturePreparers(
android.PrepareForIntegrationTestWithAndroid,
PrepareForTestWithApexBuildComponents,
@@ -6593,7 +6699,9 @@ func TestApexAvailable_ApexAvailableNameWithVersionCode(t *testing.T) {
}
func TestApexAvailable_ApexAvailableName(t *testing.T) {
+ t.Parallel()
t.Run("using name of apex that sets apex_available_name is not allowed", func(t *testing.T) {
+ t.Parallel()
testApexError(t, "Consider adding \"myapex\" to 'apex_available' property of \"AppFoo\"", `
apex {
name: "myapex_sminus",
@@ -6627,6 +6735,7 @@ func TestApexAvailable_ApexAvailableName(t *testing.T) {
})
t.Run("apex_available_name allows module to be used in two different apexes", func(t *testing.T) {
+ t.Parallel()
testApex(t, `
apex {
name: "myapex_sminus",
@@ -6660,6 +6769,7 @@ func TestApexAvailable_ApexAvailableName(t *testing.T) {
})
t.Run("override_apexes work with apex_available_name", func(t *testing.T) {
+ t.Parallel()
testApex(t, `
override_apex {
name: "myoverrideapex_sminus",
@@ -6713,6 +6823,7 @@ func TestApexAvailable_ApexAvailableName(t *testing.T) {
}
func TestApexAvailable_ApexAvailableNameWithOverrides(t *testing.T) {
+ t.Parallel()
context := android.GroupFixturePreparers(
android.PrepareForIntegrationTestWithAndroid,
PrepareForTestWithApexBuildComponents,
@@ -6770,6 +6881,7 @@ func TestApexAvailable_ApexAvailableNameWithOverrides(t *testing.T) {
}
func TestApexAvailable_CheckForPlatform(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -6833,6 +6945,7 @@ func TestApexAvailable_CheckForPlatform(t *testing.T) {
}
func TestApexAvailable_CreatedForApex(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -6868,6 +6981,7 @@ func TestApexAvailable_CreatedForApex(t *testing.T) {
}
func TestApexAvailable_PrefixMatch(t *testing.T) {
+ t.Parallel()
for _, tc := range []struct {
name string
@@ -6905,6 +7019,7 @@ func TestApexAvailable_PrefixMatch(t *testing.T) {
},
} {
t.Run(tc.name, func(t *testing.T) {
+ t.Parallel()
errorHandler := android.FixtureExpectsNoErrors
if tc.expectedError != "" {
errorHandler = android.FixtureExpectsAtLeastOneErrorMatchingPattern(tc.expectedError)
@@ -6961,6 +7076,7 @@ func TestApexAvailable_PrefixMatch(t *testing.T) {
}
func TestOverrideApex(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -7111,6 +7227,7 @@ func TestOverrideApex(t *testing.T) {
}
func TestMinSdkVersionOverride(t *testing.T) {
+ t.Parallel()
// Override from 29 to 31
minSdkOverride31 := "31"
ctx := testApex(t, `
@@ -7170,6 +7287,7 @@ func TestMinSdkVersionOverride(t *testing.T) {
}
func TestMinSdkVersionOverrideToLowerVersionNoOp(t *testing.T) {
+ t.Parallel()
// Attempt to override from 31 to 29, should be a NOOP
minSdkOverride29 := "29"
ctx := testApex(t, `
@@ -7229,6 +7347,7 @@ func TestMinSdkVersionOverrideToLowerVersionNoOp(t *testing.T) {
}
func TestLegacyAndroid10Support(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -7289,6 +7408,7 @@ var filesForSdkLibrary = android.MockFS{
}
func TestJavaSDKLibrary(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -7328,6 +7448,7 @@ func TestJavaSDKLibrary(t *testing.T) {
}
func TestJavaSDKLibraryOverrideApexes(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
override_apex {
name: "mycompanyapex",
@@ -7368,6 +7489,7 @@ func TestJavaSDKLibraryOverrideApexes(t *testing.T) {
}
func TestJavaSDKLibrary_WithinApex(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -7421,6 +7543,7 @@ func TestJavaSDKLibrary_WithinApex(t *testing.T) {
}
func TestJavaSDKLibrary_CrossBoundary(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -7472,6 +7595,7 @@ func TestJavaSDKLibrary_CrossBoundary(t *testing.T) {
}
func TestJavaSDKLibrary_ImportPreferred(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
prebuilt_apis {
name: "sdk",
@@ -7562,6 +7686,7 @@ func TestJavaSDKLibrary_ImportPreferred(t *testing.T) {
}
func TestJavaSDKLibrary_ImportOnly(t *testing.T) {
+ t.Parallel()
testApexError(t, `java_libs: "foo" is not configured to be compiled into dex`, `
apex {
name: "myapex",
@@ -7589,6 +7714,7 @@ func TestJavaSDKLibrary_ImportOnly(t *testing.T) {
}
func TestCompatConfig(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForApexTest,
java.PrepareForTestWithPlatformCompatConfig,
@@ -7635,6 +7761,7 @@ func TestCompatConfig(t *testing.T) {
}
func TestNoDupeApexFiles(t *testing.T) {
+ t.Parallel()
android.GroupFixturePreparers(
android.PrepareForTestWithAndroidBuildComponents,
PrepareForTestWithApexBuildComponents,
@@ -7671,6 +7798,7 @@ func TestNoDupeApexFiles(t *testing.T) {
}
func TestApexUnwantedTransitiveDeps(t *testing.T) {
+ t.Parallel()
bp := `
apex {
name: "myapex",
@@ -7707,6 +7835,7 @@ func TestApexUnwantedTransitiveDeps(t *testing.T) {
}
func TestRejectNonInstallableJavaLibrary(t *testing.T) {
+ t.Parallel()
testApexError(t, `"myjar" is not configured to be compiled into dex`, `
apex {
name: "myapex",
@@ -7733,6 +7862,7 @@ func TestRejectNonInstallableJavaLibrary(t *testing.T) {
}
func TestCarryRequiredModuleNames(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -7772,6 +7902,7 @@ func TestCarryRequiredModuleNames(t *testing.T) {
}
func TestSymlinksFromApexToSystem(t *testing.T) {
+ t.Parallel()
bp := `
apex {
name: "myapex",
@@ -7926,6 +8057,7 @@ func TestSymlinksFromApexToSystem(t *testing.T) {
}
func TestSymlinksFromApexToSystemRequiredModuleNames(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -7978,6 +8110,7 @@ func TestSymlinksFromApexToSystemRequiredModuleNames(t *testing.T) {
}
func TestApexWithJniLibs(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -8067,6 +8200,7 @@ func TestApexWithJniLibs(t *testing.T) {
}
func TestApexMutatorsDontRunIfDisabled(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -8091,6 +8225,7 @@ func TestApexMutatorsDontRunIfDisabled(t *testing.T) {
}
func TestAppBundle(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -8122,6 +8257,7 @@ func TestAppBundle(t *testing.T) {
}
func TestAppSetBundle(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -8189,6 +8325,7 @@ func TestAppSetBundlePrebuilt(t *testing.T) {
}
func TestApexSetApksModuleAssignment(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_set {
name: "myapex",
@@ -8267,6 +8404,7 @@ func testDexpreoptWithApexes(t *testing.T, bp, errmsg string, preparer android.F
}
func TestUpdatable_should_set_min_sdk_version(t *testing.T) {
+ t.Parallel()
testApexError(t, `"myapex" .*: updatable: updatable APEXes should set min_sdk_version`, `
apex {
name: "myapex",
@@ -8283,6 +8421,7 @@ func TestUpdatable_should_set_min_sdk_version(t *testing.T) {
}
func TestUpdatableDefault_should_set_min_sdk_version(t *testing.T) {
+ t.Parallel()
testApexError(t, `"myapex" .*: updatable: updatable APEXes should set min_sdk_version`, `
apex {
name: "myapex",
@@ -8298,6 +8437,7 @@ func TestUpdatableDefault_should_set_min_sdk_version(t *testing.T) {
}
func TestUpdatable_should_not_set_generate_classpaths_proto(t *testing.T) {
+ t.Parallel()
testApexError(t, `"mysystemserverclasspathfragment" .* it must not set generate_classpaths_proto to false`, `
apex {
name: "myapex",
@@ -8342,8 +8482,10 @@ func TestUpdatable_should_not_set_generate_classpaths_proto(t *testing.T) {
}
func TestDexpreoptAccessDexFilesFromPrebuiltApex(t *testing.T) {
+ t.Parallel()
preparer := java.FixtureConfigureApexBootJars("myapex:libfoo")
t.Run("prebuilt no source", func(t *testing.T) {
+ t.Parallel()
fragment := java.ApexVariantReference{
Apex: proptools.StringPtr("myapex"),
Module: proptools.StringPtr("my-bootclasspath-fragment"),
@@ -8429,6 +8571,7 @@ func testBootJarPermittedPackagesRules(t *testing.T, errmsg, bp string, bootJars
}
func TestApexPermittedPackagesRules(t *testing.T) {
+ t.Parallel()
testcases := []struct {
name string
expectedError string
@@ -8548,6 +8691,7 @@ func TestApexPermittedPackagesRules(t *testing.T) {
}
for _, tc := range testcases {
t.Run(tc.name, func(t *testing.T) {
+ t.Parallel()
rules := createBcpPermittedPackagesRules(tc.bcpPermittedPackages)
testBootJarPermittedPackagesRules(t, tc.expectedError, tc.bp, tc.bootJars, rules)
})
@@ -8555,6 +8699,7 @@ func TestApexPermittedPackagesRules(t *testing.T) {
}
func TestTestFor(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -8632,6 +8777,7 @@ func TestTestFor(t *testing.T) {
}
func TestIndirectTestFor(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -8692,6 +8838,7 @@ func TestIndirectTestFor(t *testing.T) {
}
func TestTestForForLibInOtherApex(t *testing.T) {
+ t.Parallel()
// This case is only allowed for known overlapping APEXes, i.e. the ART APEXes.
_ = testApex(t, `
apex {
@@ -8747,6 +8894,7 @@ func intPtr(i int) *int {
}
func TestApexSet(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_set {
name: "myapex",
@@ -8791,6 +8939,7 @@ func TestApexSet(t *testing.T) {
}
func TestApexSet_NativeBridge(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_set {
name: "myapex",
@@ -8815,6 +8964,7 @@ func TestApexSet_NativeBridge(t *testing.T) {
}
func TestNoStaticLinkingToStubsLib(t *testing.T) {
+ t.Parallel()
testApexError(t, `.*required by "mylib" is a native library providing stub.*`, `
apex {
name: "myapex",
@@ -8852,6 +9002,7 @@ func TestNoStaticLinkingToStubsLib(t *testing.T) {
}
func TestApexKeysTxt(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -8873,6 +9024,7 @@ func TestApexKeysTxt(t *testing.T) {
}
func TestApexKeysTxtOverrides(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -8917,6 +9069,7 @@ func TestApexKeysTxtOverrides(t *testing.T) {
}
func TestAllowedFiles(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -8973,6 +9126,7 @@ func TestAllowedFiles(t *testing.T) {
}
func TestNonPreferredPrebuiltDependency(t *testing.T) {
+ t.Parallel()
testApex(t, `
apex {
name: "myapex",
@@ -9009,6 +9163,7 @@ func TestNonPreferredPrebuiltDependency(t *testing.T) {
}
func TestCompressedApex(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -9046,8 +9201,10 @@ func TestCompressedApex(t *testing.T) {
}
func TestApexSet_ShouldRespectCompressedApexFlag(t *testing.T) {
+ t.Parallel()
for _, compressionEnabled := range []bool{true, false} {
t.Run(fmt.Sprintf("compressionEnabled=%v", compressionEnabled), func(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex_set {
name: "com.company.android.myapex",
@@ -9070,6 +9227,7 @@ func TestApexSet_ShouldRespectCompressedApexFlag(t *testing.T) {
}
func TestPreferredPrebuiltSharedLibDep(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -9122,6 +9280,7 @@ func TestPreferredPrebuiltSharedLibDep(t *testing.T) {
}
func TestExcludeDependency(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -9172,6 +9331,7 @@ func TestExcludeDependency(t *testing.T) {
}
func TestPrebuiltStubLibDep(t *testing.T) {
+ t.Parallel()
bpBase := `
apex {
name: "myapex",
@@ -9264,8 +9424,10 @@ func TestPrebuiltStubLibDep(t *testing.T) {
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
+ t.Parallel()
for _, otherApexEnabled := range test.otherApexEnabled {
t.Run("otherapex_enabled_"+otherApexEnabled, func(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, fmt.Sprintf(bpBase, otherApexEnabled)+test.stublibBp)
type modAndMkEntries struct {
@@ -9333,6 +9495,7 @@ func TestPrebuiltStubLibDep(t *testing.T) {
}
func TestApexJavaCoverage(t *testing.T) {
+ t.Parallel()
bp := `
apex {
name: "myapex",
@@ -9411,6 +9574,7 @@ func TestApexJavaCoverage(t *testing.T) {
}
func TestProhibitStaticExecutable(t *testing.T) {
+ t.Parallel()
testApexError(t, `executable mybin is static`, `
apex {
name: "myapex",
@@ -9462,6 +9626,7 @@ func TestProhibitStaticExecutable(t *testing.T) {
}
func TestAndroidMk_DexpreoptBuiltInstalledForApex(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -9495,6 +9660,7 @@ func TestAndroidMk_DexpreoptBuiltInstalledForApex(t *testing.T) {
}
func TestAndroidMk_RequiredModules(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -9534,6 +9700,7 @@ func TestAndroidMk_RequiredModules(t *testing.T) {
}
func TestAndroidMk_RequiredDeps(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -9558,6 +9725,7 @@ func TestAndroidMk_RequiredDeps(t *testing.T) {
}
func TestApexOutputFileProducer(t *testing.T) {
+ t.Parallel()
for _, tc := range []struct {
name string
ref string
@@ -9575,6 +9743,7 @@ func TestApexOutputFileProducer(t *testing.T) {
},
} {
t.Run(tc.name, func(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -9606,6 +9775,7 @@ func TestApexOutputFileProducer(t *testing.T) {
}
func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) {
+ t.Parallel()
preparer := android.GroupFixturePreparers(
PrepareForTestWithApexBuildComponents,
prepareForTestWithMyapex,
@@ -9618,6 +9788,7 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) {
// Test java_sdk_library in bootclasspath_fragment may define higher min_sdk_version than the apex
t.Run("bootclasspath_fragment jar has higher min_sdk_version than apex", func(t *testing.T) {
+ t.Parallel()
preparer.RunTestWithBp(t, `
apex {
name: "myapex",
@@ -9674,6 +9845,7 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) {
// Test java_sdk_library in systemserverclasspath_fragment may define higher min_sdk_version than the apex
t.Run("systemserverclasspath_fragment jar has higher min_sdk_version than apex", func(t *testing.T) {
+ t.Parallel()
preparer.RunTestWithBp(t, `
apex {
name: "myapex",
@@ -9723,6 +9895,7 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) {
})
t.Run("bootclasspath_fragment jar must set min_sdk_version", func(t *testing.T) {
+ t.Parallel()
preparer.
RunTestWithBp(t, `
apex {
@@ -9761,6 +9934,7 @@ func TestSdkLibraryCanHaveHigherMinSdkVersion(t *testing.T) {
})
t.Run("systemserverclasspath_fragment jar must set min_sdk_version", func(t *testing.T) {
+ t.Parallel()
preparer.ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern(`module "mysystemserverclasspathlib".*must set min_sdk_version`)).
RunTestWithBp(t, `
apex {
@@ -9811,6 +9985,7 @@ func ensureDoesNotContainRequiredDeps(t *testing.T, ctx *android.TestContext, mo
}
func TestApexStrictUpdtabilityLint(t *testing.T) {
+ t.Parallel()
bpTemplate := `
apex {
name: "myapex",
@@ -9882,6 +10057,7 @@ func TestApexStrictUpdtabilityLint(t *testing.T) {
for _, testCase := range testCases {
t.Run(testCase.testCaseName, func(t *testing.T) {
+ t.Parallel()
fixtures := []android.FixturePreparer{}
baselineProperty := ""
if testCase.lintFileExists {
@@ -9922,6 +10098,7 @@ func TestApexStrictUpdtabilityLint(t *testing.T) {
// checks transtive deps of an apex coming from bootclasspath_fragment
func TestApexStrictUpdtabilityLintBcpFragmentDeps(t *testing.T) {
+ t.Parallel()
bp := `
apex {
name: "myapex",
@@ -9967,6 +10144,7 @@ func TestApexStrictUpdtabilityLintBcpFragmentDeps(t *testing.T) {
}
func TestApexLintBcpFragmentSdkLibDeps(t *testing.T) {
+ t.Parallel()
bp := `
apex {
name: "myapex",
@@ -10018,6 +10196,7 @@ func TestApexLintBcpFragmentSdkLibDeps(t *testing.T) {
// updatable apexes should propagate updatable=true to its apps
func TestUpdatableApexEnforcesAppUpdatability(t *testing.T) {
+ t.Parallel()
bp := `
apex {
name: "myapex",
@@ -10047,6 +10226,7 @@ func TestUpdatableApexEnforcesAppUpdatability(t *testing.T) {
}
func TestTrimmedApex(t *testing.T) {
+ t.Parallel()
bp := `
apex {
name: "myapex",
@@ -10101,6 +10281,7 @@ func TestTrimmedApex(t *testing.T) {
}
func TestCannedFsConfig(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -10121,6 +10302,7 @@ func TestCannedFsConfig(t *testing.T) {
}
func TestCannedFsConfig_HasCustomConfig(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -10143,6 +10325,7 @@ func TestCannedFsConfig_HasCustomConfig(t *testing.T) {
}
func TestStubLibrariesMultipleApexViolation(t *testing.T) {
+ t.Parallel()
testCases := []struct {
desc string
hasStubs bool
@@ -10217,6 +10400,7 @@ func TestStubLibrariesMultipleApexViolation(t *testing.T) {
}
func TestFileSystemShouldSkipApexLibraries(t *testing.T) {
+ t.Parallel()
context := android.GroupFixturePreparers(
android.PrepareForIntegrationTestWithAndroid,
cc.PrepareForIntegrationTestWithCc,
@@ -10286,6 +10470,7 @@ var apex_default_bp = `
`
func TestAconfigFilesJavaDeps(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, apex_default_bp+`
apex {
name: "myapex",
@@ -10377,6 +10562,7 @@ func TestAconfigFilesJavaDeps(t *testing.T) {
}
func TestAconfigFilesJavaAndCcDeps(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, apex_default_bp+`
apex {
name: "myapex",
@@ -10515,6 +10701,7 @@ func TestAconfigFilesJavaAndCcDeps(t *testing.T) {
}
func TestAconfigFilesRustDeps(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, apex_default_bp+`
apex {
name: "myapex",
@@ -10706,6 +10893,7 @@ func VerifyAconfigRule(t *testing.T, mod *android.TestingModule, desc string, in
}
func TestAconfigFilesOnlyMatchCurrentApex(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, apex_default_bp+`
apex {
name: "myapex",
@@ -10790,6 +10978,7 @@ func TestAconfigFilesOnlyMatchCurrentApex(t *testing.T) {
}
func TestAconfigFilesRemoveDuplicates(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, apex_default_bp+`
apex {
name: "myapex",
@@ -10869,6 +11058,7 @@ func TestAconfigFilesRemoveDuplicates(t *testing.T) {
// Test that the boot jars come from the _selected_ apex prebuilt
// RELEASE_APEX_CONTIRBUTIONS_* build flags will be used to select the correct prebuilt for a specific release config
func TestBootDexJarsMultipleApexPrebuilts(t *testing.T) {
+ t.Parallel()
checkBootDexJarPath := func(t *testing.T, ctx *android.TestContext, stem string, bootDexJarPath string) {
t.Helper()
s := ctx.ModuleForTests("dex_bootjars", "android_common")
@@ -11057,6 +11247,7 @@ func TestBootDexJarsMultipleApexPrebuilts(t *testing.T) {
// Test that product packaging installs the selected mainline module (either source or a specific prebuilt)
// RELEASE_APEX_CONTIRBUTIONS_* build flags will be used to select the correct prebuilt for a specific release config
func TestInstallationRulesForMultipleApexPrebuilts(t *testing.T) {
+ t.Parallel()
// for a mainline module family, check that only the flagged soong module is visible to make
checkHideFromMake := func(t *testing.T, ctx *android.TestContext, visibleModuleName string, hiddenModuleNames []string) {
variation := func(moduleName string) string {
@@ -11202,6 +11393,7 @@ func TestInstallationRulesForMultipleApexPrebuilts(t *testing.T) {
// Test that product packaging installs the selected mainline module in workspaces withtout source mainline module
func TestInstallationRulesForMultipleApexPrebuiltsWithoutSource(t *testing.T) {
+ t.Parallel()
// for a mainline module family, check that only the flagged soong module is visible to make
checkHideFromMake := func(t *testing.T, ctx *android.TestContext, visibleModuleNames []string, hiddenModuleNames []string) {
variation := func(moduleName string) string {
@@ -11309,6 +11501,7 @@ func TestInstallationRulesForMultipleApexPrebuiltsWithoutSource(t *testing.T) {
}
func TestAconfifDeclarationsValidation(t *testing.T) {
+ t.Parallel()
aconfigDeclarationLibraryString := func(moduleNames []string) (ret string) {
for _, moduleName := range moduleNames {
ret += fmt.Sprintf(`
@@ -11425,6 +11618,7 @@ func TestAconfifDeclarationsValidation(t *testing.T) {
}
func TestMultiplePrebuiltsWithSameBase(t *testing.T) {
+ t.Parallel()
ctx := testApex(t, `
apex {
name: "myapex",
@@ -11464,6 +11658,7 @@ func TestMultiplePrebuiltsWithSameBase(t *testing.T) {
}
func TestApexMinSdkVersionOverride(t *testing.T) {
+ t.Parallel()
checkMinSdkVersion := func(t *testing.T, module android.TestingModule, expectedMinSdkVersion string) {
args := module.Rule("apexRule").Args
optFlags := args["opt_flags"]
@@ -11540,6 +11735,7 @@ func TestApexMinSdkVersionOverride(t *testing.T) {
}
func TestOverrideApexWithPrebuiltApexPreferred(t *testing.T) {
+ t.Parallel()
context := android.GroupFixturePreparers(
android.PrepareForIntegrationTestWithAndroid,
PrepareForTestWithApexBuildComponents,
@@ -11575,6 +11771,7 @@ func TestOverrideApexWithPrebuiltApexPreferred(t *testing.T) {
}
func TestUpdatableApexMinSdkVersionCurrent(t *testing.T) {
+ t.Parallel()
testApexError(t, `"myapex" .*: updatable: updatable APEXes should not set min_sdk_version to current. Please use a finalized API level or a recognized in-development codename`, `
apex {
name: "myapex",
@@ -11592,6 +11789,7 @@ func TestUpdatableApexMinSdkVersionCurrent(t *testing.T) {
}
func TestPrebuiltStubNoinstall(t *testing.T) {
+ t.Parallel()
testFunc := func(t *testing.T, expectLibfooOnSystemLib bool, fs android.MockFS) {
result := android.GroupFixturePreparers(
prepareForApexTest,
@@ -11671,6 +11869,7 @@ func TestPrebuiltStubNoinstall(t *testing.T) {
`)
t.Run("prebuilt stub (without source): no install", func(t *testing.T) {
+ t.Parallel()
testFunc(
t,
/*expectLibfooOnSystemLib=*/ false,
@@ -11695,6 +11894,7 @@ func TestPrebuiltStubNoinstall(t *testing.T) {
`)
t.Run("prebuilt stub (with disabled source): no install", func(t *testing.T) {
+ t.Parallel()
testFunc(
t,
/*expectLibfooOnSystemLib=*/ false,
@@ -11710,6 +11910,7 @@ func TestPrebuiltStubNoinstall(t *testing.T) {
}
func TestSdkLibraryTransitiveClassLoaderContext(t *testing.T) {
+ t.Parallel()
// This test case tests that listing the impl lib instead of the top level java_sdk_library
// in libs of android_app and java_library does not lead to class loader context device/host
// path mismatch errors.
@@ -11819,6 +12020,7 @@ func TestSdkLibraryTransitiveClassLoaderContext(t *testing.T) {
// If an apex sets system_ext_specific: true, its systemserverclasspath libraries must set this property as well.
func TestApexSSCPJarMustBeInSamePartitionAsApex(t *testing.T) {
+ t.Parallel()
testApexError(t, `foo is an apex systemserver jar, but its partition does not match the partition of its containing apex`, `
apex {
name: "myapex",
diff --git a/apex/bootclasspath_fragment_test.go b/apex/bootclasspath_fragment_test.go
index e44d3f552..71a8246a7 100644
--- a/apex/bootclasspath_fragment_test.go
+++ b/apex/bootclasspath_fragment_test.go
@@ -47,6 +47,7 @@ var prepareForTestWithArtApex = android.GroupFixturePreparers(
)
func TestBootclasspathFragments_FragmentDependency(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithBootclasspathFragment,
// Configure some libraries in the art bootclasspath_fragment and platform_bootclasspath.
@@ -178,6 +179,7 @@ func TestBootclasspathFragments_FragmentDependency(t *testing.T) {
}
func TestBootclasspathFragmentInArtApex(t *testing.T) {
+ t.Parallel()
commonPreparer := android.GroupFixturePreparers(
prepareForTestWithBootclasspathFragment,
prepareForTestWithArtApex,
@@ -298,6 +300,7 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
}
t.Run("boot image files from source", func(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
commonPreparer,
@@ -329,6 +332,7 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
})
t.Run("boot image files from source of override apex", func(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
commonPreparer,
@@ -349,6 +353,7 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
})
t.Run("generate boot image profile even if dexpreopt is disabled", func(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
commonPreparer,
@@ -369,6 +374,7 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
})
t.Run("boot image disable generate profile", func(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
commonPreparer,
@@ -387,6 +393,7 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
})
t.Run("boot image files with preferred prebuilt", func(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
commonPreparer,
@@ -431,6 +438,7 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
})
t.Run("source with inconsistency between config and contents", func(t *testing.T) {
+ t.Parallel()
android.GroupFixturePreparers(
commonPreparer,
@@ -444,6 +452,7 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
})
t.Run("prebuilt with inconsistency between config and contents", func(t *testing.T) {
+ t.Parallel()
android.GroupFixturePreparers(
commonPreparer,
@@ -457,6 +466,7 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
})
t.Run("preferred prebuilt with inconsistency between config and contents", func(t *testing.T) {
+ t.Parallel()
android.GroupFixturePreparers(
commonPreparer,
@@ -473,6 +483,7 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
})
t.Run("source preferred and prebuilt with inconsistency between config and contents", func(t *testing.T) {
+ t.Parallel()
android.GroupFixturePreparers(
commonPreparer,
@@ -491,6 +502,7 @@ func TestBootclasspathFragmentInArtApex(t *testing.T) {
}
func TestBootclasspathFragmentInPrebuiltArtApex(t *testing.T) {
+ t.Parallel()
preparers := android.GroupFixturePreparers(
prepareForTestWithBootclasspathFragment,
prepareForTestWithArtApex,
@@ -571,6 +583,7 @@ func TestBootclasspathFragmentInPrebuiltArtApex(t *testing.T) {
`
t.Run("disabled alternative APEX", func(t *testing.T) {
+ t.Parallel()
result := preparers.RunTestWithBp(t, fmt.Sprintf(bp, "enabled: false,"))
java.CheckModuleDependencies(t, result.TestContext, "com.android.art", "android_common_com.android.art", []string{
@@ -614,6 +627,7 @@ func checkCopiesToPredefinedLocationForArt(t *testing.T, config android.Config,
}
func TestBootclasspathFragmentContentsNoName(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithBootclasspathFragment,
prepareForTestWithMyapex,
@@ -722,6 +736,7 @@ func getDexJarPath(result *android.TestResult, name string) string {
// TestBootclasspathFragment_HiddenAPIList checks to make sure that the correct parameters are
// passed to the hiddenapi list tool.
func TestBootclasspathFragment_HiddenAPIList(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithBootclasspathFragment,
prepareForTestWithArtApex,
@@ -877,6 +892,7 @@ func TestBootclasspathFragment_HiddenAPIList(t *testing.T) {
// additional_stubs: ["android-non-updatable"] causes the source android-non-updatable modules to be
// added to the hiddenapi list tool.
func TestBootclasspathFragment_AndroidNonUpdatable_FromSource(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithBootclasspathFragment,
prepareForTestWithArtApex,
@@ -1050,6 +1066,7 @@ func TestBootclasspathFragment_AndroidNonUpdatable_FromSource(t *testing.T) {
}
func TestBootclasspathFragment_AndroidNonUpdatable_FromText(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithBootclasspathFragment,
prepareForTestWithArtApex,
@@ -1217,6 +1234,7 @@ func TestBootclasspathFragment_AndroidNonUpdatable_FromText(t *testing.T) {
// setting additional_stubs: ["android-non-updatable"] causes the prebuilt android-non-updatable
// modules to be added to the hiddenapi list tool.
func TestBootclasspathFragment_AndroidNonUpdatable_AlwaysUsePrebuiltSdks(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithBootclasspathFragment,
java.PrepareForTestWithDexpreopt,
@@ -1377,6 +1395,7 @@ func TestBootclasspathFragment_AndroidNonUpdatable_AlwaysUsePrebuiltSdks(t *test
}
func TestBootclasspathFragmentProtoContainsMinSdkVersion(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithBootclasspathFragment,
prepareForTestWithMyapex,
diff --git a/apex/classpath_element_test.go b/apex/classpath_element_test.go
index 9e1ac943e..f8e889983 100644
--- a/apex/classpath_element_test.go
+++ b/apex/classpath_element_test.go
@@ -40,6 +40,7 @@ func (t *testClasspathElementContext) ModuleErrorf(fmt string, args ...interface
var _ java.ClasspathElementContext = (*testClasspathElementContext)(nil)
func TestCreateClasspathElements(t *testing.T) {
+ t.Parallel()
preparer := android.GroupFixturePreparers(
prepareForTestWithPlatformBootclasspath,
prepareForTestWithArtApex,
@@ -240,6 +241,7 @@ func TestCreateClasspathElements(t *testing.T) {
// Verify that CreateClasspathElements works when given valid input.
t.Run("art:baz, art:quuz, my:bar, foo", func(t *testing.T) {
+ t.Parallel()
ctx := newCtx()
elements := java.CreateClasspathElements(ctx, []android.Module{artBaz, artQuuz, myBar, platformFoo}, []android.Module{artFragment, myFragment})
expectedElements := java.ClasspathElements{
@@ -252,6 +254,7 @@ func TestCreateClasspathElements(t *testing.T) {
// Verify that CreateClasspathElements detects when an apex has multiple fragments.
t.Run("multiple fragments for same apex", func(t *testing.T) {
+ t.Parallel()
ctx := newCtx()
elements := java.CreateClasspathElements(ctx, []android.Module{}, []android.Module{artFragment, artFragment})
android.FailIfNoMatchingErrors(t, "apex com.android.art has multiple fragments, art-bootclasspath-fragment{.*} and art-bootclasspath-fragment{.*}", ctx.errs)
@@ -261,6 +264,7 @@ func TestCreateClasspathElements(t *testing.T) {
// Verify that CreateClasspathElements detects when a library is in multiple fragments.
t.Run("library from multiple fragments", func(t *testing.T) {
+ t.Parallel()
ctx := newCtx()
elements := java.CreateClasspathElements(ctx, []android.Module{other}, []android.Module{artFragment, myFragment})
android.FailIfNoMatchingErrors(t, "library othersdklibrary{.*} is in two separate fragments, art-bootclasspath-fragment{.*} and mybootclasspath-fragment{.*}", ctx.errs)
@@ -271,6 +275,7 @@ func TestCreateClasspathElements(t *testing.T) {
// Verify that CreateClasspathElements detects when a fragment's contents are not contiguous and
// are separated by a library from another fragment.
t.Run("discontiguous separated by fragment", func(t *testing.T) {
+ t.Parallel()
ctx := newCtx()
elements := java.CreateClasspathElements(ctx, []android.Module{artBaz, myBar, artQuuz, platformFoo}, []android.Module{artFragment, myFragment})
expectedElements := java.ClasspathElements{
@@ -285,6 +290,7 @@ func TestCreateClasspathElements(t *testing.T) {
// Verify that CreateClasspathElements detects when a fragment's contents are not contiguous and
// are separated by a standalone library.
t.Run("discontiguous separated by library", func(t *testing.T) {
+ t.Parallel()
ctx := newCtx()
elements := java.CreateClasspathElements(ctx, []android.Module{artBaz, platformFoo, artQuuz, myBar}, []android.Module{artFragment, myFragment})
expectedElements := java.ClasspathElements{
@@ -300,6 +306,7 @@ func TestCreateClasspathElements(t *testing.T) {
// indicates it is from an apex the supplied fragments list does not contain a fragment for that
// apex.
t.Run("no fragment for apex", func(t *testing.T) {
+ t.Parallel()
ctx := newCtx()
elements := java.CreateClasspathElements(ctx, []android.Module{artBaz, otherApexLibrary}, []android.Module{artFragment})
expectedElements := java.ClasspathElements{
diff --git a/apex/container_test.go b/apex/container_test.go
index d28b1a649..d1dfb9cab 100644
--- a/apex/container_test.go
+++ b/apex/container_test.go
@@ -27,6 +27,7 @@ var checkContainerMatch = func(t *testing.T, name string, container string, expe
}
func TestApexDepsContainers(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForApexTest,
java.PrepareForTestWithJavaSdkLibraryFiles,
@@ -163,6 +164,7 @@ func TestApexDepsContainers(t *testing.T) {
}
func TestNonUpdatableApexDepsContainers(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForApexTest,
java.PrepareForTestWithJavaSdkLibraryFiles,
@@ -277,6 +279,7 @@ func TestNonUpdatableApexDepsContainers(t *testing.T) {
}
func TestUpdatableAndNonUpdatableApexesIdenticalMinSdkVersion(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForApexTest,
java.PrepareForTestWithJavaSdkLibraryFiles,
diff --git a/apex/dexpreopt_bootjars_test.go b/apex/dexpreopt_bootjars_test.go
index 4feade8ca..b51bb36cf 100644
--- a/apex/dexpreopt_bootjars_test.go
+++ b/apex/dexpreopt_bootjars_test.go
@@ -168,6 +168,7 @@ func testDexpreoptBoot(t *testing.T, ruleFile string, expectedInputs, expectedOu
}
func TestDexpreoptBootJarsWithSourceArtApex(t *testing.T) {
+ t.Parallel()
ruleFile := "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art"
expectedInputs := []string{
@@ -206,6 +207,7 @@ func TestDexpreoptBootJarsWithSourceArtApex(t *testing.T) {
// The only difference is that the ART profile should be deapexed from the prebuilt APEX. Other
// inputs and outputs should be the same as above.
func TestDexpreoptBootJarsWithPrebuiltArtApex(t *testing.T) {
+ t.Parallel()
ruleFile := "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art"
expectedInputs := []string{
@@ -243,6 +245,7 @@ func TestDexpreoptBootJarsWithPrebuiltArtApex(t *testing.T) {
// Changes to the boot.zip structure may break the ART APK scanner.
func TestDexpreoptBootZip(t *testing.T) {
+ t.Parallel()
ruleFile := "boot.zip"
ctx := android.PathContextForTesting(android.TestArchConfig("", nil, "", nil))
@@ -271,6 +274,7 @@ func TestDexpreoptBootZip(t *testing.T) {
// Multiple ART apexes might exist in the tree.
// The profile should correspond to the apex selected using release build flags
func TestDexpreoptProfileWithMultiplePrebuiltArtApexes(t *testing.T) {
+ t.Parallel()
ruleFile := "out/soong/dexpreopt_arm64/dex_bootjars/android/system/framework/arm64/boot.art"
bp := `
// Platform.
@@ -425,6 +429,7 @@ func TestDexpreoptProfileWithMultiplePrebuiltArtApexes(t *testing.T) {
// Check that dexpreopt works with Google mainline prebuilts even in workspaces where source is missing
func TestDexpreoptWithMainlinePrebuiltNoSource(t *testing.T) {
+ t.Parallel()
bp := `
// Platform.
diff --git a/apex/platform_bootclasspath_test.go b/apex/platform_bootclasspath_test.go
index f4da31ed2..9f9b0b4d8 100644
--- a/apex/platform_bootclasspath_test.go
+++ b/apex/platform_bootclasspath_test.go
@@ -36,6 +36,7 @@ var prepareForTestWithPlatformBootclasspath = android.GroupFixturePreparers(
)
func TestPlatformBootclasspath_Fragments(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithPlatformBootclasspath,
prepareForTestWithMyapex,
@@ -178,6 +179,7 @@ func TestPlatformBootclasspath_Fragments(t *testing.T) {
//
// TODO: Remove once all prebuilts use the filtered_... properties.
func TestPlatformBootclasspath_LegacyPrebuiltFragment(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithPlatformBootclasspath,
java.FixtureConfigureApexBootJars("myapex:foo"),
@@ -243,6 +245,7 @@ func TestPlatformBootclasspath_LegacyPrebuiltFragment(t *testing.T) {
}
func TestPlatformBootclasspathDependencies(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithPlatformBootclasspath,
prepareForTestWithArtApex,
@@ -418,6 +421,7 @@ func TestPlatformBootclasspathDependencies(t *testing.T) {
// TestPlatformBootclasspath_AlwaysUsePrebuiltSdks verifies that the build does not fail when
// AlwaysUsePrebuiltSdk() returns true.
func TestPlatformBootclasspath_AlwaysUsePrebuiltSdks(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithPlatformBootclasspath,
prepareForTestWithMyapex,
@@ -594,6 +598,7 @@ func CheckModuleDependencies(t *testing.T, ctx *android.TestContext, name, varia
// platform_bootclasspath's classpaths.proto config, if the apex does not generate its own config
// by setting generate_classpaths_proto property to false.
func TestPlatformBootclasspath_IncludesRemainingApexJars(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithPlatformBootclasspath,
prepareForTestWithMyapex,
@@ -653,6 +658,7 @@ func TestPlatformBootclasspath_IncludesRemainingApexJars(t *testing.T) {
}
func TestBootJarNotInApex(t *testing.T) {
+ t.Parallel()
android.GroupFixturePreparers(
prepareForTestWithPlatformBootclasspath,
PrepareForTestWithApexBuildComponents,
@@ -699,6 +705,7 @@ func TestBootJarNotInApex(t *testing.T) {
}
func TestBootFragmentNotInApex(t *testing.T) {
+ t.Parallel()
android.GroupFixturePreparers(
prepareForTestWithPlatformBootclasspath,
PrepareForTestWithApexBuildComponents,
@@ -742,6 +749,7 @@ func TestBootFragmentNotInApex(t *testing.T) {
}
func TestNonBootJarInFragment(t *testing.T) {
+ t.Parallel()
android.GroupFixturePreparers(
prepareForTestWithPlatformBootclasspath,
PrepareForTestWithApexBuildComponents,
@@ -800,6 +808,7 @@ func TestNonBootJarInFragment(t *testing.T) {
// Skip bcp_fragment content validation of source apexes if prebuilts are active.
func TestNonBootJarInPrebuilts(t *testing.T) {
+ t.Parallel()
testCases := []struct {
description string
selectedApexContributions string
@@ -922,6 +931,7 @@ apex_contributions {
// Source and prebuilt apex provide different set of boot jars
func TestNonBootJarMissingInPrebuiltFragment(t *testing.T) {
+ t.Parallel()
bp := `
apex {
name: "myapex",
diff --git a/apex/systemserver_classpath_fragment_test.go b/apex/systemserver_classpath_fragment_test.go
index acb364973..7dbac5fde 100644
--- a/apex/systemserver_classpath_fragment_test.go
+++ b/apex/systemserver_classpath_fragment_test.go
@@ -29,6 +29,7 @@ var prepareForTestWithSystemserverclasspathFragment = android.GroupFixturePrepar
)
func TestSystemserverclasspathFragmentContents(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithSystemserverclasspathFragment,
prepareForTestWithMyapex,
@@ -118,6 +119,7 @@ func TestSystemserverclasspathFragmentContents(t *testing.T) {
}
func TestSystemserverclasspathFragmentNoGeneratedProto(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithSystemserverclasspathFragment,
prepareForTestWithMyapex,
@@ -171,6 +173,7 @@ func TestSystemserverclasspathFragmentNoGeneratedProto(t *testing.T) {
}
func TestSystemServerClasspathFragmentWithContentNotInMake(t *testing.T) {
+ t.Parallel()
android.GroupFixturePreparers(
prepareForTestWithSystemserverclasspathFragment,
prepareForTestWithMyapex,
@@ -222,6 +225,7 @@ func TestSystemServerClasspathFragmentWithContentNotInMake(t *testing.T) {
}
func TestPrebuiltSystemserverclasspathFragmentContents(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithSystemserverclasspathFragment,
prepareForTestWithMyapex,
@@ -297,6 +301,7 @@ func TestPrebuiltSystemserverclasspathFragmentContents(t *testing.T) {
}
func TestSystemserverclasspathFragmentStandaloneContents(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithSystemserverclasspathFragment,
prepareForTestWithMyapex,
@@ -380,6 +385,7 @@ func TestSystemserverclasspathFragmentStandaloneContents(t *testing.T) {
}
func TestPrebuiltStandaloneSystemserverclasspathFragmentContents(t *testing.T) {
+ t.Parallel()
result := android.GroupFixturePreparers(
prepareForTestWithSystemserverclasspathFragment,
prepareForTestWithMyapex,