From 323dc60712491c71ccdc5363c42df61f0a192487 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Fri, 18 Sep 2020 14:25:31 -0700 Subject: [PATCH] Make lots of tests run in parallel Putting t.Parallel() in each test makes them run in parallel. Additional t.Parallel() could be added to each subtest, although that requires making a local copy of the loop variable for table driven tests. Test: m checkbuild Change-Id: I5d9869ead441093f4d7c5757f2447385333a95a4 --- android/androidmk_test.go | 2 + android/apex_test.go | 1 + android/arch_test.go | 3 + android/config_test.go | 3 + android/csuite_config_test.go | 1 + android/defaults_test.go | 2 + android/depset_test.go | 2 + android/expand_test.go | 2 + android/module_test.go | 3 + android/mutator_test.go | 4 + android/namespace_test.go | 20 ++++ android/neverallow_test.go | 1 + android/onceper_test.go | 11 ++ android/package_test.go | 1 + android/path_properties_test.go | 1 + android/paths_test.go | 10 ++ android/prebuilt_test.go | 1 + android/rule_builder_test.go | 3 + android/soong_config_modules_test.go | 1 + android/soongconfig/modules_test.go | 3 + android/util_test.go | 11 ++ android/variable_test.go | 3 + android/visibility_test.go | 1 + android/vts_config_test.go | 1 + androidmk/androidmk/androidmk_test.go | 1 + androidmk/parser/make_strings_test.go | 3 + androidmk/parser/parser_test.go | 1 + apex/apex_test.go | 105 ++++++++++++++++++ apex/vndk_test.go | 2 + bpf/bpf_test.go | 1 + bpfix/bpfix/bpfix_test.go | 14 +++ cc/cc_test.go | 56 ++++++++++ cc/compiler_test.go | 1 + cc/config/tidy_test.go | 1 + cc/gen_test.go | 1 + cc/genrule_test.go | 2 + cc/library_headers_test.go | 2 + cc/library_test.go | 4 + cc/object_test.go | 1 + cc/prebuilt_test.go | 7 ++ cc/proto_test.go | 1 + cc/sdk_test.go | 1 + cc/test_data_test.go | 1 + cmd/diff_target_files/allow_list_test.go | 1 + cmd/diff_target_files/compare_test.go | 1 + cmd/diff_target_files/glob_test.go | 1 + cmd/extract_apks/main_test.go | 3 + cmd/extract_linker/main_test.go | 1 + .../host_bionic_inject_test.go | 1 + cmd/javac_wrapper/javac_wrapper_test.go | 2 + cmd/merge_zips/merge_zips_test.go | 2 + cmd/multiproduct_kati/main_test.go | 1 + cmd/path_interposer/main_test.go | 2 + cmd/soong_build/bazel_overlay_test.go | 1 + cmd/zip2zip/zip2zip_test.go | 2 + dexpreopt/dexpreopt_test.go | 3 + etc/prebuilt_etc_test.go | 12 ++ finder/finder_test.go | 41 +++++++ finder/fs/fs_test.go | 1 + finder/fs/readdir_test.go | 1 + genrule/genrule_test.go | 4 + jar/jar_test.go | 2 + java/androidmk_test.go | 9 ++ java/app_test.go | 48 ++++++++ java/device_host_converter_test.go | 2 + java/dexpreopt_bootjars_test.go | 2 + java/dexpreopt_test.go | 1 + java/hiddenapi_singleton_test.go | 5 + java/jacoco_test.go | 2 + java/java_test.go | 45 ++++++++ java/jdeps_test.go | 5 + java/kotlin_test.go | 3 + java/plugin_test.go | 3 + java/sdk_test.go | 1 + makedeps/deps_test.go | 2 + partner/androidmk/androidmk_test.go | 1 + python/python_test.go | 1 + remoteexec/remoteexec_test.go | 3 + rust/binary_test.go | 5 + rust/bindgen_test.go | 2 + rust/builder_test.go | 1 + rust/clippy_test.go | 1 + rust/compiler_test.go | 5 + rust/coverage_test.go | 3 + rust/library_test.go | 8 ++ rust/protobuf_test.go | 1 + rust/rust_test.go | 7 ++ rust/source_provider_test.go | 1 + rust/test_test.go | 2 + sdk/bp_test.go | 2 + sdk/cc_sdk_test.go | 28 +++++ sdk/exports_test.go | 1 + sdk/java_sdk_test.go | 22 ++++ sdk/sdk_test.go | 5 + sh/sh_binary_test.go | 5 + symbol_inject/elf_test.go | 1 + symbol_inject/macho_test.go | 1 + symbol_inject/pe_test.go | 1 + symbol_inject/symbol_inject_test.go | 1 + sysprop/sysprop_test.go | 1 + ui/build/cleanbuild_test.go | 1 + ui/build/config_test.go | 3 + ui/build/environment_test.go | 6 + ui/build/paths/logs_test.go | 2 + ui/build/proc_sync_test.go | 5 + ui/build/rbe_test.go | 2 + ui/build/util_test.go | 3 + ui/logger/logger_test.go | 7 ++ ui/metrics/time_test.go | 1 + ui/status/critical_path_test.go | 1 + ui/status/kati_test.go | 3 + ui/status/ninja_test.go | 1 + ui/status/status_test.go | 4 + ui/terminal/status_test.go | 2 + ui/terminal/util_test.go | 1 + xml/xml_test.go | 1 + zip/zip_test.go | 3 + 117 files changed, 661 insertions(+) diff --git a/android/androidmk_test.go b/android/androidmk_test.go index a558f453f..8574dc96b 100644 --- a/android/androidmk_test.go +++ b/android/androidmk_test.go @@ -68,6 +68,7 @@ func customModuleFactory() Module { } func TestAndroidMkSingleton_PassesUpdatedAndroidMkDataToCustomCallback(t *testing.T) { + t.Parallel() bp := ` custom { name: "foo", @@ -103,6 +104,7 @@ func TestAndroidMkSingleton_PassesUpdatedAndroidMkDataToCustomCallback(t *testin } func TestGetDistForGoals(t *testing.T) { + t.Parallel() testCases := []struct { bp string expectedAndroidMkLines []string diff --git a/android/apex_test.go b/android/apex_test.go index 512b50f96..750762815 100644 --- a/android/apex_test.go +++ b/android/apex_test.go @@ -20,6 +20,7 @@ import ( ) func Test_mergeApexVariations(t *testing.T) { + t.Parallel() tests := []struct { name string in []ApexInfo diff --git a/android/arch_test.go b/android/arch_test.go index 8525b0349..7ec050f2a 100644 --- a/android/arch_test.go +++ b/android/arch_test.go @@ -36,6 +36,7 @@ type NamedNoneFiltered struct { } func TestFilterArchStruct(t *testing.T) { + t.Parallel() tests := []struct { name string in interface{} @@ -274,6 +275,7 @@ func archTestModuleFactory() Module { } func TestArchMutator(t *testing.T) { + t.Parallel() var buildOSVariants []string var buildOS32Variants []string switch runtime.GOOS { @@ -385,6 +387,7 @@ func TestArchMutator(t *testing.T) { } func TestArchMutatorNativeBridge(t *testing.T) { + t.Parallel() bp := ` // This module is only enabled for x86. module { diff --git a/android/config_test.go b/android/config_test.go index 274d59fb6..0c907b79c 100644 --- a/android/config_test.go +++ b/android/config_test.go @@ -58,6 +58,7 @@ func (c *configType) SetDefaultConfig() { // tests that ValidateConfigAnnotation works func TestValidateConfigAnnotations(t *testing.T) { + t.Parallel() config := configType{} err := validateConfigAnnotations(&config) expectedError := `Field configType.PopulateMe has tag json:"omitempty" which specifies to change its json field name to "omitempty". @@ -74,6 +75,7 @@ Did you mean to use an annotation of ",omitempty"? // run validateConfigAnnotations against each type that might have json annotations func TestProductConfigAnnotations(t *testing.T) { + t.Parallel() err := validateConfigAnnotations(&productVariables{}) if err != nil { t.Errorf(err.Error()) @@ -86,6 +88,7 @@ func TestProductConfigAnnotations(t *testing.T) { } func TestMissingVendorConfig(t *testing.T) { + t.Parallel() c := &config{} if c.VendorConfig("test").Bool("not_set") { t.Errorf("Expected false") diff --git a/android/csuite_config_test.go b/android/csuite_config_test.go index bf1a19a46..ec93ed6f2 100644 --- a/android/csuite_config_test.go +++ b/android/csuite_config_test.go @@ -32,6 +32,7 @@ func testCSuiteConfig(test *testing.T, bpFileContents string) *TestContext { } func TestCSuiteConfig(t *testing.T) { + t.Parallel() ctx := testCSuiteConfig(t, ` csuite_config { name: "plain"} csuite_config { name: "with_manifest", test_config: "manifest.xml" } diff --git a/android/defaults_test.go b/android/defaults_test.go index d096b2f92..a6abe8f06 100644 --- a/android/defaults_test.go +++ b/android/defaults_test.go @@ -59,6 +59,7 @@ func defaultsTestDefaultsFactory() Module { } func TestDefaults(t *testing.T) { + t.Parallel() bp := ` defaults { name: "transitive", @@ -102,6 +103,7 @@ func TestDefaults(t *testing.T) { } func TestDefaultsAllowMissingDependencies(t *testing.T) { + t.Parallel() bp := ` defaults { name: "defaults", diff --git a/android/depset_test.go b/android/depset_test.go index c328127b1..1ad27ebad 100644 --- a/android/depset_test.go +++ b/android/depset_test.go @@ -64,6 +64,7 @@ func ExampleDepSet_ToSortedList() { // Tests based on Bazel's ExpanderTestBase.java to ensure compatibility // https://github.com/bazelbuild/bazel/blob/master/src/test/java/com/google/devtools/build/lib/collect/nestedset/ExpanderTestBase.java func TestDepSet(t *testing.T) { + t.Parallel() a := PathForTesting("a") b := PathForTesting("b") c := PathForTesting("c") @@ -274,6 +275,7 @@ func TestDepSet(t *testing.T) { } func TestDepSetInvalidOrder(t *testing.T) { + t.Parallel() orders := []DepSetOrder{POSTORDER, PREORDER, TOPOLOGICAL} run := func(t *testing.T, order1, order2 DepSetOrder) { diff --git a/android/expand_test.go b/android/expand_test.go index 12179eddf..7992288cf 100644 --- a/android/expand_test.go +++ b/android/expand_test.go @@ -163,6 +163,7 @@ var expandTestCases = []struct { } func TestExpand(t *testing.T) { + t.Parallel() for _, test := range expandTestCases { got, err := Expand(test.in, func(s string) (string, error) { s, _, err := expander(s) @@ -179,6 +180,7 @@ func TestExpand(t *testing.T) { } func TestExpandNinjaEscaped(t *testing.T) { + t.Parallel() for _, test := range expandTestCases { got, err := ExpandNinjaEscaped(test.in, expander) if err != nil && !test.err { diff --git a/android/module_test.go b/android/module_test.go index 6e648d7bb..b2a41e46a 100644 --- a/android/module_test.go +++ b/android/module_test.go @@ -19,6 +19,7 @@ import ( ) func TestSrcIsModule(t *testing.T) { + t.Parallel() type args struct { s string } @@ -66,6 +67,7 @@ func TestSrcIsModule(t *testing.T) { } func TestSrcIsModuleWithTag(t *testing.T) { + t.Parallel() type args struct { s string } @@ -164,6 +166,7 @@ func depsModuleFactory() Module { } func TestErrorDependsOnDisabledModule(t *testing.T) { + t.Parallel() ctx := NewTestContext() ctx.RegisterModuleType("deps", depsModuleFactory) diff --git a/android/mutator_test.go b/android/mutator_test.go index 191b535a3..ce073bfb6 100644 --- a/android/mutator_test.go +++ b/android/mutator_test.go @@ -59,6 +59,7 @@ func addMissingDependenciesMutator(ctx TopDownMutatorContext) { } func TestMutatorAddMissingDependencies(t *testing.T) { + t.Parallel() bp := ` test { name: "foo", @@ -92,6 +93,7 @@ func TestMutatorAddMissingDependencies(t *testing.T) { } func TestModuleString(t *testing.T) { + t.Parallel() ctx := NewTestContext() var moduleStrings []string @@ -190,6 +192,7 @@ func TestModuleString(t *testing.T) { } func TestFinalDepsPhase(t *testing.T) { + t.Parallel() ctx := NewTestContext() finalGot := map[string]int{} @@ -267,6 +270,7 @@ func TestFinalDepsPhase(t *testing.T) { } func TestNoCreateVariationsInFinalDeps(t *testing.T) { + t.Parallel() ctx := NewTestContext() checkErr := func() { diff --git a/android/namespace_test.go b/android/namespace_test.go index 66c0d895a..5cce3e434 100644 --- a/android/namespace_test.go +++ b/android/namespace_test.go @@ -24,6 +24,7 @@ import ( ) func TestDependingOnModuleInSameNamespace(t *testing.T) { + t.Parallel() ctx := setupTest(t, map[string]string{ "dir1": ` @@ -48,6 +49,7 @@ func TestDependingOnModuleInSameNamespace(t *testing.T) { } func TestDependingOnModuleInRootNamespace(t *testing.T) { + t.Parallel() ctx := setupTest(t, map[string]string{ ".": ` @@ -70,6 +72,7 @@ func TestDependingOnModuleInRootNamespace(t *testing.T) { } func TestImplicitlyImportRootNamespace(t *testing.T) { + t.Parallel() _ = setupTest(t, map[string]string{ ".": ` @@ -92,6 +95,7 @@ func TestImplicitlyImportRootNamespace(t *testing.T) { } func TestDependingOnBlueprintModuleInRootNamespace(t *testing.T) { + t.Parallel() _ = setupTest(t, map[string]string{ ".": ` @@ -114,6 +118,7 @@ func TestDependingOnBlueprintModuleInRootNamespace(t *testing.T) { } func TestDependingOnModuleInImportedNamespace(t *testing.T) { + t.Parallel() ctx := setupTest(t, map[string]string{ "dir1": ` @@ -143,6 +148,7 @@ func TestDependingOnModuleInImportedNamespace(t *testing.T) { } func TestDependingOnModuleInNonImportedNamespace(t *testing.T) { + t.Parallel() _, errs := setupTestExpectErrs( map[string]string{ "dir1": ` @@ -183,6 +189,7 @@ Module "a" can be found in these namespaces: ["dir1" "dir2"]`), } func TestDependingOnModuleByFullyQualifiedReference(t *testing.T) { + t.Parallel() ctx := setupTest(t, map[string]string{ "dir1": ` @@ -210,6 +217,7 @@ func TestDependingOnModuleByFullyQualifiedReference(t *testing.T) { } func TestSameNameInTwoNamespaces(t *testing.T) { + t.Parallel() ctx := setupTest(t, map[string]string{ "dir1": ` @@ -260,6 +268,7 @@ func TestSameNameInTwoNamespaces(t *testing.T) { } func TestSearchOrder(t *testing.T) { + t.Parallel() ctx := setupTest(t, map[string]string{ "dir1": ` @@ -348,6 +357,7 @@ func TestSearchOrder(t *testing.T) { } func TestTwoNamespacesCanImportEachOther(t *testing.T) { + t.Parallel() _ = setupTest(t, map[string]string{ "dir1": ` @@ -378,6 +388,7 @@ func TestTwoNamespacesCanImportEachOther(t *testing.T) { } func TestImportingNonexistentNamespace(t *testing.T) { + t.Parallel() _, errs := setupTestExpectErrs( map[string]string{ "dir1": ` @@ -402,6 +413,7 @@ func TestImportingNonexistentNamespace(t *testing.T) { } func TestNamespacesDontInheritParentNamespaces(t *testing.T) { + t.Parallel() _, errs := setupTestExpectErrs( map[string]string{ "dir1": ` @@ -433,6 +445,7 @@ Module "a" can be found in these namespaces: ["dir1"]`), } func TestModulesDoReceiveParentNamespace(t *testing.T) { + t.Parallel() _ = setupTest(t, map[string]string{ "dir1": ` @@ -455,6 +468,7 @@ func TestModulesDoReceiveParentNamespace(t *testing.T) { } func TestNamespaceImportsNotTransitive(t *testing.T) { + t.Parallel() _, errs := setupTestExpectErrs( map[string]string{ "dir1": ` @@ -496,6 +510,7 @@ Module "a" can be found in these namespaces: ["dir1"]`), } func TestTwoNamepacesInSameDir(t *testing.T) { + t.Parallel() _, errs := setupTestExpectErrs( map[string]string{ "dir1": ` @@ -516,6 +531,7 @@ func TestTwoNamepacesInSameDir(t *testing.T) { } func TestNamespaceNotAtTopOfFile(t *testing.T) { + t.Parallel() _, errs := setupTestExpectErrs( map[string]string{ "dir1": ` @@ -537,6 +553,7 @@ func TestNamespaceNotAtTopOfFile(t *testing.T) { } func TestTwoModulesWithSameNameInSameNamespace(t *testing.T) { + t.Parallel() _, errs := setupTestExpectErrs( map[string]string{ "dir1": ` @@ -562,6 +579,7 @@ func TestTwoModulesWithSameNameInSameNamespace(t *testing.T) { } func TestDeclaringNamespaceInNonAndroidBpFile(t *testing.T) { + t.Parallel() _, errs := setupTestFromFiles( map[string][]byte{ "Android.bp": []byte(` @@ -585,6 +603,7 @@ func TestDeclaringNamespaceInNonAndroidBpFile(t *testing.T) { // so that the generated .ninja file will have consistent names func TestConsistentNamespaceNames(t *testing.T) { + t.Parallel() ctx := setupTest(t, map[string]string{ "dir1": "soong_namespace{}", @@ -604,6 +623,7 @@ func TestConsistentNamespaceNames(t *testing.T) { // so that the generated .ninja file will have consistent names func TestRename(t *testing.T) { + t.Parallel() _ = setupTest(t, map[string]string{ "dir1": ` diff --git a/android/neverallow_test.go b/android/neverallow_test.go index 56a07dc9d..306c509c3 100644 --- a/android/neverallow_test.go +++ b/android/neverallow_test.go @@ -343,6 +343,7 @@ var neverallowTests = []struct { } func TestNeverallow(t *testing.T) { + t.Parallel() for _, test := range neverallowTests { // Create a test per config to allow for test specific config, e.g. test rules. config := TestConfig(buildDir, nil, "", test.fs) diff --git a/android/onceper_test.go b/android/onceper_test.go index 1a55ff4b1..da0b10d3d 100644 --- a/android/onceper_test.go +++ b/android/onceper_test.go @@ -20,6 +20,7 @@ import ( ) func TestOncePer_Once(t *testing.T) { + t.Parallel() once := OncePer{} key := NewOnceKey("key") @@ -36,6 +37,7 @@ func TestOncePer_Once(t *testing.T) { } func TestOncePer_Once_wait(t *testing.T) { + t.Parallel() once := OncePer{} key := NewOnceKey("key") @@ -51,6 +53,7 @@ func TestOncePer_Once_wait(t *testing.T) { } func TestOncePer_Get(t *testing.T) { + t.Parallel() once := OncePer{} key := NewOnceKey("key") @@ -67,6 +70,7 @@ func TestOncePer_Get(t *testing.T) { } func TestOncePer_Get_panic(t *testing.T) { + t.Parallel() once := OncePer{} key := NewOnceKey("key") @@ -82,6 +86,7 @@ func TestOncePer_Get_panic(t *testing.T) { } func TestOncePer_Get_wait(t *testing.T) { + t.Parallel() once := OncePer{} key := NewOnceKey("key") @@ -97,6 +102,7 @@ func TestOncePer_Get_wait(t *testing.T) { } func TestOncePer_OnceStringSlice(t *testing.T) { + t.Parallel() once := OncePer{} key := NewOnceKey("key") @@ -113,6 +119,7 @@ func TestOncePer_OnceStringSlice(t *testing.T) { } func TestOncePer_Once2StringSlice(t *testing.T) { + t.Parallel() once := OncePer{} key := NewOnceKey("key") @@ -129,6 +136,7 @@ func TestOncePer_Once2StringSlice(t *testing.T) { } func TestNewOnceKey(t *testing.T) { + t.Parallel() once := OncePer{} key1 := NewOnceKey("key") key2 := NewOnceKey("key") @@ -146,6 +154,7 @@ func TestNewOnceKey(t *testing.T) { } func TestNewCustomOnceKey(t *testing.T) { + t.Parallel() type key struct { key string } @@ -166,6 +175,7 @@ func TestNewCustomOnceKey(t *testing.T) { } func TestOncePerReentrant(t *testing.T) { + t.Parallel() once := OncePer{} key1 := NewOnceKey("key") key2 := NewOnceKey("key") @@ -178,6 +188,7 @@ func TestOncePerReentrant(t *testing.T) { // Test that a recovered panic in a Once function doesn't deadlock func TestOncePerPanic(t *testing.T) { + t.Parallel() once := OncePer{} key := NewOnceKey("key") diff --git a/android/package_test.go b/android/package_test.go index 04dfc08a9..a4b4c60ff 100644 --- a/android/package_test.go +++ b/android/package_test.go @@ -56,6 +56,7 @@ var packageTests = []struct { } func TestPackage(t *testing.T) { + t.Parallel() for _, test := range packageTests { t.Run(test.name, func(t *testing.T) { _, errs := testPackage(test.fs) diff --git a/android/path_properties_test.go b/android/path_properties_test.go index f367b82b8..9bbb571f1 100644 --- a/android/path_properties_test.go +++ b/android/path_properties_test.go @@ -59,6 +59,7 @@ func (p *pathDepsMutatorTestModule) GenerateAndroidBuildActions(ctx ModuleContex } func TestPathDepsMutator(t *testing.T) { + t.Parallel() tests := []struct { name string bp string diff --git a/android/paths_test.go b/android/paths_test.go index d099f6502..03e1410f1 100644 --- a/android/paths_test.go +++ b/android/paths_test.go @@ -110,6 +110,7 @@ var validatePathTestCases = append(commonValidatePathTestCases, []strsTestCase{ }...) func TestValidateSafePath(t *testing.T) { + t.Parallel() for _, testCase := range validateSafePathTestCases { t.Run(strings.Join(testCase.in, ","), func(t *testing.T) { ctx := &configErrorWrapper{} @@ -123,6 +124,7 @@ func TestValidateSafePath(t *testing.T) { } func TestValidatePath(t *testing.T) { + t.Parallel() for _, testCase := range validatePathTestCases { t.Run(strings.Join(testCase.in, ","), func(t *testing.T) { ctx := &configErrorWrapper{} @@ -136,6 +138,7 @@ func TestValidatePath(t *testing.T) { } func TestOptionalPath(t *testing.T) { + t.Parallel() var path OptionalPath checkInvalidOptionalPath(t, path) @@ -253,6 +256,7 @@ func pathTestConfig(buildDir string) Config { } func TestPathForModuleInstall(t *testing.T) { + t.Parallel() testConfig := pathTestConfig("") hostTarget := Target{Os: Linux, Arch: Arch{ArchType: X86}} @@ -657,6 +661,7 @@ func TestPathForModuleInstall(t *testing.T) { } func TestDirectorySortedPaths(t *testing.T) { + t.Parallel() config := TestConfig("out", nil, "", map[string][]byte{ "Android.bp": nil, "a.txt": nil, @@ -739,6 +744,7 @@ func TestDirectorySortedPaths(t *testing.T) { } func TestMaybeRel(t *testing.T) { + t.Parallel() testCases := []struct { name string base string @@ -796,6 +802,7 @@ func TestMaybeRel(t *testing.T) { } func TestPathForSource(t *testing.T) { + t.Parallel() testCases := []struct { name string buildDir string @@ -1028,6 +1035,7 @@ func testPathForModuleSrc(t *testing.T, buildDir string, tests []pathForModuleSr } func TestPathsForModuleSrc(t *testing.T) { + t.Parallel() tests := []pathForModuleSrcTestCase{ { name: "path", @@ -1123,6 +1131,7 @@ func TestPathsForModuleSrc(t *testing.T) { } func TestPathForModuleSrc(t *testing.T) { + t.Parallel() tests := []pathForModuleSrcTestCase{ { name: "path", @@ -1190,6 +1199,7 @@ func TestPathForModuleSrc(t *testing.T) { } func TestPathsForModuleSrc_AllowMissingDependencies(t *testing.T) { + t.Parallel() bp := ` test { name: "foo", diff --git a/android/prebuilt_test.go b/android/prebuilt_test.go index 854395e64..40fced8ff 100644 --- a/android/prebuilt_test.go +++ b/android/prebuilt_test.go @@ -262,6 +262,7 @@ var prebuiltsTests = []struct { } func TestPrebuilts(t *testing.T) { + t.Parallel() fs := map[string][]byte{ "prebuilt_file": nil, "source_file": nil, diff --git a/android/rule_builder_test.go b/android/rule_builder_test.go index c41b06734..d205a5b03 100644 --- a/android/rule_builder_test.go +++ b/android/rule_builder_test.go @@ -264,6 +264,7 @@ func ExampleRuleBuilderCommand_NinjaEscapedString() { } func TestRuleBuilder(t *testing.T) { + t.Parallel() fs := map[string][]byte{ "dep_fixer": nil, "input": nil, @@ -455,6 +456,7 @@ func testRuleBuilder_Build(ctx BuilderContext, in Path, out, outDep, outDir Writ } func TestRuleBuilder_Build(t *testing.T) { + t.Parallel() fs := map[string][]byte{ "bar": nil, "cp": nil, @@ -546,6 +548,7 @@ func TestRuleBuilder_Build(t *testing.T) { } func Test_ninjaEscapeExceptForSpans(t *testing.T) { + t.Parallel() type args struct { s string spans [][2]int diff --git a/android/soong_config_modules_test.go b/android/soong_config_modules_test.go index f905b1ab2..f0f14626e 100644 --- a/android/soong_config_modules_test.go +++ b/android/soong_config_modules_test.go @@ -38,6 +38,7 @@ func soongConfigTestModuleFactory() Module { func (t soongConfigTestModule) GenerateAndroidBuildActions(ModuleContext) {} func TestSoongConfigModule(t *testing.T) { + t.Parallel() configBp := ` soong_config_module_type { name: "acme_test_defaults", diff --git a/android/soongconfig/modules_test.go b/android/soongconfig/modules_test.go index 419001670..ff4883e64 100644 --- a/android/soongconfig/modules_test.go +++ b/android/soongconfig/modules_test.go @@ -20,6 +20,7 @@ import ( ) func Test_CanonicalizeToProperty(t *testing.T) { + t.Parallel() tests := []struct { name string arg string @@ -66,6 +67,7 @@ func Test_CanonicalizeToProperty(t *testing.T) { } func Test_typeForPropertyFromPropertyStruct(t *testing.T) { + t.Parallel() tests := []struct { name string ps interface{} @@ -186,6 +188,7 @@ func Test_typeForPropertyFromPropertyStruct(t *testing.T) { } func Test_createAffectablePropertiesType(t *testing.T) { + t.Parallel() tests := []struct { name string affectableProperties []string diff --git a/android/util_test.go b/android/util_test.go index 25b52ca03..8c421577e 100644 --- a/android/util_test.go +++ b/android/util_test.go @@ -60,6 +60,7 @@ var firstUniqueStringsTestCases = []struct { } func TestFirstUniqueStrings(t *testing.T) { + t.Parallel() f := func(t *testing.T, imp func([]string) []string, in, want []string) { t.Helper() out := imp(in) @@ -120,6 +121,7 @@ var lastUniqueStringsTestCases = []struct { } func TestLastUniqueStrings(t *testing.T) { + t.Parallel() for _, testCase := range lastUniqueStringsTestCases { out := LastUniqueStrings(testCase.in) if !reflect.DeepEqual(out, testCase.out) { @@ -132,6 +134,7 @@ func TestLastUniqueStrings(t *testing.T) { } func TestJoinWithPrefix(t *testing.T) { + t.Parallel() testcases := []struct { name string input []string @@ -171,6 +174,7 @@ func TestJoinWithPrefix(t *testing.T) { } func TestIndexList(t *testing.T) { + t.Parallel() input := []string{"a", "b", "c"} testcases := []struct { @@ -210,6 +214,7 @@ func TestIndexList(t *testing.T) { } func TestInList(t *testing.T) { + t.Parallel() input := []string{"a"} testcases := []struct { @@ -241,6 +246,7 @@ func TestInList(t *testing.T) { } func TestPrefixInList(t *testing.T) { + t.Parallel() prefixes := []string{"a", "b"} testcases := []struct { @@ -276,6 +282,7 @@ func TestPrefixInList(t *testing.T) { } func TestFilterList(t *testing.T) { + t.Parallel() input := []string{"a", "b", "c", "c", "b", "d", "a"} filter := []string{"a", "c"} remainder, filtered := FilterList(input, filter) @@ -300,6 +307,7 @@ func TestFilterList(t *testing.T) { } func TestRemoveListFromList(t *testing.T) { + t.Parallel() input := []string{"a", "b", "c", "d", "a", "c", "d"} filter := []string{"a", "c"} expected := []string{"b", "d", "d"} @@ -314,6 +322,7 @@ func TestRemoveListFromList(t *testing.T) { } func TestRemoveFromList(t *testing.T) { + t.Parallel() testcases := []struct { name string key string @@ -417,6 +426,7 @@ func ExampleCopyOf_append() { } func TestSplitFileExt(t *testing.T) { + t.Parallel() t.Run("soname with version", func(t *testing.T) { root, suffix, ext := SplitFileExt("libtest.so.1.0.30") expected := "libtest" @@ -482,6 +492,7 @@ func TestSplitFileExt(t *testing.T) { } func Test_Shard(t *testing.T) { + t.Parallel() type args struct { strings []string shardSize int diff --git a/android/variable_test.go b/android/variable_test.go index 9cafedd50..9348b0d5f 100644 --- a/android/variable_test.go +++ b/android/variable_test.go @@ -112,6 +112,7 @@ var printfIntoPropertyTestCases = []printfIntoPropertyTestCase{ } func TestPrintfIntoProperty(t *testing.T) { + t.Parallel() for _, testCase := range printfIntoPropertyTestCases { s := testCase.in v := reflect.ValueOf(&s).Elem() @@ -157,6 +158,7 @@ func testProductVariableModuleFactoryFactory(props interface{}) func() Module { } func TestProductVariables(t *testing.T) { + t.Parallel() ctx := NewTestContext() // A module type that has a srcs property but not a cflags property. ctx.RegisterModuleType("module1", testProductVariableModuleFactoryFactory(&struct { @@ -265,6 +267,7 @@ func productVariablesDefaultsTestDefaultsFactory() Module { // Test a defaults module that supports more product variable properties than the target module. func TestProductVariablesDefaults(t *testing.T) { + t.Parallel() bp := ` defaults { name: "defaults", diff --git a/android/visibility_test.go b/android/visibility_test.go index 9d9e57438..8de5fa951 100644 --- a/android/visibility_test.go +++ b/android/visibility_test.go @@ -1140,6 +1140,7 @@ var visibilityTests = []struct { } func TestVisibility(t *testing.T) { + t.Parallel() for _, test := range visibilityTests { t.Run(test.name, func(t *testing.T) { ctx, errs := testVisibility(buildDir, test.fs) diff --git a/android/vts_config_test.go b/android/vts_config_test.go index 254fa92fb..a95e5899b 100644 --- a/android/vts_config_test.go +++ b/android/vts_config_test.go @@ -32,6 +32,7 @@ func testVtsConfig(test *testing.T, bpFileContents string) *TestContext { } func TestVtsConfig(t *testing.T) { + t.Parallel() ctx := testVtsConfig(t, ` vts_config { name: "plain"} vts_config { name: "with_manifest", test_config: "manifest.xml" } diff --git a/androidmk/androidmk/androidmk_test.go b/androidmk/androidmk/androidmk_test.go index 2448acc21..560ea13b9 100644 --- a/androidmk/androidmk/androidmk_test.go +++ b/androidmk/androidmk/androidmk_test.go @@ -1462,6 +1462,7 @@ runtime_resource_overlay { } func TestEndToEnd(t *testing.T) { + t.Parallel() for i, test := range testCases { expected, err := bpfix.Reformat(test.expected) if err != nil { diff --git a/androidmk/parser/make_strings_test.go b/androidmk/parser/make_strings_test.go index 6995e8913..9622068a7 100644 --- a/androidmk/parser/make_strings_test.go +++ b/androidmk/parser/make_strings_test.go @@ -89,6 +89,7 @@ var splitNTestCases = []struct { } func TestMakeStringSplitN(t *testing.T) { + t.Parallel() for _, test := range splitNTestCases { got := test.in.SplitN(test.sep, test.n) gotString := dumpArray(got) @@ -118,6 +119,7 @@ var valueTestCases = []struct { } func TestMakeStringValue(t *testing.T) { + t.Parallel() for _, test := range valueTestCases { got := test.in.Value(nil) if got != test.expected { @@ -161,6 +163,7 @@ var splitWordsTestCases = []struct { } func TestMakeStringWords(t *testing.T) { + t.Parallel() for _, test := range splitWordsTestCases { got := test.in.Words() gotString := dumpArray(got) diff --git a/androidmk/parser/parser_test.go b/androidmk/parser/parser_test.go index f562c29e8..7c05a0cdf 100644 --- a/androidmk/parser/parser_test.go +++ b/androidmk/parser/parser_test.go @@ -37,6 +37,7 @@ var parserTestCases = []struct { } func TestParse(t *testing.T) { + t.Parallel() for _, test := range parserTestCases { t.Run(test.name, func(t *testing.T) { p := NewParser(test.name, bytes.NewBufferString(test.in)) diff --git a/apex/apex_test.go b/apex/apex_test.go index cf2c9533b..5a9a3b19f 100644 --- a/apex/apex_test.go +++ b/apex/apex_test.go @@ -345,6 +345,7 @@ func ensureListEmpty(t *testing.T, result []string) { // Minimal test func TestBasicApex(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` apex_defaults { name: "myapex-defaults", @@ -597,6 +598,7 @@ func TestBasicApex(t *testing.T) { } func TestDefaults(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex_defaults { name: "myapex-defaults", @@ -671,6 +673,7 @@ func TestDefaults(t *testing.T) { } func TestApexManifest(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -692,6 +695,7 @@ func TestApexManifest(t *testing.T) { } func TestBasicZipApex(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -742,6 +746,7 @@ func TestBasicZipApex(t *testing.T) { } func TestApexWithStubs(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -934,6 +939,7 @@ func TestApexWithStubsWithMinSdkVersion(t *testing.T) { } func TestApexWithExplicitStubsDependency(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex2", @@ -1021,6 +1027,7 @@ func TestApexWithExplicitStubsDependency(t *testing.T) { } func TestApexWithRuntimeLibsDependency(t *testing.T) { + t.Parallel() /* myapex | @@ -1090,6 +1097,7 @@ func TestApexWithRuntimeLibsDependency(t *testing.T) { } func TestRuntimeApexShouldInstallHwasanIfLibcDependsOnIt(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, "", func(fs map[string][]byte, config android.Config) { bp := ` apex { @@ -1153,6 +1161,7 @@ func TestRuntimeApexShouldInstallHwasanIfLibcDependsOnIt(t *testing.T) { } func TestRuntimeApexShouldInstallHwasanIfHwaddressSanitized(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, "", func(fs map[string][]byte, config android.Config) { bp := ` apex { @@ -1214,6 +1223,7 @@ func TestRuntimeApexShouldInstallHwasanIfHwaddressSanitized(t *testing.T) { } func TestApexDependsOnLLNDKTransitively(t *testing.T) { + t.Parallel() testcases := []struct { name string minSdkVersion string @@ -1303,6 +1313,7 @@ func TestApexDependsOnLLNDKTransitively(t *testing.T) { } func TestApexWithSystemLibsStubs(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -1393,6 +1404,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 #29 link, but fallback to #28 // 2) otherapex -> liby -> liba -> libz : this should be #30 link @@ -1479,6 +1491,7 @@ func TestApexMinSdkVersion_NativeModulesShouldBeBuiltAgainstStubs(t *testing.T) } func TestApexMinSdkVersion_SupportsCodeNames(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -1528,6 +1541,7 @@ func TestApexMinSdkVersion_SupportsCodeNames(t *testing.T) { } func TestApexMinSdkVersion_DefaultsToLatest(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -1573,6 +1587,7 @@ func TestApexMinSdkVersion_DefaultsToLatest(t *testing.T) { } func TestPlatformUsesLatestStubsFromApexes(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -1620,6 +1635,7 @@ func TestPlatformUsesLatestStubsFromApexes(t *testing.T) { } func TestQApexesUseLatestStubsInBundledBuildsAndHWASAN(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -1659,6 +1675,7 @@ func TestQApexesUseLatestStubsInBundledBuildsAndHWASAN(t *testing.T) { } func TestQTargetApexUsesStaticUnwinder(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -1689,6 +1706,7 @@ func TestQTargetApexUsesStaticUnwinder(t *testing.T) { } func TestApexMinSdkVersion_ErrorIfIncompatibleStubs(t *testing.T) { + t.Parallel() testApexError(t, `"libz" .*: not found a version\(<=29\)`, ` apex { name: "myapex", @@ -1724,6 +1742,7 @@ func TestApexMinSdkVersion_ErrorIfIncompatibleStubs(t *testing.T) { } func TestApexMinSdkVersion_ErrorIfIncompatibleVersion(t *testing.T) { + t.Parallel() testApexError(t, `module "mylib".*: should support min_sdk_version\(29\)`, ` apex { name: "myapex", @@ -1752,6 +1771,7 @@ func TestApexMinSdkVersion_ErrorIfIncompatibleVersion(t *testing.T) { } func TestApexMinSdkVersion_Okay(t *testing.T) { + t.Parallel() testApex(t, ` apex { name: "myapex", @@ -1802,6 +1822,7 @@ func TestApexMinSdkVersion_Okay(t *testing.T) { } func TestJavaStableSdkVersion(t *testing.T) { + t.Parallel() testCases := []struct { name string expectedError string @@ -1919,6 +1940,7 @@ func TestJavaStableSdkVersion(t *testing.T) { } func TestApexMinSdkVersion_ErrorIfDepIsNewer(t *testing.T) { + t.Parallel() testApexError(t, `module "mylib2".*: should support min_sdk_version\(29\) for "myapex"`, ` apex { name: "myapex", @@ -1960,6 +1982,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", @@ -1995,6 +2018,7 @@ func TestApexMinSdkVersion_ErrorIfDepIsNewer_Java(t *testing.T) { } func TestApexMinSdkVersion_OkayEvenWhenDepIsNewer_IfItSatisfiesApexMinSdkVersion(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -2048,6 +2072,7 @@ func TestApexMinSdkVersion_OkayEvenWhenDepIsNewer_IfItSatisfiesApexMinSdkVersion } func TestFilesInSubDir(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -2110,6 +2135,7 @@ func TestFilesInSubDir(t *testing.T) { } func TestFilesInSubDirWhenNativeBridgeEnabled(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -2168,6 +2194,7 @@ func TestFilesInSubDirWhenNativeBridgeEnabled(t *testing.T) { } func TestUseVendor(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -2222,6 +2249,7 @@ func TestUseVendor(t *testing.T) { } func TestUseVendorNotAllowedForSystemApexes(t *testing.T) { + t.Parallel() testApexError(t, `module "myapex" .*: use_vendor: not allowed`, ` apex { name: "myapex", @@ -2254,6 +2282,7 @@ func TestUseVendorNotAllowedForSystemApexes(t *testing.T) { } func TestUseVendorFailsIfNotVendorAvailable(t *testing.T) { + t.Parallel() testApexError(t, `dependency "mylib" of "myapex" missing variant:\n.*image:vendor`, ` apex { name: "myapex", @@ -2278,6 +2307,7 @@ func TestUseVendorFailsIfNotVendorAvailable(t *testing.T) { } func TestVendorApex(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` apex { name: "myapex", @@ -2323,6 +2353,7 @@ func TestVendorApex(t *testing.T) { } func TestVendorApex_use_vndk_as_stable(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -2376,6 +2407,7 @@ func TestVendorApex_use_vndk_as_stable(t *testing.T) { } func TestApex_withPrebuiltFirmware(t *testing.T) { + t.Parallel() testCases := []struct { name string additionalProp string @@ -2412,6 +2444,7 @@ func TestApex_withPrebuiltFirmware(t *testing.T) { } func TestAndroidMk_UseVendorRequired(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` apex { name: "myapex", @@ -2446,6 +2479,7 @@ func TestAndroidMk_UseVendorRequired(t *testing.T) { } func TestAndroidMk_VendorApexRequired(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` apex { name: "myapex", @@ -2477,6 +2511,7 @@ func TestAndroidMk_VendorApexRequired(t *testing.T) { } func TestAndroidMkWritesCommonProperties(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` apex { name: "myapex", @@ -2506,6 +2541,7 @@ func TestAndroidMkWritesCommonProperties(t *testing.T) { } func TestStaticLinking(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -2550,6 +2586,7 @@ func TestStaticLinking(t *testing.T) { } func TestKeys(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex_keytest", @@ -2606,6 +2643,7 @@ func TestKeys(t *testing.T) { } func TestCertificate(t *testing.T) { + t.Parallel() t.Run("if unspecified, it defaults to DefaultAppCertificate", func(t *testing.T) { ctx, _ := testApex(t, ` apex { @@ -2734,6 +2772,7 @@ func TestCertificate(t *testing.T) { } func TestMacro(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -2861,6 +2900,7 @@ func TestMacro(t *testing.T) { } func TestHeaderLibsDependency(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -3004,6 +3044,7 @@ func ensureExactContents(t *testing.T, ctx *android.TestContext, moduleName, var } func TestVndkApexCurrent(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex_vndk { name: "myapex", @@ -3057,6 +3098,7 @@ func TestVndkApexCurrent(t *testing.T) { } func TestVndkApexWithPrebuilt(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex_vndk { name: "myapex", @@ -3139,6 +3181,7 @@ func vndkLibrariesTxtFiles(vers ...string) (result string) { } func TestVndkApexVersion(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex_vndk { name: "myapex_v27", @@ -3205,6 +3248,7 @@ func TestVndkApexVersion(t *testing.T) { } func TestVndkApexErrorWithDuplicateVersion(t *testing.T) { + t.Parallel() testApexError(t, `module "myapex_v27.*" .*: vndk_version: 27 is already defined in "myapex_v27.*"`, ` apex_vndk { name: "myapex_v27", @@ -3251,6 +3295,7 @@ func TestVndkApexErrorWithDuplicateVersion(t *testing.T) { } func TestVndkApexNameRule(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex_vndk { name: "myapex", @@ -3282,6 +3327,7 @@ func TestVndkApexNameRule(t *testing.T) { } func TestVndkApexSkipsNativeBridgeSupportedModules(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex_vndk { name: "myapex", @@ -3320,6 +3366,7 @@ func TestVndkApexSkipsNativeBridgeSupportedModules(t *testing.T) { } func TestVndkApexDoesntSupportNativeBridgeSupported(t *testing.T) { + t.Parallel() testApexError(t, `module "myapex" .*: native_bridge_supported: .* doesn't support native bridge binary`, ` apex_vndk { name: "myapex", @@ -3350,6 +3397,7 @@ func TestVndkApexDoesntSupportNativeBridgeSupported(t *testing.T) { } func TestVndkApexWithBinder32(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex_vndk { name: "myapex_v27", @@ -3416,6 +3464,7 @@ func TestVndkApexWithBinder32(t *testing.T) { } func TestVndkApexShouldNotProvideNativeLibs(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex_vndk { name: "myapex", @@ -3450,6 +3499,7 @@ func TestVndkApexShouldNotProvideNativeLibs(t *testing.T) { } func TestDependenciesInApexManifest(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex_nodep", @@ -3554,6 +3604,7 @@ func TestDependenciesInApexManifest(t *testing.T) { } func TestApexName(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` apex { name: "myapex", @@ -3598,6 +3649,7 @@ func TestApexName(t *testing.T) { } func TestNonTestApex(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -3650,6 +3702,7 @@ func TestNonTestApex(t *testing.T) { } func TestTestApex(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex_test { name: "myapex", @@ -3698,6 +3751,7 @@ func TestTestApex(t *testing.T) { } func TestApexWithTarget(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -3788,6 +3842,7 @@ func TestApexWithTarget(t *testing.T) { } func TestApexWithShBinary(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -3816,6 +3871,7 @@ func TestApexWithShBinary(t *testing.T) { } func TestApexInVariousPartition(t *testing.T) { + t.Parallel() testcases := []struct { propName, parition, flattenedPartition string }{ @@ -3860,6 +3916,7 @@ func TestApexInVariousPartition(t *testing.T) { } func TestFileContexts_FindInDefaultLocationIfNotSet(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -3878,6 +3935,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", @@ -3896,6 +3954,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", @@ -3933,6 +3992,7 @@ func TestFileContexts_ProductSpecificApexes(t *testing.T) { } func TestFileContexts_SetViaFileGroup(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -3960,6 +4020,7 @@ func TestFileContexts_SetViaFileGroup(t *testing.T) { } func TestApexKeyFromOtherModule(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex_key { name: "myapex.key", @@ -3993,6 +4054,7 @@ func TestApexKeyFromOtherModule(t *testing.T) { } func TestPrebuilt(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` prebuilt_apex { name: "myapex", @@ -4016,6 +4078,7 @@ func TestPrebuilt(t *testing.T) { } func TestPrebuiltFilenameOverride(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` prebuilt_apex { name: "myapex", @@ -4033,6 +4096,7 @@ func TestPrebuiltFilenameOverride(t *testing.T) { } func TestPrebuiltOverrides(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` prebuilt_apex { name: "myapex.prebuilt", @@ -4053,6 +4117,7 @@ func TestPrebuiltOverrides(t *testing.T) { } func TestApexWithTests(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` apex_test { name: "myapex", @@ -4164,6 +4229,7 @@ func TestApexWithTests(t *testing.T) { } func TestInstallExtraFlattenedApexes(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` apex { name: "myapex", @@ -4187,6 +4253,7 @@ func TestInstallExtraFlattenedApexes(t *testing.T) { } func TestApexUsesOtherApex(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -4247,6 +4314,7 @@ func TestApexUsesOtherApex(t *testing.T) { } func TestApexUsesFailsIfNotProvided(t *testing.T) { + t.Parallel() testApexError(t, `uses: "commonapex" does not provide native_shared_libs`, ` apex { name: "myapex", @@ -4287,6 +4355,7 @@ func TestApexUsesFailsIfNotProvided(t *testing.T) { } func TestApexUsesFailsIfUseVenderMismatch(t *testing.T) { + t.Parallel() testApexError(t, `use_vendor: "commonapex" has different value of use_vendor`, ` apex { name: "myapex", @@ -4312,6 +4381,7 @@ func TestApexUsesFailsIfUseVenderMismatch(t *testing.T) { } func TestErrorsIfDepsAreNotEnabled(t *testing.T) { + t.Parallel() testApexError(t, `module "myapex" .* depends on disabled module "libfoo"`, ` apex { name: "myapex", @@ -4358,6 +4428,7 @@ func TestErrorsIfDepsAreNotEnabled(t *testing.T) { } func TestApexWithApps(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -4436,6 +4507,7 @@ func TestApexWithApps(t *testing.T) { } func TestApexWithAppImports(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -4484,6 +4556,7 @@ func TestApexWithAppImports(t *testing.T) { } func TestApexWithAppImportsPrefer(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -4525,6 +4598,7 @@ func TestApexWithAppImportsPrefer(t *testing.T) { } func TestApexWithTestHelperApp(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -4556,6 +4630,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 is not available for the APEX`, ` apex { @@ -4590,6 +4665,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 is not available for the APEX", ` apex { @@ -4625,6 +4701,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 is not available for the APEX. Dependency path: .*via tag apex\.dependencyTag.*name:sharedLib.* @@ -4669,6 +4746,7 @@ func TestApexAvailable_IndirectDep(t *testing.T) { } func TestApexAvailable_InvalidApexName(t *testing.T) { + t.Parallel() testApexError(t, "\"otherapex\" is not a valid module name", ` apex { name: "myapex", @@ -4728,6 +4806,7 @@ func TestApexAvailable_InvalidApexName(t *testing.T) { } func TestApexAvailable_CheckForPlatform(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -4790,6 +4869,7 @@ func TestApexAvailable_CheckForPlatform(t *testing.T) { } func TestApexAvailable_CreatedForApex(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -4824,6 +4904,7 @@ func TestApexAvailable_CreatedForApex(t *testing.T) { } func TestOverrideApex(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` apex { name: "myapex", @@ -4907,6 +4988,7 @@ func TestOverrideApex(t *testing.T) { } func TestLegacyAndroid10Support(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -4962,6 +5044,7 @@ var filesForSdkLibrary = map[string][]byte{ } func TestJavaSDKLibrary(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -4994,6 +5077,7 @@ func TestJavaSDKLibrary(t *testing.T) { } func TestJavaSDKLibrary_WithinApex(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -5041,6 +5125,7 @@ func TestJavaSDKLibrary_WithinApex(t *testing.T) { } func TestJavaSDKLibrary_CrossBoundary(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -5086,6 +5171,7 @@ func TestJavaSDKLibrary_CrossBoundary(t *testing.T) { } func TestJavaSDKLibrary_ImportPreferred(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ``, withFiles(map[string][]byte{ "apex/a.java": nil, @@ -5171,6 +5257,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", @@ -5197,6 +5284,7 @@ func TestJavaSDKLibrary_ImportOnly(t *testing.T) { } func TestCompatConfig(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -5231,6 +5319,7 @@ func TestCompatConfig(t *testing.T) { } func TestRejectNonInstallableJavaLibrary(t *testing.T) { + t.Parallel() testApexError(t, `"myjar" is not configured to be compiled into dex`, ` apex { name: "myapex", @@ -5256,6 +5345,7 @@ func TestRejectNonInstallableJavaLibrary(t *testing.T) { } func TestCarryRequiredModuleNames(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` apex { name: "myapex", @@ -5294,6 +5384,7 @@ func TestCarryRequiredModuleNames(t *testing.T) { } func TestSymlinksFromApexToSystem(t *testing.T) { + t.Parallel() bp := ` apex { name: "myapex", @@ -5423,6 +5514,7 @@ func TestSymlinksFromApexToSystem(t *testing.T) { } func TestSymlinksFromApexToSystemRequiredModuleNames(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` apex { name: "myapex", @@ -5474,6 +5566,7 @@ func TestSymlinksFromApexToSystemRequiredModuleNames(t *testing.T) { } func TestApexWithJniLibs(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -5515,6 +5608,7 @@ func TestApexWithJniLibs(t *testing.T) { } func TestApexMutatorsDontRunIfDisabled(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -5536,6 +5630,7 @@ func TestApexMutatorsDontRunIfDisabled(t *testing.T) { } func TestAppBundle(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -5566,6 +5661,7 @@ func TestAppBundle(t *testing.T) { } func TestAppSetBundle(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -5740,6 +5836,7 @@ func testNoUpdatableJarsInBootImage(t *testing.T, errmsg string, transformDexpre } 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", @@ -5756,6 +5853,7 @@ func TestUpdatable_should_set_min_sdk_version(t *testing.T) { } func TestNoUpdatableJarsInBootImage(t *testing.T) { + t.Parallel() var err string var transform func(*dexpreopt.GlobalConfig) @@ -5892,6 +5990,7 @@ func testApexPermittedPackagesRules(t *testing.T, errmsg, bp string, apexBootJar } func TestApexPermittedPackagesRules(t *testing.T) { + t.Parallel() testcases := []struct { name string expectedError string @@ -5975,6 +6074,7 @@ func TestApexPermittedPackagesRules(t *testing.T) { } func TestTestFor(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -6032,6 +6132,7 @@ func intPtr(i int) *int { } func TestApexSet(t *testing.T) { + t.Parallel() ctx, config := testApex(t, ` apex_set { name: "myapex", @@ -6071,6 +6172,7 @@ func TestApexSet(t *testing.T) { } func TestNoStaticLinkingToStubsLib(t *testing.T) { + t.Parallel() testApexError(t, `.*required by "mylib" is a native library providing stub.*`, ` apex { name: "myapex", @@ -6107,6 +6209,7 @@ func TestNoStaticLinkingToStubsLib(t *testing.T) { } func TestApexKeysTxt(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -6147,6 +6250,7 @@ func TestApexKeysTxt(t *testing.T) { } func TestAllowedFiles(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex { name: "myapex", @@ -6202,6 +6306,7 @@ func TestAllowedFiles(t *testing.T) { } func TestNonPreferredPrebuiltDependency(t *testing.T) { + t.Parallel() _, _ = testApex(t, ` apex { name: "myapex", diff --git a/apex/vndk_test.go b/apex/vndk_test.go index 60b6ed5cd..e62399052 100644 --- a/apex/vndk_test.go +++ b/apex/vndk_test.go @@ -9,6 +9,7 @@ import ( ) func TestVndkApexForVndkLite(t *testing.T) { + t.Parallel() ctx, _ := testApex(t, ` apex_vndk { name: "myapex", @@ -62,6 +63,7 @@ func TestVndkApexForVndkLite(t *testing.T) { } func TestVndkApexUsesVendorVariant(t *testing.T) { + t.Parallel() bp := ` apex_vndk { name: "myapex", diff --git a/bpf/bpf_test.go b/bpf/bpf_test.go index d06d7d1a5..44d4cc320 100644 --- a/bpf/bpf_test.go +++ b/bpf/bpf_test.go @@ -66,6 +66,7 @@ func testContext(config android.Config) *android.TestContext { } func TestBpfDataDependency(t *testing.T) { + t.Parallel() bp := ` bpf { name: "bpf.o", diff --git a/bpfix/bpfix/bpfix_test.go b/bpfix/bpfix/bpfix_test.go index ef9814fb8..2bbbd7f8e 100644 --- a/bpfix/bpfix/bpfix_test.go +++ b/bpfix/bpfix/bpfix_test.go @@ -116,6 +116,7 @@ func implFilterListTest(t *testing.T, local_include_dirs []string, export_includ } func TestSimplifyKnownVariablesDuplicatingEachOther(t *testing.T) { + t.Parallel() // TODO use []Expression{} once buildTree above can support it (which is after b/38325146 is done) implFilterListTest(t, []string{"include"}, []string{"include"}, nil) implFilterListTest(t, []string{"include1"}, []string{"include2"}, []string{"include1"}) @@ -169,6 +170,7 @@ func runPass(t *testing.T, in, out string, innerTest func(*Fixer) error) { } func TestMergeMatchingProperties(t *testing.T) { + t.Parallel() tests := []struct { name string in string @@ -258,6 +260,7 @@ func TestMergeMatchingProperties(t *testing.T) { } func TestReorderCommonProperties(t *testing.T) { + t.Parallel() var tests = []struct { name string in string @@ -344,6 +347,7 @@ func TestReorderCommonProperties(t *testing.T) { } func TestRemoveMatchingModuleListProperties(t *testing.T) { + t.Parallel() var tests = []struct { name string in string @@ -499,6 +503,7 @@ func TestRemoveMatchingModuleListProperties(t *testing.T) { } func TestReplaceJavaStaticLibs(t *testing.T) { + t.Parallel() tests := []struct { name string in string @@ -557,6 +562,7 @@ func TestReplaceJavaStaticLibs(t *testing.T) { } func TestRewritePrebuilts(t *testing.T) { + t.Parallel() tests := []struct { name string in string @@ -623,6 +629,7 @@ func TestRewritePrebuilts(t *testing.T) { } func TestRewriteCtsModuleTypes(t *testing.T) { + t.Parallel() tests := []struct { name string in string @@ -694,6 +701,7 @@ func TestRewriteCtsModuleTypes(t *testing.T) { } func TestRewritePrebuiltEtc(t *testing.T) { + t.Parallel() tests := []struct { name string in string @@ -769,6 +777,7 @@ func TestRewritePrebuiltEtc(t *testing.T) { } func TestRewriteAndroidTest(t *testing.T) { + t.Parallel() tests := []struct { name string in string @@ -802,6 +811,7 @@ func TestRewriteAndroidTest(t *testing.T) { } func TestRewriteAndroidAppImport(t *testing.T) { + t.Parallel() tests := []struct { name string in string @@ -851,6 +861,7 @@ func TestRewriteAndroidAppImport(t *testing.T) { } func TestRemoveEmptyLibDependencies(t *testing.T) { + t.Parallel() tests := []struct { name string in string @@ -905,6 +916,7 @@ func TestRemoveEmptyLibDependencies(t *testing.T) { } func TestRemoveHidlInterfaceTypes(t *testing.T) { + t.Parallel() tests := []struct { name string in string @@ -936,6 +948,7 @@ func TestRemoveHidlInterfaceTypes(t *testing.T) { } func TestRemoveSoongConfigBoolVariable(t *testing.T) { + t.Parallel() tests := []struct { name string in string @@ -1000,6 +1013,7 @@ func TestRemoveSoongConfigBoolVariable(t *testing.T) { } func TestRemovePdkProperty(t *testing.T) { + t.Parallel() tests := []struct { name string in string diff --git a/cc/cc_test.go b/cc/cc_test.go index e0d464093..8d00239cb 100644 --- a/cc/cc_test.go +++ b/cc/cc_test.go @@ -128,6 +128,7 @@ const ( ) func TestFuchsiaDeps(t *testing.T) { + t.Parallel() t.Helper() bp := ` @@ -165,6 +166,7 @@ func TestFuchsiaDeps(t *testing.T) { } func TestFuchsiaTargetDecl(t *testing.T) { + t.Parallel() t.Helper() bp := ` @@ -191,6 +193,7 @@ func TestFuchsiaTargetDecl(t *testing.T) { } func TestVendorSrc(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_library { name: "libTest", @@ -321,6 +324,7 @@ func checkVndkLibrariesOutput(t *testing.T, ctx *android.TestContext, module str } func TestVndk(t *testing.T) { + t.Parallel() bp := ` cc_library { name: "libvndk", @@ -447,6 +451,7 @@ func TestVndk(t *testing.T) { } func TestVndkWithHostSupported(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_library { name: "libvndk_host_supported", @@ -481,6 +486,7 @@ func TestVndkWithHostSupported(t *testing.T) { } func TestVndkLibrariesTxtAndroidMk(t *testing.T) { + t.Parallel() bp := ` vndk_libraries_txt { name: "llndk.libraries.txt", @@ -496,6 +502,7 @@ func TestVndkLibrariesTxtAndroidMk(t *testing.T) { } func TestVndkUsingCoreVariant(t *testing.T) { + t.Parallel() bp := ` cc_library { name: "libvndk", @@ -543,6 +550,7 @@ func TestVndkUsingCoreVariant(t *testing.T) { } func TestDataLibs(t *testing.T) { + t.Parallel() bp := ` cc_test_library { name: "test_lib", @@ -593,6 +601,7 @@ func TestDataLibs(t *testing.T) { } func TestDataLibsRelativeInstallPath(t *testing.T) { + t.Parallel() bp := ` cc_test_library { name: "test_lib", @@ -640,6 +649,7 @@ func TestDataLibsRelativeInstallPath(t *testing.T) { } func TestVndkWhenVndkVersionIsNotSet(t *testing.T) { + t.Parallel() ctx := testCcNoVndk(t, ` cc_library { name: "libvndk", @@ -663,6 +673,7 @@ func TestVndkWhenVndkVersionIsNotSet(t *testing.T) { } func TestVndkDepError(t *testing.T) { + t.Parallel() // Check whether an error is emitted when a VNDK lib depends on a system lib. testCcError(t, "dependency \".*\" of \".*\" missing variant", ` cc_library { @@ -842,6 +853,7 @@ func TestVndkDepError(t *testing.T) { } func TestDoubleLoadbleDep(t *testing.T) { + t.Parallel() // okay to link : LLNDK -> double_loadable VNDK testCc(t, ` cc_library { @@ -947,6 +959,7 @@ func TestDoubleLoadbleDep(t *testing.T) { } func TestVendorSnapshotCapture(t *testing.T) { + t.Parallel() bp := ` cc_library { name: "libvndk", @@ -1080,6 +1093,7 @@ func TestVendorSnapshotCapture(t *testing.T) { } func TestVendorSnapshotUse(t *testing.T) { + t.Parallel() frameworkBp := ` cc_library { name: "libvndk", @@ -1289,6 +1303,7 @@ func TestVendorSnapshotUse(t *testing.T) { } func TestVendorSnapshotSanitizer(t *testing.T) { + t.Parallel() bp := ` vendor_snapshot_static { name: "libsnapshot", @@ -1329,6 +1344,7 @@ func assertExcludeFromVendorSnapshotIs(t *testing.T, c *Module, expected bool) { } func TestVendorSnapshotExclude(t *testing.T) { + t.Parallel() // This test verifies that the exclude_from_vendor_snapshot property // makes its way from the Android.bp source file into the module data @@ -1436,6 +1452,7 @@ func TestVendorSnapshotExclude(t *testing.T) { } func TestVendorSnapshotExcludeInVendorProprietaryPathErrors(t *testing.T) { + t.Parallel() // This test verifies that using the exclude_from_vendor_snapshot // property on a module in a vendor proprietary path generates an @@ -1476,6 +1493,7 @@ func TestVendorSnapshotExcludeInVendorProprietaryPathErrors(t *testing.T) { } func TestVendorSnapshotExcludeWithVendorAvailable(t *testing.T) { + t.Parallel() // This test verifies that using the exclude_from_vendor_snapshot // property on a module that is vendor available generates an error. A @@ -1519,6 +1537,7 @@ func TestVendorSnapshotExcludeWithVendorAvailable(t *testing.T) { } func TestDoubleLoadableDepError(t *testing.T) { + t.Parallel() // Check whether an error is emitted when a LLNDK depends on a non-double_loadable VNDK lib. testCcError(t, "module \".*\" variant \".*\": link.* \".*\" which is not LL-NDK, VNDK-SP, .*double_loadable", ` cc_library { @@ -1639,6 +1658,7 @@ func TestDoubleLoadableDepError(t *testing.T) { } func TestVndkExt(t *testing.T) { + t.Parallel() // This test checks the VNDK-Ext properties. bp := ` cc_library { @@ -1721,6 +1741,7 @@ func TestVndkExt(t *testing.T) { } func TestVndkExtWithoutBoardVndkVersion(t *testing.T) { + t.Parallel() // This test checks the VNDK-Ext properties when BOARD_VNDK_VERSION is not set. ctx := testCcNoVndk(t, ` cc_library { @@ -1751,6 +1772,7 @@ func TestVndkExtWithoutBoardVndkVersion(t *testing.T) { } func TestVndkExtWithoutProductVndkVersion(t *testing.T) { + t.Parallel() // This test checks the VNDK-Ext properties when PRODUCT_PRODUCT_VNDK_VERSION is not set. ctx := testCc(t, ` cc_library { @@ -1781,6 +1803,7 @@ func TestVndkExtWithoutProductVndkVersion(t *testing.T) { } func TestVndkExtError(t *testing.T) { + t.Parallel() // This test ensures an error is emitted in ill-formed vndk-ext definition. testCcError(t, "must set `vendor: true` or `product_specific: true` to set `extends: \".*\"`", ` cc_library { @@ -1866,6 +1889,7 @@ func TestVndkExtError(t *testing.T) { } func TestVndkExtInconsistentSupportSystemProcessError(t *testing.T) { + t.Parallel() // This test ensures an error is emitted for inconsistent support_system_process. testCcError(t, "module \".*\" with mismatched support_system_process", ` cc_library { @@ -1913,6 +1937,7 @@ func TestVndkExtInconsistentSupportSystemProcessError(t *testing.T) { } func TestVndkExtVendorAvailableFalseError(t *testing.T) { + t.Parallel() // This test ensures an error is emitted when a VNDK-Ext library extends a VNDK library // with `vendor_available: false`. testCcError(t, "`extends` refers module \".*\" which does not have `vendor_available: true`", ` @@ -1959,6 +1984,7 @@ func TestVndkExtVendorAvailableFalseError(t *testing.T) { } func TestVendorModuleUseVndkExt(t *testing.T) { + t.Parallel() // This test ensures a vendor module can depend on a VNDK-Ext library. testCc(t, ` cc_library { @@ -2011,6 +2037,7 @@ func TestVendorModuleUseVndkExt(t *testing.T) { } func TestVndkExtUseVendorLib(t *testing.T) { + t.Parallel() // This test ensures a VNDK-Ext library can depend on a vendor library. testCc(t, ` cc_library { @@ -2073,6 +2100,7 @@ func TestVndkExtUseVendorLib(t *testing.T) { } func TestProductVndkExtDependency(t *testing.T) { + t.Parallel() bp := ` cc_library { name: "libvndk", @@ -2138,6 +2166,7 @@ func TestProductVndkExtDependency(t *testing.T) { } func TestVndkSpExtUseVndkError(t *testing.T) { + t.Parallel() // This test ensures an error is emitted if a VNDK-SP-Ext library depends on a VNDK // library. testCcError(t, "module \".*\" variant \".*\": \\(.*\\) should not link to \".*\"", ` @@ -2220,6 +2249,7 @@ func TestVndkSpExtUseVndkError(t *testing.T) { } func TestVndkUseVndkExtError(t *testing.T) { + t.Parallel() // This test ensures an error is emitted if a VNDK/VNDK-SP library depends on a // VNDK-Ext/VNDK-SP-Ext library. testCcError(t, "dependency \".*\" of \".*\" missing variant", ` @@ -2359,6 +2389,7 @@ func TestVndkUseVndkExtError(t *testing.T) { } func TestEnforceProductVndkVersion(t *testing.T) { + t.Parallel() bp := ` cc_library { name: "libllndk", @@ -2433,6 +2464,7 @@ func TestEnforceProductVndkVersion(t *testing.T) { } func TestEnforceProductVndkVersionErrors(t *testing.T) { + t.Parallel() testCcErrorProductVndk(t, "dependency \".*\" of \".*\" missing variant:\n.*image:product.VER", ` cc_library { name: "libprod", @@ -2513,6 +2545,7 @@ func TestEnforceProductVndkVersionErrors(t *testing.T) { } func TestMakeLinkType(t *testing.T) { + t.Parallel() bp := ` cc_library { name: "libvndk", @@ -2706,6 +2739,7 @@ var splitListForSizeTestCases = []struct { } func TestSplitListForSize(t *testing.T) { + t.Parallel() for _, testCase := range splitListForSizeTestCases { out, _ := splitListForSize(android.PathsForTesting(testCase.in...), testCase.size) @@ -2891,6 +2925,7 @@ func parseModuleDeps(text string) (modulesInOrder []android.Path, allDeps map[an } func TestLinkReordering(t *testing.T) { + t.Parallel() for _, testCase := range staticLinkDepOrderTestCases { errs := []string{} @@ -2953,6 +2988,7 @@ func getOutputPaths(ctx *android.TestContext, variant string, moduleNames []stri } func TestStaticLibDepReordering(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_library { name: "a", @@ -2991,6 +3027,7 @@ func TestStaticLibDepReordering(t *testing.T) { } func TestStaticLibDepReorderingWithShared(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_library { name: "a", @@ -3037,6 +3074,7 @@ func checkEquals(t *testing.T, message string, expected, actual interface{}) { } func TestLlndkLibrary(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_library { name: "libllndk", @@ -3065,6 +3103,7 @@ func TestLlndkLibrary(t *testing.T) { } func TestLlndkHeaders(t *testing.T) { + t.Parallel() ctx := testCc(t, ` llndk_headers { name: "libllndk_headers", @@ -3158,6 +3197,7 @@ const runtimeLibAndroidBp = ` ` func TestRuntimeLibs(t *testing.T) { + t.Parallel() ctx := testCc(t, runtimeLibAndroidBp) // runtime_libs for core variants use the module names without suffixes. @@ -3181,6 +3221,7 @@ func TestRuntimeLibs(t *testing.T) { } func TestExcludeRuntimeLibs(t *testing.T) { + t.Parallel() ctx := testCc(t, runtimeLibAndroidBp) variant := "android_arm64_armv8-a_shared" @@ -3193,6 +3234,7 @@ func TestExcludeRuntimeLibs(t *testing.T) { } func TestRuntimeLibsNoVndk(t *testing.T) { + t.Parallel() ctx := testCcNoVndk(t, runtimeLibAndroidBp) // If DeviceVndkVersion is not defined, then runtime_libs are copied as-is. @@ -3230,6 +3272,7 @@ const staticLibAndroidBp = ` ` func TestStaticLibDepExport(t *testing.T) { + t.Parallel() ctx := testCc(t, staticLibAndroidBp) // Check the shared version of lib2. @@ -3317,6 +3360,7 @@ func (ctx *mockContext) PropertyErrorf(property, format string, args ...interfac } func TestCompilerFlags(t *testing.T) { + t.Parallel() for _, testCase := range compilerFlagsTestCases { ctx := &mockContext{result: true} CheckBadCompilerFlags(ctx, "", []string{testCase.in}) @@ -3330,6 +3374,7 @@ func TestCompilerFlags(t *testing.T) { } func TestVendorPublicLibraries(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_library_headers { name: "libvendorpublic_headers", @@ -3396,6 +3441,7 @@ func TestVendorPublicLibraries(t *testing.T) { } func TestRecovery(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_library_shared { name: "librecovery", @@ -3431,6 +3477,7 @@ func TestRecovery(t *testing.T) { } func TestDataLibsPrebuiltSharedTestLibrary(t *testing.T) { + t.Parallel() bp := ` cc_prebuilt_test_library_shared { name: "test_lib", @@ -3477,6 +3524,7 @@ func TestDataLibsPrebuiltSharedTestLibrary(t *testing.T) { } func TestVersionedStubs(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_library_shared { name: "libFoo", @@ -3541,6 +3589,7 @@ func TestVersionedStubs(t *testing.T) { } func TestVersioningMacro(t *testing.T) { + t.Parallel() for _, tc := range []struct{ moduleName, expected string }{ {"libc", "__LIBC_API__"}, {"libfoo", "__LIBFOO_API__"}, @@ -3553,6 +3602,7 @@ func TestVersioningMacro(t *testing.T) { } func TestStaticExecutable(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_binary { name: "static_test", @@ -3578,6 +3628,7 @@ func TestStaticExecutable(t *testing.T) { } func TestStaticDepsOrderWithStubs(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_binary { name: "mybin", @@ -3618,6 +3669,7 @@ func TestStaticDepsOrderWithStubs(t *testing.T) { } func TestErrorsIfAModuleDependsOnDisabled(t *testing.T) { + t.Parallel() testCcError(t, `module "libA" .* depends on disabled module "libB"`, ` cc_library { name: "libA", @@ -3638,6 +3690,7 @@ func TestErrorsIfAModuleDependsOnDisabled(t *testing.T) { // Simple smoke test for the cc_fuzz target that ensures the rule compiles // correctly. func TestFuzzTarget(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_fuzz { name: "fuzz_smoke_test", @@ -3649,6 +3702,7 @@ func TestFuzzTarget(t *testing.T) { } func TestAidl(t *testing.T) { + t.Parallel() } func assertString(t *testing.T, got, expected string) { @@ -3679,6 +3733,7 @@ func assertMapKeys(t *testing.T, m map[string]string, expected []string) { } func TestDefaults(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_defaults { name: "defaults", @@ -3743,6 +3798,7 @@ func TestDefaults(t *testing.T) { } func TestProductVariableDefaults(t *testing.T) { + t.Parallel() bp := ` cc_defaults { name: "libfoo_defaults", diff --git a/cc/compiler_test.go b/cc/compiler_test.go index c301388ae..cf553bdc6 100644 --- a/cc/compiler_test.go +++ b/cc/compiler_test.go @@ -19,6 +19,7 @@ import ( ) func TestIsThirdParty(t *testing.T) { + t.Parallel() shouldFail := []string{ "external/foo/", "vendor/bar/", diff --git a/cc/config/tidy_test.go b/cc/config/tidy_test.go index 4ed8b231d..3ea2f6b7d 100644 --- a/cc/config/tidy_test.go +++ b/cc/config/tidy_test.go @@ -19,6 +19,7 @@ import ( ) func TestTidyChecksForDir(t *testing.T) { + t.Parallel() testCases := []struct { input string expected string diff --git a/cc/gen_test.go b/cc/gen_test.go index 4b9a36e6b..ee89873a0 100644 --- a/cc/gen_test.go +++ b/cc/gen_test.go @@ -21,6 +21,7 @@ import ( ) func TestGen(t *testing.T) { + t.Parallel() t.Run("simple", func(t *testing.T) { ctx := testCc(t, ` cc_library_shared { diff --git a/cc/genrule_test.go b/cc/genrule_test.go index a366f765c..6623d20fb 100644 --- a/cc/genrule_test.go +++ b/cc/genrule_test.go @@ -30,6 +30,7 @@ func testGenruleContext(config android.Config) *android.TestContext { } func TestArchGenruleCmd(t *testing.T) { + t.Parallel() fs := map[string][]byte{ "tool": nil, "foo": nil, @@ -78,6 +79,7 @@ func TestArchGenruleCmd(t *testing.T) { } func TestLibraryGenruleCmd(t *testing.T) { + t.Parallel() bp := ` cc_library { name: "libboth", diff --git a/cc/library_headers_test.go b/cc/library_headers_test.go index 564ef61fb..db42d25c9 100644 --- a/cc/library_headers_test.go +++ b/cc/library_headers_test.go @@ -20,6 +20,7 @@ import ( ) func TestLibraryHeaders(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_library_headers { name: "headers", @@ -41,6 +42,7 @@ func TestLibraryHeaders(t *testing.T) { } func TestPrebuiltLibraryHeaders(t *testing.T) { + t.Parallel() ctx := testCc(t, ` cc_prebuilt_library_headers { name: "headers", diff --git a/cc/library_test.go b/cc/library_test.go index 49838b48e..d42f07332 100644 --- a/cc/library_test.go +++ b/cc/library_test.go @@ -22,6 +22,7 @@ import ( ) func TestLibraryReuse(t *testing.T) { + t.Parallel() t.Run("simple", func(t *testing.T) { ctx := testCc(t, ` cc_library { @@ -190,6 +191,7 @@ func TestLibraryReuse(t *testing.T) { } func TestStubsVersions(t *testing.T) { + t.Parallel() bp := ` cc_library { name: "libfoo", @@ -213,6 +215,7 @@ func TestStubsVersions(t *testing.T) { } func TestStubsVersions_NotSorted(t *testing.T) { + t.Parallel() bp := ` cc_library { name: "libfoo", @@ -228,6 +231,7 @@ func TestStubsVersions_NotSorted(t *testing.T) { } func TestStubsVersions_ParseError(t *testing.T) { + t.Parallel() bp := ` cc_library { name: "libfoo", diff --git a/cc/object_test.go b/cc/object_test.go index 6ff8a00c3..a00604463 100644 --- a/cc/object_test.go +++ b/cc/object_test.go @@ -19,6 +19,7 @@ import ( ) func TestLinkerScript(t *testing.T) { + t.Parallel() t.Run("script", func(t *testing.T) { testCc(t, ` cc_object { diff --git a/cc/prebuilt_test.go b/cc/prebuilt_test.go index 52416ac3b..afae261dc 100644 --- a/cc/prebuilt_test.go +++ b/cc/prebuilt_test.go @@ -43,6 +43,7 @@ func testPrebuilt(t *testing.T, bp string, fs map[string][]byte) *android.TestCo } func TestPrebuilt(t *testing.T) { + t.Parallel() bp := ` cc_library { name: "liba", @@ -172,6 +173,7 @@ func TestPrebuilt(t *testing.T) { } func TestPrebuiltLibraryShared(t *testing.T) { + t.Parallel() ctx := testPrebuilt(t, ` cc_prebuilt_library_shared { name: "libtest", @@ -189,6 +191,7 @@ func TestPrebuiltLibraryShared(t *testing.T) { } func TestPrebuiltLibraryStatic(t *testing.T) { + t.Parallel() ctx := testPrebuilt(t, ` cc_prebuilt_library_static { name: "libtest", @@ -203,6 +206,7 @@ func TestPrebuiltLibraryStatic(t *testing.T) { } func TestPrebuiltLibrary(t *testing.T) { + t.Parallel() ctx := testPrebuilt(t, ` cc_prebuilt_library { name: "libtest", @@ -229,6 +233,7 @@ func TestPrebuiltLibrary(t *testing.T) { } func TestPrebuiltLibraryStem(t *testing.T) { + t.Parallel() ctx := testPrebuilt(t, ` cc_prebuilt_library { name: "libfoo", @@ -256,6 +261,7 @@ func TestPrebuiltLibraryStem(t *testing.T) { } func TestPrebuiltLibrarySharedStem(t *testing.T) { + t.Parallel() ctx := testPrebuilt(t, ` cc_prebuilt_library_shared { name: "libfoo", @@ -274,6 +280,7 @@ func TestPrebuiltLibrarySharedStem(t *testing.T) { } func TestPrebuiltSymlinkedHostBinary(t *testing.T) { + t.Parallel() if android.BuildOs != android.Linux { t.Skipf("Skipping host prebuilt testing that is only supported on %s not %s", android.Linux, android.BuildOs) } diff --git a/cc/proto_test.go b/cc/proto_test.go index f8bbd2643..2d059ebd1 100644 --- a/cc/proto_test.go +++ b/cc/proto_test.go @@ -22,6 +22,7 @@ import ( ) func TestProto(t *testing.T) { + t.Parallel() t.Run("simple", func(t *testing.T) { ctx := testCc(t, ` cc_library_shared { diff --git a/cc/sdk_test.go b/cc/sdk_test.go index 5a3c181dc..7b9867c1b 100644 --- a/cc/sdk_test.go +++ b/cc/sdk_test.go @@ -21,6 +21,7 @@ import ( ) func TestSdkMutator(t *testing.T) { + t.Parallel() bp := ` cc_library { name: "libsdk", diff --git a/cc/test_data_test.go b/cc/test_data_test.go index ae59e2f0f..7908aa089 100644 --- a/cc/test_data_test.go +++ b/cc/test_data_test.go @@ -109,6 +109,7 @@ var testDataTests = []struct { } func TestDataTests(t *testing.T) { + t.Parallel() buildDir, err := ioutil.TempDir("", "soong_test_test") if err != nil { t.Fatal(err) diff --git a/cmd/diff_target_files/allow_list_test.go b/cmd/diff_target_files/allow_list_test.go index 8410e5acc..9f8965767 100644 --- a/cmd/diff_target_files/allow_list_test.go +++ b/cmd/diff_target_files/allow_list_test.go @@ -58,6 +58,7 @@ c var f2 = bytesToZipArtifactFile("dir/f2", nil) func Test_applyAllowLists(t *testing.T) { + t.Parallel() type args struct { diff zipDiff allowLists []allowList diff --git a/cmd/diff_target_files/compare_test.go b/cmd/diff_target_files/compare_test.go index 9d3f8a547..762124647 100644 --- a/cmd/diff_target_files/compare_test.go +++ b/cmd/diff_target_files/compare_test.go @@ -21,6 +21,7 @@ import ( ) func TestDiffTargetFilesLists(t *testing.T) { + t.Parallel() zipArtifactFile := func(name string, crc32 uint32, size uint64) *ZipArtifactFile { return &ZipArtifactFile{ File: &zip.File{ diff --git a/cmd/diff_target_files/glob_test.go b/cmd/diff_target_files/glob_test.go index 63df68d7b..f2c6c6a52 100644 --- a/cmd/diff_target_files/glob_test.go +++ b/cmd/diff_target_files/glob_test.go @@ -19,6 +19,7 @@ import ( ) func TestMatch(t *testing.T) { + t.Parallel() testCases := []struct { pattern, name string match bool diff --git a/cmd/extract_apks/main_test.go b/cmd/extract_apks/main_test.go index c3e6a2def..40f3882ba 100644 --- a/cmd/extract_apks/main_test.go +++ b/cmd/extract_apks/main_test.go @@ -37,6 +37,7 @@ type testDesc struct { } func TestSelectApks_ApkSet(t *testing.T) { + t.Parallel() testCases := []testDesc{ { protoText: ` @@ -266,6 +267,7 @@ variant { } func TestSelectApks_ApexSet(t *testing.T) { + t.Parallel() testCases := []testDesc{ { protoText: ` @@ -442,6 +444,7 @@ type testCaseWriteApks struct { } func TestWriteApks(t *testing.T) { + t.Parallel() testCases := []testCaseWriteApks{ { name: "splits", diff --git a/cmd/extract_linker/main_test.go b/cmd/extract_linker/main_test.go index 6ac4ec60e..4e1ed02d1 100644 --- a/cmd/extract_linker/main_test.go +++ b/cmd/extract_linker/main_test.go @@ -51,6 +51,7 @@ var bytesToAsmTestCases = []struct { } func TestBytesToAsm(t *testing.T) { + t.Parallel() for _, testcase := range bytesToAsmTestCases { t.Run(testcase.name, func(t *testing.T) { buf := bytes.Buffer{} diff --git a/cmd/host_bionic_inject/host_bionic_inject_test.go b/cmd/host_bionic_inject/host_bionic_inject_test.go index b415b341a..ef5120be9 100644 --- a/cmd/host_bionic_inject/host_bionic_inject_test.go +++ b/cmd/host_bionic_inject/host_bionic_inject_test.go @@ -100,6 +100,7 @@ func linkerOffset() []elf.Symbol { } func TestCheckLinker(t *testing.T) { + t.Parallel() cases := []struct { name string err error diff --git a/cmd/javac_wrapper/javac_wrapper_test.go b/cmd/javac_wrapper/javac_wrapper_test.go index ad230012e..a1812fbbb 100644 --- a/cmd/javac_wrapper/javac_wrapper_test.go +++ b/cmd/javac_wrapper/javac_wrapper_test.go @@ -93,6 +93,7 @@ warning: [options] bootstrap class path not set in conjunction with -source 1.9\ } func TestJavacColorize(t *testing.T) { + t.Parallel() for i, test := range testCases { t.Run(strconv.Itoa(i), func(t *testing.T) { buf := new(bytes.Buffer) @@ -110,6 +111,7 @@ func TestJavacColorize(t *testing.T) { } func TestSubprocess(t *testing.T) { + t.Parallel() t.Run("failure", func(t *testing.T) { exitCode, err := Main(ioutil.Discard, "test", []string{"sh", "-c", "exit 9"}) if err != nil { diff --git a/cmd/merge_zips/merge_zips_test.go b/cmd/merge_zips/merge_zips_test.go index cb5843607..78ffb7694 100644 --- a/cmd/merge_zips/merge_zips_test.go +++ b/cmd/merge_zips/merge_zips_test.go @@ -85,6 +85,7 @@ func (tiz *testInputZip) IsOpen() bool { } func TestMergeZips(t *testing.T) { + t.Parallel() testCases := []struct { name string in [][]testZipEntry @@ -361,6 +362,7 @@ func (diz *DummyInpuZip) IsOpen() bool { } func TestInputZipsManager(t *testing.T) { + t.Parallel() const nInputZips = 20 const nMaxOpenZips = 10 izm := NewInputZipsManager(20, 10) diff --git a/cmd/multiproduct_kati/main_test.go b/cmd/multiproduct_kati/main_test.go index 263a124fb..e3ddfd78e 100644 --- a/cmd/multiproduct_kati/main_test.go +++ b/cmd/multiproduct_kati/main_test.go @@ -21,6 +21,7 @@ import ( ) func TestSplitList(t *testing.T) { + t.Parallel() testcases := []struct { inputCount int shardCount int diff --git a/cmd/path_interposer/main_test.go b/cmd/path_interposer/main_test.go index c89d6231f..3f1a5e119 100644 --- a/cmd/path_interposer/main_test.go +++ b/cmd/path_interposer/main_test.go @@ -61,6 +61,7 @@ func setup(t *testing.T) string { } func TestInterposer(t *testing.T) { + t.Parallel() interposer := setup(t) logConfig := func(name string) paths.PathConfig { @@ -180,6 +181,7 @@ func TestInterposer(t *testing.T) { } func TestMissingPath(t *testing.T) { + t.Parallel() interposer := setup(t) err := os.Remove(interposer + "_origpath") if err != nil { diff --git a/cmd/soong_build/bazel_overlay_test.go b/cmd/soong_build/bazel_overlay_test.go index f0c851521..ceb342f3e 100644 --- a/cmd/soong_build/bazel_overlay_test.go +++ b/cmd/soong_build/bazel_overlay_test.go @@ -64,6 +64,7 @@ func customModuleFactory() android.Module { } func TestGenerateBazelOverlayFromBlueprint(t *testing.T) { + t.Parallel() testCases := []struct { bp string expectedBazelTarget string diff --git a/cmd/zip2zip/zip2zip_test.go b/cmd/zip2zip/zip2zip_test.go index 2c4e00569..e6ac0bf5c 100644 --- a/cmd/zip2zip/zip2zip_test.go +++ b/cmd/zip2zip/zip2zip_test.go @@ -416,6 +416,7 @@ func errorString(e error) string { } func TestZip2Zip(t *testing.T) { + t.Parallel() for _, testCase := range testCases { t.Run(testCase.name, func(t *testing.T) { inputBuf := &bytes.Buffer{} @@ -472,6 +473,7 @@ func TestZip2Zip(t *testing.T) { } func TestConstantPartOfPattern(t *testing.T) { + t.Parallel() testCases := []struct{ in, out string }{ { in: "", diff --git a/dexpreopt/dexpreopt_test.go b/dexpreopt/dexpreopt_test.go index ec3154903..1fbd7f10b 100644 --- a/dexpreopt/dexpreopt_test.go +++ b/dexpreopt/dexpreopt_test.go @@ -61,6 +61,7 @@ func testModuleConfig(ctx android.PathContext, name, partition string) *ModuleCo } func TestDexPreopt(t *testing.T) { + t.Parallel() config := android.TestConfig("out", nil, "", nil) ctx := android.PathContextForTesting(config) globalSoong := GlobalSoongConfigForTests(config) @@ -83,6 +84,7 @@ func TestDexPreopt(t *testing.T) { } func TestDexPreoptSystemOther(t *testing.T) { + t.Parallel() config := android.TestConfig("out", nil, "", nil) ctx := android.PathContextForTesting(config) globalSoong := GlobalSoongConfigForTests(config) @@ -143,6 +145,7 @@ func TestDexPreoptSystemOther(t *testing.T) { } func TestDexPreoptProfile(t *testing.T) { + t.Parallel() config := android.TestConfig("out", nil, "", nil) ctx := android.PathContextForTesting(config) globalSoong := GlobalSoongConfigForTests(config) diff --git a/etc/prebuilt_etc_test.go b/etc/prebuilt_etc_test.go index 8fc36c274..528c484f2 100644 --- a/etc/prebuilt_etc_test.go +++ b/etc/prebuilt_etc_test.go @@ -102,6 +102,7 @@ func testPrebuiltEtcError(t *testing.T, pattern, bp string) { t.Fatalf("missing expected error %q (0 errors are returned)", pattern) } func TestPrebuiltEtcVariants(t *testing.T) { + t.Parallel() ctx, _ := testPrebuiltEtc(t, ` prebuilt_etc { name: "foo.conf", @@ -136,6 +137,7 @@ func TestPrebuiltEtcVariants(t *testing.T) { } func TestPrebuiltEtcOutputPath(t *testing.T) { + t.Parallel() ctx, _ := testPrebuiltEtc(t, ` prebuilt_etc { name: "foo.conf", @@ -151,6 +153,7 @@ func TestPrebuiltEtcOutputPath(t *testing.T) { } func TestPrebuiltEtcGlob(t *testing.T) { + t.Parallel() ctx, _ := testPrebuiltEtc(t, ` prebuilt_etc { name: "my_foo", @@ -175,6 +178,7 @@ func TestPrebuiltEtcGlob(t *testing.T) { } func TestPrebuiltEtcAndroidMk(t *testing.T) { + t.Parallel() ctx, config := testPrebuiltEtc(t, ` prebuilt_etc { name: "foo", @@ -211,6 +215,7 @@ func TestPrebuiltEtcAndroidMk(t *testing.T) { } func TestPrebuiltEtcRelativeInstallPathInstallDirPath(t *testing.T) { + t.Parallel() ctx, _ := testPrebuiltEtc(t, ` prebuilt_etc { name: "foo.conf", @@ -227,6 +232,7 @@ func TestPrebuiltEtcRelativeInstallPathInstallDirPath(t *testing.T) { } func TestPrebuiltEtcCannotSetRelativeInstallPathAndSubDir(t *testing.T) { + t.Parallel() testPrebuiltEtcError(t, "relative_install_path is set. Cannot set sub_dir", ` prebuilt_etc { name: "foo.conf", @@ -238,6 +244,7 @@ func TestPrebuiltEtcCannotSetRelativeInstallPathAndSubDir(t *testing.T) { } func TestPrebuiltEtcHost(t *testing.T) { + t.Parallel() ctx, _ := testPrebuiltEtc(t, ` prebuilt_etc_host { name: "foo.conf", @@ -253,6 +260,7 @@ func TestPrebuiltEtcHost(t *testing.T) { } func TestPrebuiltUserShareInstallDirPath(t *testing.T) { + t.Parallel() ctx, _ := testPrebuiltEtc(t, ` prebuilt_usr_share { name: "foo.conf", @@ -269,6 +277,7 @@ func TestPrebuiltUserShareInstallDirPath(t *testing.T) { } func TestPrebuiltUserShareHostInstallDirPath(t *testing.T) { + t.Parallel() ctx, config := testPrebuiltEtc(t, ` prebuilt_usr_share_host { name: "foo.conf", @@ -286,6 +295,7 @@ func TestPrebuiltUserShareHostInstallDirPath(t *testing.T) { } func TestPrebuiltFontInstallDirPath(t *testing.T) { + t.Parallel() ctx, _ := testPrebuiltEtc(t, ` prebuilt_font { name: "foo.conf", @@ -301,6 +311,7 @@ func TestPrebuiltFontInstallDirPath(t *testing.T) { } func TestPrebuiltFirmwareDirPath(t *testing.T) { + t.Parallel() targetPath := buildDir + "/target/product/test_device" tests := []struct { description string @@ -337,6 +348,7 @@ func TestPrebuiltFirmwareDirPath(t *testing.T) { } func TestPrebuiltDSPDirPath(t *testing.T) { + t.Parallel() targetPath := filepath.Join(buildDir, "/target/product/test_device") tests := []struct { description string diff --git a/finder/finder_test.go b/finder/finder_test.go index 88b0c058b..029c80f13 100644 --- a/finder/finder_test.go +++ b/finder/finder_test.go @@ -122,6 +122,7 @@ func testAgainstSeveralThreadcounts(t *testing.T, tester func(t *testing.T, numT // end of utils, start of individual tests func TestSingleFile(t *testing.T) { + t.Parallel() runSimpleTest(t, []string{"findme.txt"}, []string{"findme.txt"}, @@ -129,6 +130,7 @@ func TestSingleFile(t *testing.T) { } func TestIncludeFiles(t *testing.T) { + t.Parallel() runSimpleTest(t, []string{"findme.txt", "skipme.txt"}, []string{"findme.txt"}, @@ -136,6 +138,7 @@ func TestIncludeFiles(t *testing.T) { } func TestNestedDirectories(t *testing.T) { + t.Parallel() runSimpleTest(t, []string{"findme.txt", "skipme.txt", "subdir/findme.txt", "subdir/skipme.txt"}, []string{"findme.txt", "subdir/findme.txt"}, @@ -143,6 +146,7 @@ func TestNestedDirectories(t *testing.T) { } func TestEmptyDirectory(t *testing.T) { + t.Parallel() runSimpleTest(t, []string{}, []string{}, @@ -150,6 +154,7 @@ func TestEmptyDirectory(t *testing.T) { } func TestEmptyPath(t *testing.T) { + t.Parallel() filesystem := newFs() root := "/tmp" fs.Create(t, filepath.Join(root, "findme.txt"), filesystem) @@ -170,6 +175,7 @@ func TestEmptyPath(t *testing.T) { } func TestFilesystemRoot(t *testing.T) { + t.Parallel() testWithNumThreads := func(t *testing.T, numThreads int) { filesystem := newFs() @@ -197,6 +203,7 @@ func TestFilesystemRoot(t *testing.T) { } func TestNonexistentDir(t *testing.T) { + t.Parallel() filesystem := newFs() fs.Create(t, "/tmp/findme.txt", filesystem) @@ -215,6 +222,7 @@ func TestNonexistentDir(t *testing.T) { } func TestExcludeDirs(t *testing.T) { + t.Parallel() filesystem := newFs() fs.Create(t, "/tmp/exclude/findme.txt", filesystem) fs.Create(t, "/tmp/exclude/subdir/findme.txt", filesystem) @@ -243,6 +251,7 @@ func TestExcludeDirs(t *testing.T) { } func TestPruneFiles(t *testing.T) { + t.Parallel() filesystem := newFs() fs.Create(t, "/tmp/out/findme.txt", filesystem) fs.Create(t, "/tmp/out/.ignore-out-dir", filesystem) @@ -275,6 +284,7 @@ func TestPruneFiles(t *testing.T) { // TestRootDir tests that the value of RootDirs is used // tests of the filesystem root are in TestFilesystemRoot func TestRootDir(t *testing.T) { + t.Parallel() filesystem := newFs() fs.Create(t, "/tmp/a/findme.txt", filesystem) fs.Create(t, "/tmp/a/subdir/findme.txt", filesystem) @@ -299,6 +309,7 @@ func TestRootDir(t *testing.T) { } func TestUncachedDir(t *testing.T) { + t.Parallel() filesystem := newFs() fs.Create(t, "/tmp/a/findme.txt", filesystem) fs.Create(t, "/tmp/a/subdir/findme.txt", filesystem) @@ -326,6 +337,7 @@ func TestUncachedDir(t *testing.T) { } func TestSearchingForFilesExcludedFromCache(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/findme.txt", filesystem) @@ -353,6 +365,7 @@ func TestSearchingForFilesExcludedFromCache(t *testing.T) { } func TestRelativeFilePaths(t *testing.T) { + t.Parallel() filesystem := newFs() fs.Create(t, "/tmp/ignore/hi.txt", filesystem) @@ -397,6 +410,7 @@ func TestRelativeFilePaths(t *testing.T) { // have to run this test with the race-detector (`go test -race src/android/soong/finder/*.go`) // for there to be much chance of the test actually detecting any error that may be present func TestRootDirsContainedInOtherRootDirs(t *testing.T) { + t.Parallel() filesystem := newFs() fs.Create(t, "/tmp/a/b/c/d/e/f/g/h/i/j/findme.txt", filesystem) @@ -418,6 +432,7 @@ func TestRootDirsContainedInOtherRootDirs(t *testing.T) { } func TestFindFirst(t *testing.T) { + t.Parallel() filesystem := newFs() fs.Create(t, "/tmp/a/hi.txt", filesystem) fs.Create(t, "/tmp/b/hi.txt", filesystem) @@ -442,6 +457,7 @@ func TestFindFirst(t *testing.T) { } func TestConcurrentFindSameDirectory(t *testing.T) { + t.Parallel() testWithNumThreads := func(t *testing.T, numThreads int) { filesystem := newFs() @@ -493,6 +509,7 @@ func TestConcurrentFindSameDirectory(t *testing.T) { } func TestConcurrentFindDifferentDirectories(t *testing.T) { + t.Parallel() filesystem := newFs() // create a bunch of files and directories @@ -556,6 +573,7 @@ func TestConcurrentFindDifferentDirectories(t *testing.T) { } func TestStrangelyFormattedPaths(t *testing.T) { + t.Parallel() filesystem := newFs() fs.Create(t, "/tmp/findme.txt", filesystem) @@ -581,6 +599,7 @@ func TestStrangelyFormattedPaths(t *testing.T) { } func TestCorruptedCacheHeader(t *testing.T) { + t.Parallel() filesystem := newFs() fs.Create(t, "/tmp/findme.txt", filesystem) @@ -605,6 +624,7 @@ func TestCorruptedCacheHeader(t *testing.T) { } func TestCanUseCache(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/findme.txt", filesystem) @@ -651,6 +671,7 @@ func TestCanUseCache(t *testing.T) { } func TestCorruptedCacheBody(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/findme.txt", filesystem) @@ -715,6 +736,7 @@ func TestCorruptedCacheBody(t *testing.T) { } func TestStatCalls(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/a/findme.txt", filesystem) @@ -738,6 +760,7 @@ func TestStatCalls(t *testing.T) { } func TestFileAdded(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/ignoreme.txt", filesystem) @@ -780,6 +803,7 @@ func TestFileAdded(t *testing.T) { } func TestDirectoriesAdded(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/ignoreme.txt", filesystem) @@ -824,6 +848,7 @@ func TestDirectoriesAdded(t *testing.T) { } func TestDirectoryAndSubdirectoryBothUpdated(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/hi1.txt", filesystem) @@ -864,6 +889,7 @@ func TestDirectoryAndSubdirectoryBothUpdated(t *testing.T) { } func TestFileDeleted(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/ignoreme.txt", filesystem) @@ -904,6 +930,7 @@ func TestFileDeleted(t *testing.T) { } func TestDirectoriesDeleted(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/findme.txt", filesystem) @@ -959,6 +986,7 @@ func TestDirectoriesDeleted(t *testing.T) { } func TestDirectoriesMoved(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/findme.txt", filesystem) @@ -1017,6 +1045,7 @@ func TestDirectoriesMoved(t *testing.T) { } func TestDirectoriesSwapped(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/findme.txt", filesystem) @@ -1132,6 +1161,7 @@ func runFsReplacementTest(t *testing.T, fs1 *fs.MockFs, fs2 *fs.MockFs) { } func TestChangeOfDevice(t *testing.T) { + t.Parallel() fs1 := newFs() // not as fine-grained mounting controls as a real filesystem, but should be adequate fs1.SetDeviceNumber(0) @@ -1143,6 +1173,7 @@ func TestChangeOfDevice(t *testing.T) { } func TestChangeOfUserOrHost(t *testing.T) { + t.Parallel() fs1 := newFs() fs1.SetViewId("me@here") @@ -1153,6 +1184,7 @@ func TestChangeOfUserOrHost(t *testing.T) { } func TestConsistentCacheOrdering(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() for i := 0; i < 5; i++ { @@ -1205,6 +1237,7 @@ func TestConsistentCacheOrdering(t *testing.T) { } func TestNumSyscallsOfSecondFind(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/findme.txt", filesystem) @@ -1235,6 +1268,7 @@ func TestNumSyscallsOfSecondFind(t *testing.T) { } func TestChangingParamsOfSecondFind(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/findme.txt", filesystem) @@ -1265,6 +1299,7 @@ func TestChangingParamsOfSecondFind(t *testing.T) { } func TestSymlinkPointingToFile(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/a/hi.txt", filesystem) @@ -1301,6 +1336,7 @@ func TestSymlinkPointingToFile(t *testing.T) { } func TestSymlinkPointingToDirectory(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/dir/hi.txt", filesystem) @@ -1335,6 +1371,7 @@ func TestSymlinkPointingToDirectory(t *testing.T) { // TestAddPruneFile confirms that adding a prune-file (into a directory for which we // already had a cache) causes the directory to be ignored func TestAddPruneFile(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/out/hi.txt", filesystem) @@ -1373,6 +1410,7 @@ func TestAddPruneFile(t *testing.T) { } func TestUpdatingDbIffChanged(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/a/hi.txt", filesystem) @@ -1432,6 +1470,7 @@ func TestUpdatingDbIffChanged(t *testing.T) { } func TestDirectoryNotPermitted(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/hi.txt", filesystem) @@ -1480,6 +1519,7 @@ func TestDirectoryNotPermitted(t *testing.T) { } func TestFileNotPermitted(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/hi.txt", filesystem) @@ -1502,6 +1542,7 @@ func TestFileNotPermitted(t *testing.T) { } func TestCacheEntryPathUnexpectedError(t *testing.T) { + t.Parallel() // setup filesystem filesystem := newFs() fs.Create(t, "/tmp/a/hi.txt", filesystem) diff --git a/finder/fs/fs_test.go b/finder/fs/fs_test.go index 22a4d7aca..5671bcfb5 100644 --- a/finder/fs/fs_test.go +++ b/finder/fs/fs_test.go @@ -20,6 +20,7 @@ import ( ) func TestMockFs_LstatStatSymlinks(t *testing.T) { + t.Parallel() // setup filesystem filesystem := NewMockFs(nil) Create(t, "/tmp/realdir/hi.txt", filesystem) diff --git a/finder/fs/readdir_test.go b/finder/fs/readdir_test.go index 24a6d1884..d133bba29 100644 --- a/finder/fs/readdir_test.go +++ b/finder/fs/readdir_test.go @@ -22,6 +22,7 @@ import ( ) func TestParseDirent(t *testing.T) { + t.Parallel() testCases := []struct { name string in []byte diff --git a/genrule/genrule_test.go b/genrule/genrule_test.go index 4b36600a6..66bb22130 100644 --- a/genrule/genrule_test.go +++ b/genrule/genrule_test.go @@ -125,6 +125,7 @@ func testConfig(bp string, fs map[string][]byte) android.Config { } func TestGenruleCmd(t *testing.T) { + t.Parallel() testcases := []struct { name string prop string @@ -503,6 +504,7 @@ func TestGenruleCmd(t *testing.T) { } func TestGenruleHashInputs(t *testing.T) { + t.Parallel() // The basic idea here is to verify that the sbox command (which is // in the Command field of the generate rule) contains a hash of the @@ -590,6 +592,7 @@ func TestGenruleHashInputs(t *testing.T) { } func TestGenSrcs(t *testing.T) { + t.Parallel() testcases := []struct { name string prop string @@ -682,6 +685,7 @@ func TestGenSrcs(t *testing.T) { } func TestGenruleDefaults(t *testing.T) { + t.Parallel() bp := ` genrule_defaults { name: "gen_defaults1", diff --git a/jar/jar_test.go b/jar/jar_test.go index c92011e12..f1c799b65 100644 --- a/jar/jar_test.go +++ b/jar/jar_test.go @@ -21,6 +21,7 @@ import ( ) func TestGetJavaPackage(t *testing.T) { + t.Parallel() type args struct { r io.Reader src string @@ -78,6 +79,7 @@ func TestGetJavaPackage(t *testing.T) { } func Test_javaIdentRune(t *testing.T) { + t.Parallel() // runes that should be valid anywhere in an identifier validAnywhere := []rune{ // letters, $, _ diff --git a/java/androidmk_test.go b/java/androidmk_test.go index 075b7aa6f..359d8d7c4 100644 --- a/java/androidmk_test.go +++ b/java/androidmk_test.go @@ -23,6 +23,7 @@ import ( ) func TestRequired(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` java_library { name: "foo", @@ -42,6 +43,7 @@ func TestRequired(t *testing.T) { } func TestHostdex(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` java_library { name: "foo", @@ -72,6 +74,7 @@ func TestHostdex(t *testing.T) { } func TestHostdexRequired(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` java_library { name: "foo", @@ -103,6 +106,7 @@ func TestHostdexRequired(t *testing.T) { } func TestHostdexSpecificRequired(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` java_library { name: "foo", @@ -136,6 +140,7 @@ func TestHostdexSpecificRequired(t *testing.T) { } func TestDistWithTag(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` java_library { name: "foo_without_tag", @@ -172,6 +177,7 @@ func TestDistWithTag(t *testing.T) { } func TestDistWithDest(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` java_library { name: "foo", @@ -208,6 +214,7 @@ func TestDistWithDest(t *testing.T) { } func TestDistsWithAllProperties(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` java_library { name: "foo", @@ -265,6 +272,7 @@ func TestDistsWithAllProperties(t *testing.T) { } func TestDistsWithTag(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` java_library { name: "foo_without_tag", @@ -312,6 +320,7 @@ func TestDistsWithTag(t *testing.T) { } func TestJavaSdkLibrary_RequireXmlPermissionFile(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` java_sdk_library { name: "foo-shared_library", diff --git a/java/app_test.go b/java/app_test.go index 4347db8b1..2ee3d1566 100644 --- a/java/app_test.go +++ b/java/app_test.go @@ -67,6 +67,7 @@ func testApp(t *testing.T, bp string) *android.TestContext { } func TestApp(t *testing.T) { + t.Parallel() for _, moduleType := range []string{"android_app", "android_library"} { t.Run(moduleType, func(t *testing.T) { ctx := testApp(t, moduleType+` { @@ -113,6 +114,7 @@ func TestApp(t *testing.T) { } func TestAppSplits(t *testing.T) { + t.Parallel() ctx := testApp(t, ` android_app { name: "foo", @@ -142,6 +144,7 @@ func TestAppSplits(t *testing.T) { } func TestAndroidAppSet(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` android_app_set { name: "foo", @@ -170,6 +173,7 @@ func TestAndroidAppSet(t *testing.T) { } func TestAndroidAppSet_Variants(t *testing.T) { + t.Parallel() bp := ` android_app_set { name: "foo", @@ -235,6 +239,7 @@ func TestAndroidAppSet_Variants(t *testing.T) { } func TestPlatformAPIs(t *testing.T) { + t.Parallel() testJava(t, ` android_app { name: "foo", @@ -269,6 +274,7 @@ func TestPlatformAPIs(t *testing.T) { } func TestAndroidAppLinkType(t *testing.T) { + t.Parallel() testJava(t, ` android_app { name: "foo", @@ -358,6 +364,7 @@ func TestAndroidAppLinkType(t *testing.T) { } func TestUpdatableApps(t *testing.T) { + t.Parallel() testCases := []struct { name string bp string @@ -479,6 +486,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", @@ -497,6 +505,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", @@ -517,6 +526,7 @@ func TestUpdatableApps_JniLibsShouldShouldSupportMinSdkVersion(t *testing.T) { } func TestUpdatableApps_JniLibShouldBeBuiltAgainstMinSdkVersion(t *testing.T) { + t.Parallel() bp := cc.GatherRequiredDepsForTest(android.Android) + ` android_app { name: "foo", @@ -571,6 +581,7 @@ func TestUpdatableApps_JniLibShouldBeBuiltAgainstMinSdkVersion(t *testing.T) { } func TestUpdatableApps_ErrorIfJniLibDoesntSupportMinSdkVersion(t *testing.T) { + t.Parallel() bp := cc.GatherRequiredDepsForTest(android.Android) + ` android_app { name: "foo", @@ -591,6 +602,7 @@ func TestUpdatableApps_ErrorIfJniLibDoesntSupportMinSdkVersion(t *testing.T) { } func TestUpdatableApps_ErrorIfDepSdkVersionIsHigher(t *testing.T) { + t.Parallel() bp := cc.GatherRequiredDepsForTest(android.Android) + ` android_app { name: "foo", @@ -620,6 +632,7 @@ func TestUpdatableApps_ErrorIfDepSdkVersionIsHigher(t *testing.T) { } func TestResourceDirs(t *testing.T) { + t.Parallel() testCases := []struct { name string prop string @@ -679,6 +692,7 @@ func TestResourceDirs(t *testing.T) { } func TestLibraryAssets(t *testing.T) { + t.Parallel() bp := ` android_app { name: "foo", @@ -780,6 +794,7 @@ func TestLibraryAssets(t *testing.T) { } func TestAndroidResources(t *testing.T) { + t.Parallel() testCases := []struct { name string enforceRROTargets []string @@ -1070,6 +1085,7 @@ func checkSdkVersion(t *testing.T, config android.Config, expectedSdkVersion str } func TestAppSdkVersion(t *testing.T) { + t.Parallel() testCases := []struct { name string sdkVersion string @@ -1152,6 +1168,7 @@ func TestAppSdkVersion(t *testing.T) { } func TestVendorAppSdkVersion(t *testing.T) { + t.Parallel() testCases := []struct { name string sdkVersion string @@ -1215,6 +1232,7 @@ func TestVendorAppSdkVersion(t *testing.T) { } func TestJNIABI(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, cc.GatherRequiredDepsForTest(android.Android)+` cc_library { name: "libjni", @@ -1289,6 +1307,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", @@ -1327,6 +1346,7 @@ func TestAppSdkVersionByPartition(t *testing.T) { } func TestJNIPackaging(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, cc.GatherRequiredDepsForTest(android.Android)+` cc_library { name: "libjni", @@ -1418,6 +1438,7 @@ func TestJNIPackaging(t *testing.T) { } func TestJNISDK(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, cc.GatherRequiredDepsForTest(android.Android)+` cc_library { name: "libjni", @@ -1535,6 +1556,7 @@ func TestJNISDK(t *testing.T) { } func TestCertificates(t *testing.T) { + t.Parallel() testCases := []struct { name string bp string @@ -1655,6 +1677,7 @@ func TestCertificates(t *testing.T) { } func TestRequestV4SigningFlag(t *testing.T) { + t.Parallel() testCases := []struct { name string bp string @@ -1715,6 +1738,7 @@ func TestRequestV4SigningFlag(t *testing.T) { } func TestPackageNameOverride(t *testing.T) { + t.Parallel() testCases := []struct { name string bp string @@ -1780,6 +1804,7 @@ func TestPackageNameOverride(t *testing.T) { } func TestInstrumentationTargetOverridden(t *testing.T) { + t.Parallel() bp := ` android_app { name: "foo", @@ -1809,6 +1834,7 @@ func TestInstrumentationTargetOverridden(t *testing.T) { } func TestOverrideAndroidApp(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_app { name: "foo", @@ -2010,6 +2036,7 @@ func TestOverrideAndroidApp(t *testing.T) { } func TestOverrideAndroidAppDependency(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_app { name: "foo", @@ -2052,6 +2079,7 @@ func TestOverrideAndroidAppDependency(t *testing.T) { } func TestOverrideAndroidTest(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_app { name: "foo", @@ -2148,6 +2176,7 @@ func TestOverrideAndroidTest(t *testing.T) { } func TestAndroidTest_FixTestConfig(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_app { name: "foo", @@ -2229,6 +2258,7 @@ func TestAndroidTest_FixTestConfig(t *testing.T) { } func TestAndroidAppImport(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_app_import { name: "foo", @@ -2258,6 +2288,7 @@ func TestAndroidAppImport(t *testing.T) { } func TestAndroidAppImport_NoDexPreopt(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_app_import { name: "foo", @@ -2279,6 +2310,7 @@ func TestAndroidAppImport_NoDexPreopt(t *testing.T) { } func TestAndroidAppImport_Presigned(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_app_import { name: "foo", @@ -2307,6 +2339,7 @@ func TestAndroidAppImport_Presigned(t *testing.T) { } func TestAndroidAppImport_SigningLineage(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_app_import { name: "foo", @@ -2328,6 +2361,7 @@ func TestAndroidAppImport_SigningLineage(t *testing.T) { } func TestAndroidAppImport_DefaultDevCert(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_app_import { name: "foo", @@ -2357,6 +2391,7 @@ func TestAndroidAppImport_DefaultDevCert(t *testing.T) { } func TestAndroidAppImport_DpiVariants(t *testing.T) { + t.Parallel() bp := ` android_app_import { name: "foo", @@ -2435,6 +2470,7 @@ func TestAndroidAppImport_DpiVariants(t *testing.T) { } func TestAndroidAppImport_Filename(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` android_app_import { name: "foo", @@ -2482,6 +2518,7 @@ func TestAndroidAppImport_Filename(t *testing.T) { } func TestAndroidAppImport_ArchVariants(t *testing.T) { + t.Parallel() // The test config's target arch is ARM64. testCases := []struct { name string @@ -2545,6 +2582,7 @@ func TestAndroidAppImport_ArchVariants(t *testing.T) { } func TestAndroidTestImport(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` android_test_import { name: "foo", @@ -2573,6 +2611,7 @@ func TestAndroidTestImport(t *testing.T) { } func TestAndroidTestImport_NoJinUncompressForPresigned(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_test_import { name: "foo", @@ -2610,6 +2649,7 @@ func TestAndroidTestImport_NoJinUncompressForPresigned(t *testing.T) { } func TestAndroidTestImport_Preprocessed(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` android_test_import { name: "foo", @@ -2646,6 +2686,7 @@ func TestAndroidTestImport_Preprocessed(t *testing.T) { } func TestStl(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, cc.GatherRequiredDepsForTest(android.Android)+` cc_library { name: "libjni", @@ -2709,6 +2750,7 @@ func TestStl(t *testing.T) { } func TestUsesLibraries(t *testing.T) { + t.Parallel() bp := ` java_sdk_library { name: "foo", @@ -2852,6 +2894,7 @@ func TestUsesLibraries(t *testing.T) { } func TestCodelessApp(t *testing.T) { + t.Parallel() testCases := []struct { name string bp string @@ -2928,6 +2971,7 @@ func TestCodelessApp(t *testing.T) { } func TestEmbedNotice(t *testing.T) { + t.Parallel() ctx, _ := testJavaWithFS(t, cc.GatherRequiredDepsForTest(android.Android)+` android_app { name: "foo", @@ -3037,6 +3081,7 @@ func TestEmbedNotice(t *testing.T) { } func TestUncompressDex(t *testing.T) { + t.Parallel() testCases := []struct { name string bp string @@ -3164,6 +3209,7 @@ func checkAapt2LinkFlag(t *testing.T, aapt2Flags, flagName, expectedValue string } func TestRuntimeResourceOverlay(t *testing.T) { + t.Parallel() fs := map[string][]byte{ "baz/res/res/values/strings.xml": nil, "bar/res/res/values/strings.xml": nil, @@ -3268,6 +3314,7 @@ func TestRuntimeResourceOverlay(t *testing.T) { } func TestRuntimeResourceOverlay_JavaDefaults(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` java_defaults { name: "rro_defaults", @@ -3327,6 +3374,7 @@ func TestRuntimeResourceOverlay_JavaDefaults(t *testing.T) { } func TestOverrideRuntimeResourceOverlay(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` runtime_resource_overlay { name: "foo_overlay", diff --git a/java/device_host_converter_test.go b/java/device_host_converter_test.go index 3c9a0f3f1..208ea57f6 100644 --- a/java/device_host_converter_test.go +++ b/java/device_host_converter_test.go @@ -22,6 +22,7 @@ import ( ) func TestDeviceForHost(t *testing.T) { + t.Parallel() bp := ` java_library { name: "device_module", @@ -102,6 +103,7 @@ func TestDeviceForHost(t *testing.T) { } func TestHostForDevice(t *testing.T) { + t.Parallel() bp := ` java_library_host { name: "host_module", diff --git a/java/dexpreopt_bootjars_test.go b/java/dexpreopt_bootjars_test.go index 4a8d3cd50..00bd80cb3 100644 --- a/java/dexpreopt_bootjars_test.go +++ b/java/dexpreopt_bootjars_test.go @@ -84,6 +84,7 @@ func testDexpreoptBoot(t *testing.T, ruleFile string, expectedInputs, expectedOu } func TestDexpreoptBootJars(t *testing.T) { + t.Parallel() ruleFile := "boot-foo.art" expectedInputs := []string{ @@ -114,6 +115,7 @@ func TestDexpreoptBootJars(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(testConfig(nil, "", nil)) diff --git a/java/dexpreopt_test.go b/java/dexpreopt_test.go index 5550a4c17..0bb3ac958 100644 --- a/java/dexpreopt_test.go +++ b/java/dexpreopt_test.go @@ -19,6 +19,7 @@ import ( ) func TestDexpreoptEnabled(t *testing.T) { + t.Parallel() tests := []struct { name string bp string diff --git a/java/hiddenapi_singleton_test.go b/java/hiddenapi_singleton_test.go index dbdab7ade..97dd125fb 100644 --- a/java/hiddenapi_singleton_test.go +++ b/java/hiddenapi_singleton_test.go @@ -58,6 +58,7 @@ func testHiddenAPIUnbundled(t *testing.T, unbundled bool) (*android.TestContext, } func TestHiddenAPISingleton(t *testing.T) { + t.Parallel() ctx, _ := testHiddenAPIBootJars(t, ` java_library { name: "foo", @@ -75,6 +76,7 @@ func TestHiddenAPISingleton(t *testing.T) { } func TestHiddenAPISingletonWithPrebuilt(t *testing.T) { + t.Parallel() ctx, _ := testHiddenAPIBootJars(t, ` java_import { name: "foo", @@ -92,6 +94,7 @@ func TestHiddenAPISingletonWithPrebuilt(t *testing.T) { } func TestHiddenAPISingletonWithPrebuiltUseSource(t *testing.T) { + t.Parallel() ctx, _ := testHiddenAPIBootJars(t, ` java_library { name: "foo", @@ -121,6 +124,7 @@ func TestHiddenAPISingletonWithPrebuiltUseSource(t *testing.T) { } func TestHiddenAPISingletonWithPrebuiltOverrideSource(t *testing.T) { + t.Parallel() ctx, _ := testHiddenAPIBootJars(t, ` java_library { name: "foo", @@ -150,6 +154,7 @@ func TestHiddenAPISingletonWithPrebuiltOverrideSource(t *testing.T) { } func TestHiddenAPISingletonSdks(t *testing.T) { + t.Parallel() testCases := []struct { name string unbundledBuild bool diff --git a/java/jacoco_test.go b/java/jacoco_test.go index 91f05535a..d77c916cd 100644 --- a/java/jacoco_test.go +++ b/java/jacoco_test.go @@ -17,6 +17,7 @@ package java import "testing" func TestJacocoFilterToSpecs(t *testing.T) { + t.Parallel() testCases := []struct { name, in, out string }{ @@ -66,6 +67,7 @@ func TestJacocoFilterToSpecs(t *testing.T) { } func TestJacocoFiltersToZipCommand(t *testing.T) { + t.Parallel() testCases := []struct { name string includes, excludes []string diff --git a/java/java_test.go b/java/java_test.go index f16639aa8..4424999cc 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -177,6 +177,7 @@ func moduleToPath(name string) string { } func TestJavaLinkType(t *testing.T) { + t.Parallel() testJava(t, ` java_library { name: "foo", @@ -265,6 +266,7 @@ func TestJavaLinkType(t *testing.T) { } func TestSimple(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", @@ -309,6 +311,7 @@ func TestSimple(t *testing.T) { } func TestExportedPlugins(t *testing.T) { + t.Parallel() type Result struct { library string processors string @@ -392,6 +395,7 @@ func TestExportedPlugins(t *testing.T) { } func TestSdkVersionByPartition(t *testing.T) { + t.Parallel() testJavaError(t, "sdk_version must have a value when the module is located at vendor or product", ` java_library { name: "foo", @@ -427,6 +431,7 @@ func TestSdkVersionByPartition(t *testing.T) { } func TestArchSpecific(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", @@ -446,6 +451,7 @@ func TestArchSpecific(t *testing.T) { } func TestBinary(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library_host { name: "foo", @@ -474,6 +480,7 @@ func TestBinary(t *testing.T) { } func TestHostBinaryNoJavaDebugInfoOverride(t *testing.T) { + t.Parallel() bp := ` java_library { name: "target_library", @@ -509,6 +516,7 @@ func TestHostBinaryNoJavaDebugInfoOverride(t *testing.T) { } func TestPrebuilts(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", @@ -604,6 +612,7 @@ func assertDeepEquals(t *testing.T, message string, expected interface{}, actual } func TestJavaSdkLibraryImport(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", @@ -660,6 +669,7 @@ func TestJavaSdkLibraryImport(t *testing.T) { } func TestJavaSdkLibraryImport_WithSource(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_sdk_library { name: "sdklib", @@ -699,6 +709,7 @@ func TestJavaSdkLibraryImport_WithSource(t *testing.T) { } func TestJavaSdkLibraryImport_Preferred(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_sdk_library { name: "sdklib", @@ -736,6 +747,7 @@ func TestJavaSdkLibraryImport_Preferred(t *testing.T) { } func TestDefaults(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_defaults { name: "defaults", @@ -811,6 +823,7 @@ func TestDefaults(t *testing.T) { } func TestResources(t *testing.T) { + t.Parallel() var table = []struct { name string prop string @@ -917,6 +930,7 @@ func TestResources(t *testing.T) { } func TestIncludeSrcs(t *testing.T) { + t.Parallel() ctx, _ := testJavaWithFS(t, ` java_library { name: "foo", @@ -984,6 +998,7 @@ func TestIncludeSrcs(t *testing.T) { } func TestGeneratedSources(t *testing.T) { + t.Parallel() ctx, _ := testJavaWithFS(t, ` java_library { name: "foo", @@ -1020,6 +1035,7 @@ func TestGeneratedSources(t *testing.T) { } func TestTurbine(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", @@ -1069,6 +1085,7 @@ func TestTurbine(t *testing.T) { } func TestSharding(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "bar", @@ -1087,6 +1104,7 @@ func TestSharding(t *testing.T) { } func TestDroiddoc(t *testing.T) { + t.Parallel() ctx, _ := testJavaWithFS(t, ` droiddoc_exported_dir { name: "droiddoc-templates-sdk", @@ -1165,6 +1183,7 @@ func TestDroiddoc(t *testing.T) { } func TestDroiddocArgsAndFlagsCausesError(t *testing.T) { + t.Parallel() testJavaError(t, "flags is set. Cannot set args", ` droiddoc_exported_dir { name: "droiddoc-templates-sdk", @@ -1211,6 +1230,7 @@ func TestDroiddocArgsAndFlagsCausesError(t *testing.T) { } func TestDroidstubs(t *testing.T) { + t.Parallel() ctx, _ := testJavaWithFS(t, ` droiddoc_exported_dir { name: "droiddoc-templates-sdk", @@ -1267,6 +1287,7 @@ func TestDroidstubs(t *testing.T) { } func TestDroidstubsWithSystemModules(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` droidstubs { name: "stubs-source-system-modules", @@ -1326,6 +1347,7 @@ func checkSystemModulesUseByDroidstubs(t *testing.T, ctx *android.TestContext, m } func TestJarGenrules(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", @@ -1380,6 +1402,7 @@ func TestJarGenrules(t *testing.T) { } func TestExcludeFileGroupInSrcs(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", @@ -1406,6 +1429,7 @@ func TestExcludeFileGroupInSrcs(t *testing.T) { } func TestJavaLibrary(t *testing.T) { + t.Parallel() config := testConfig(nil, "", map[string][]byte{ "libcore/Android.bp": []byte(` java_library { @@ -1419,6 +1443,7 @@ func TestJavaLibrary(t *testing.T) { } func TestJavaSdkLibrary(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` droiddoc_exported_dir { name: "droiddoc-templates-sdk", @@ -1557,6 +1582,7 @@ func TestJavaSdkLibrary(t *testing.T) { } func TestJavaSdkLibrary_DoNotAccessImplWhenItIsNotBuilt(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_sdk_library { name: "foo", @@ -1582,6 +1608,7 @@ func TestJavaSdkLibrary_DoNotAccessImplWhenItIsNotBuilt(t *testing.T) { } func TestJavaSdkLibrary_UseSourcesFromAnotherSdkLibrary(t *testing.T) { + t.Parallel() testJava(t, ` java_sdk_library { name: "foo", @@ -1600,6 +1627,7 @@ func TestJavaSdkLibrary_UseSourcesFromAnotherSdkLibrary(t *testing.T) { } func TestJavaSdkLibrary_AccessOutputFiles_MissingScope(t *testing.T) { + t.Parallel() testJavaError(t, `"foo" does not provide api scope system`, ` java_sdk_library { name: "foo", @@ -1618,6 +1646,7 @@ func TestJavaSdkLibrary_AccessOutputFiles_MissingScope(t *testing.T) { } func TestJavaSdkLibrary_Deps(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_sdk_library { name: "sdklib", @@ -1640,6 +1669,7 @@ func TestJavaSdkLibrary_Deps(t *testing.T) { } func TestJavaSdkLibraryImport_AccessOutputFiles(t *testing.T) { + t.Parallel() testJava(t, ` java_sdk_library_import { name: "foo", @@ -1663,6 +1693,7 @@ func TestJavaSdkLibraryImport_AccessOutputFiles(t *testing.T) { } func TestJavaSdkLibraryImport_AccessOutputFiles_Invalid(t *testing.T) { + t.Parallel() bp := ` java_sdk_library_import { name: "foo", @@ -1711,6 +1742,7 @@ func TestJavaSdkLibraryImport_AccessOutputFiles_Invalid(t *testing.T) { } func TestJavaSdkLibrary_InvalidScopes(t *testing.T) { + t.Parallel() testJavaError(t, `module "foo": enabled api scope "system" depends on disabled scope "public"`, ` java_sdk_library { name: "foo", @@ -1729,6 +1761,7 @@ func TestJavaSdkLibrary_InvalidScopes(t *testing.T) { } func TestJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) { + t.Parallel() testJava(t, ` java_sdk_library { name: "foo", @@ -1743,6 +1776,7 @@ func TestJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) { } func TestJavaSdkLibrary_ModuleLib(t *testing.T) { + t.Parallel() testJava(t, ` java_sdk_library { name: "foo", @@ -1759,6 +1793,7 @@ func TestJavaSdkLibrary_ModuleLib(t *testing.T) { } func TestJavaSdkLibrary_SystemServer(t *testing.T) { + t.Parallel() testJava(t, ` java_sdk_library { name: "foo", @@ -1775,6 +1810,7 @@ func TestJavaSdkLibrary_SystemServer(t *testing.T) { } func TestJavaSdkLibrary_MissingScope(t *testing.T) { + t.Parallel() testJavaError(t, `requires api scope module-lib from foo but it only has \[\] available`, ` java_sdk_library { name: "foo", @@ -1794,6 +1830,7 @@ func TestJavaSdkLibrary_MissingScope(t *testing.T) { } func TestJavaSdkLibrary_FallbackScope(t *testing.T) { + t.Parallel() testJava(t, ` java_sdk_library { name: "foo", @@ -1814,6 +1851,7 @@ func TestJavaSdkLibrary_FallbackScope(t *testing.T) { } func TestJavaSdkLibrary_DefaultToStubs(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_sdk_library { name: "foo", @@ -1889,6 +1927,7 @@ func (ctx *mockContext) PropertyErrorf(property, format string, args ...interfac } func TestCompilerFlags(t *testing.T) { + t.Parallel() for _, testCase := range compilerFlagsTestCases { ctx := &mockContext{result: true} CheckKotlincFlags(ctx, []string{testCase.in}) @@ -1919,6 +1958,7 @@ func checkPatchModuleFlag(t *testing.T, ctx *android.TestContext, moduleName str } func TestPatchModule(t *testing.T) { + t.Parallel() t.Run("Java language level 8", func(t *testing.T) { // Test with legacy javac -source 1.8 -target 1.8 bp := ` @@ -1984,6 +2024,7 @@ func TestPatchModule(t *testing.T) { } func TestJavaSystemModules(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_system_modules { name: "system-modules", @@ -2018,6 +2059,7 @@ func TestJavaSystemModules(t *testing.T) { } func TestJavaSystemModulesImport(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_system_modules_import { name: "system-modules", @@ -2048,6 +2090,7 @@ func TestJavaSystemModulesImport(t *testing.T) { } func TestJavaLibraryWithSystemModules(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "lib-with-source-system-modules", @@ -2104,6 +2147,7 @@ func checkBootClasspathForSystemModule(t *testing.T, ctx *android.TestContext, m } func TestAidlExportIncludeDirsFromImports(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", @@ -2128,6 +2172,7 @@ func TestAidlExportIncludeDirsFromImports(t *testing.T) { } func TestDataNativeBinaries(t *testing.T) { + t.Parallel() ctx, config := testJava(t, ` java_test_host { name: "foo", diff --git a/java/jdeps_test.go b/java/jdeps_test.go index 874d1d7c0..46e72967c 100644 --- a/java/jdeps_test.go +++ b/java/jdeps_test.go @@ -22,6 +22,7 @@ import ( ) func TestCollectJavaLibraryPropertiesAddLibsDeps(t *testing.T) { + t.Parallel() expected := []string{"Foo", "Bar"} module := LibraryFactory().(*Library) module.properties.Libs = append(module.properties.Libs, expected...) @@ -35,6 +36,7 @@ func TestCollectJavaLibraryPropertiesAddLibsDeps(t *testing.T) { } func TestCollectJavaLibraryPropertiesAddStaticLibsDeps(t *testing.T) { + t.Parallel() expected := []string{"Foo", "Bar"} module := LibraryFactory().(*Library) module.properties.Static_libs = append(module.properties.Static_libs, expected...) @@ -48,6 +50,7 @@ func TestCollectJavaLibraryPropertiesAddStaticLibsDeps(t *testing.T) { } func TestCollectJavaLibraryPropertiesAddScrs(t *testing.T) { + t.Parallel() expected := []string{"Foo", "Bar"} module := LibraryFactory().(*Library) module.expandIDEInfoCompiledSrcs = append(module.expandIDEInfoCompiledSrcs, expected...) @@ -61,6 +64,7 @@ func TestCollectJavaLibraryPropertiesAddScrs(t *testing.T) { } func TestCollectJavaLibraryPropertiesAddAidlIncludeDirs(t *testing.T) { + t.Parallel() expected := []string{"Foo", "Bar"} module := LibraryFactory().(*Library) module.deviceProperties.Aidl.Include_dirs = append(module.deviceProperties.Aidl.Include_dirs, expected...) @@ -74,6 +78,7 @@ func TestCollectJavaLibraryPropertiesAddAidlIncludeDirs(t *testing.T) { } func TestCollectJavaLibraryPropertiesAddJarjarRules(t *testing.T) { + t.Parallel() expected := "Jarjar_rules.txt" module := LibraryFactory().(*Library) module.expandJarjarRules = android.PathForTesting(expected) diff --git a/java/kotlin_test.go b/java/kotlin_test.go index 60ca1c476..530f7fe5c 100644 --- a/java/kotlin_test.go +++ b/java/kotlin_test.go @@ -22,6 +22,7 @@ import ( ) func TestKotlin(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", @@ -84,6 +85,7 @@ func TestKotlin(t *testing.T) { } func TestKapt(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", @@ -163,6 +165,7 @@ func TestKapt(t *testing.T) { } func TestKaptEncodeFlags(t *testing.T) { + t.Parallel() // Compares the kaptEncodeFlags against the results of the example implementation at // https://kotlinlang.org/docs/reference/kapt.html#apjavac-options-encoding tests := []struct { diff --git a/java/plugin_test.go b/java/plugin_test.go index c7913d3db..3eb021514 100644 --- a/java/plugin_test.go +++ b/java/plugin_test.go @@ -20,6 +20,7 @@ import ( ) func TestNoPlugin(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", @@ -44,6 +45,7 @@ func TestNoPlugin(t *testing.T) { } func TestPlugin(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", @@ -83,6 +85,7 @@ func TestPlugin(t *testing.T) { } func TestPluginGeneratesApi(t *testing.T) { + t.Parallel() ctx, _ := testJava(t, ` java_library { name: "foo", diff --git a/java/sdk_test.go b/java/sdk_test.go index 776069dc9..374da11a4 100644 --- a/java/sdk_test.go +++ b/java/sdk_test.go @@ -27,6 +27,7 @@ import ( ) func TestClasspath(t *testing.T) { + t.Parallel() var classpathTestcases = []struct { name string unbundled bool diff --git a/makedeps/deps_test.go b/makedeps/deps_test.go index ac2f6996a..17e77c44c 100644 --- a/makedeps/deps_test.go +++ b/makedeps/deps_test.go @@ -23,6 +23,7 @@ import ( ) func TestParse(t *testing.T) { + t.Parallel() testCases := []struct { name string input string @@ -339,6 +340,7 @@ func BenchmarkParsing(b *testing.B) { } func TestDepPrint(t *testing.T) { + t.Parallel() testCases := []struct { name string input Deps diff --git a/partner/androidmk/androidmk_test.go b/partner/androidmk/androidmk_test.go index 6bae836d9..2a0ddc8cc 100644 --- a/partner/androidmk/androidmk_test.go +++ b/partner/androidmk/androidmk_test.go @@ -54,6 +54,7 @@ cc_library_shared { } func TestEndToEnd(t *testing.T) { + t.Parallel() for i, test := range testCases { expected, err := bpfix.Reformat(test.expected) if err != nil { diff --git a/python/python_test.go b/python/python_test.go index 23db24e8f..455d84ada 100644 --- a/python/python_test.go +++ b/python/python_test.go @@ -326,6 +326,7 @@ var ( ) func TestPythonModule(t *testing.T) { + t.Parallel() for _, d := range data { t.Run(d.desc, func(t *testing.T) { config := android.TestConfig(buildDir, nil, "", d.mockFiles) diff --git a/remoteexec/remoteexec_test.go b/remoteexec/remoteexec_test.go index 56985d356..2fd3687b9 100644 --- a/remoteexec/remoteexec_test.go +++ b/remoteexec/remoteexec_test.go @@ -22,6 +22,7 @@ import ( ) func TestTemplate(t *testing.T) { + t.Parallel() tests := []struct { name string params *REParams @@ -67,6 +68,7 @@ func TestTemplate(t *testing.T) { } func TestNoVarTemplate(t *testing.T) { + t.Parallel() params := &REParams{ Labels: map[string]string{"type": "compile", "lang": "cpp", "compiler": "clang"}, Inputs: []string{"$in"}, @@ -83,6 +85,7 @@ func TestNoVarTemplate(t *testing.T) { } func TestTemplateDeterminism(t *testing.T) { + t.Parallel() r := &REParams{ Labels: map[string]string{"type": "compile", "lang": "cpp", "compiler": "clang"}, Inputs: []string{"$in"}, diff --git a/rust/binary_test.go b/rust/binary_test.go index b44a5bc71..692a06605 100644 --- a/rust/binary_test.go +++ b/rust/binary_test.go @@ -23,6 +23,7 @@ import ( // Test that rustlibs default linkage is correct for binaries. func TestBinaryLinkage(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_binary { name: "fizz-buzz", @@ -86,6 +87,7 @@ func TestBinaryPreferRlib(t *testing.T) { // Test that the path returned by HostToolPath is correct func TestHostToolPath(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_binary_host { name: "fizz-buzz", @@ -100,6 +102,7 @@ func TestHostToolPath(t *testing.T) { // Test that the flags being passed to rust_binary modules are as expected func TestBinaryFlags(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_binary_host { name: "fizz-buzz", @@ -143,6 +146,7 @@ func TestStaticBinaryFlags(t *testing.T) { } func TestLinkObjects(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_binary { name: "fizz-buzz", @@ -162,6 +166,7 @@ func TestLinkObjects(t *testing.T) { // Test that stripped versions are correctly generated and used. func TestStrippedBinary(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_binary { name: "foo", diff --git a/rust/bindgen_test.go b/rust/bindgen_test.go index 9cccf13be..7ff996dc1 100644 --- a/rust/bindgen_test.go +++ b/rust/bindgen_test.go @@ -20,6 +20,7 @@ import ( ) func TestRustBindgen(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_bindgen { name: "libbindgen", @@ -66,6 +67,7 @@ func TestRustBindgen(t *testing.T) { } func TestRustBindgenCustomBindgen(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_bindgen { name: "libbindgen", diff --git a/rust/builder_test.go b/rust/builder_test.go index 5c11cb7b5..cda03a923 100644 --- a/rust/builder_test.go +++ b/rust/builder_test.go @@ -17,6 +17,7 @@ package rust import "testing" func TestSourceProviderCollision(t *testing.T) { + t.Parallel() testRustError(t, "multiple source providers generate the same filename output: bindings.rs", ` rust_binary { name: "source_collider", diff --git a/rust/clippy_test.go b/rust/clippy_test.go index 7815aab9d..786dc1537 100644 --- a/rust/clippy_test.go +++ b/rust/clippy_test.go @@ -21,6 +21,7 @@ import ( ) func TestClippy(t *testing.T) { + t.Parallel() bp := ` // foo uses the default value of clippy_lints diff --git a/rust/compiler_test.go b/rust/compiler_test.go index a25523c05..70f0dffad 100644 --- a/rust/compiler_test.go +++ b/rust/compiler_test.go @@ -23,6 +23,7 @@ import ( // Test that feature flags are being correctly generated. func TestFeaturesToFlags(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_library_host_dylib { name: "libfoo", @@ -44,6 +45,7 @@ func TestFeaturesToFlags(t *testing.T) { // Test that we reject multiple source files. func TestEnforceSingleSourceFile(t *testing.T) { + t.Parallel() singleSrcError := "srcs can only contain one path for a rust file and source providers prefixed by \":\"" @@ -78,6 +80,7 @@ func TestEnforceSingleSourceFile(t *testing.T) { } func TestInstallDir(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_library_dylib { name: "libfoo", @@ -108,6 +111,7 @@ func TestInstallDir(t *testing.T) { } func TestLints(t *testing.T) { + t.Parallel() bp := ` // foo uses the default value of lints @@ -180,6 +184,7 @@ func TestLints(t *testing.T) { // Test that devices are linking the stdlib dynamically func TestStdDeviceLinkage(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_binary { name: "fizz", diff --git a/rust/coverage_test.go b/rust/coverage_test.go index 90155ca6e..ced548ddd 100644 --- a/rust/coverage_test.go +++ b/rust/coverage_test.go @@ -23,6 +23,7 @@ import ( // Test that coverage flags are being correctly generated. func TestCoverageFlags(t *testing.T) { + t.Parallel() ctx := testRustCov(t, ` rust_library { name: "libfoo_cov", @@ -98,6 +99,7 @@ func TestCoverageFlags(t *testing.T) { // Test coverage files are included correctly func TestCoverageZip(t *testing.T) { + t.Parallel() ctx := testRustCov(t, ` rust_library { name: "libfoo", @@ -174,6 +176,7 @@ func TestCoverageZip(t *testing.T) { } func TestCoverageDeps(t *testing.T) { + t.Parallel() ctx := testRustCov(t, ` rust_binary { name: "fizz", diff --git a/rust/library_test.go b/rust/library_test.go index fec3992aa..fdab78db3 100644 --- a/rust/library_test.go +++ b/rust/library_test.go @@ -23,6 +23,7 @@ import ( // Test that variants are being generated correctly, and that crate-types are correct. func TestLibraryVariants(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_library_host { @@ -71,6 +72,7 @@ func TestLibraryVariants(t *testing.T) { // Test that dylibs are not statically linking the standard library. func TestDylibPreferDynamic(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_library_host_dylib { name: "libfoo", @@ -86,6 +88,7 @@ func TestDylibPreferDynamic(t *testing.T) { } func TestValidateLibraryStem(t *testing.T) { + t.Parallel() testRustError(t, "crate_name must be defined.", ` rust_library_host { name: "libfoo", @@ -123,6 +126,7 @@ func TestValidateLibraryStem(t *testing.T) { } func TestSharedLibrary(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_ffi_shared { name: "libfoo", @@ -145,6 +149,7 @@ func TestSharedLibrary(t *testing.T) { } func TestStaticLibraryLinkage(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_ffi_static { name: "libfoo", @@ -162,6 +167,7 @@ func TestStaticLibraryLinkage(t *testing.T) { // Test that variants pull in the right type of rustlib autodep func TestAutoDeps(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_library_host { @@ -209,6 +215,7 @@ func TestAutoDeps(t *testing.T) { // Test that stripped versions are correctly generated and used. func TestStrippedLibrary(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_library_dylib { name: "libfoo", @@ -240,6 +247,7 @@ func TestStrippedLibrary(t *testing.T) { } func TestLibstdLinkage(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_library { name: "libfoo", diff --git a/rust/protobuf_test.go b/rust/protobuf_test.go index bd11a5ae3..cfe56a364 100644 --- a/rust/protobuf_test.go +++ b/rust/protobuf_test.go @@ -20,6 +20,7 @@ import ( ) func TestRustProtobuf(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_protobuf { name: "librust_proto", diff --git a/rust/rust_test.go b/rust/rust_test.go index 4842a4ca8..26e943a42 100644 --- a/rust/rust_test.go +++ b/rust/rust_test.go @@ -135,6 +135,7 @@ func testRustError(t *testing.T, pattern string, bp string) { // Test that we can extract the link path from a lib path. func TestLinkPathFromFilePath(t *testing.T) { + t.Parallel() barPath := android.PathForTesting("out/soong/.intermediates/external/libbar/libbar/linux_glibc_x86_64_shared/libbar.so") libName := linkPathFromFilePath(barPath) expectedResult := "out/soong/.intermediates/external/libbar/libbar/linux_glibc_x86_64_shared/" @@ -146,6 +147,7 @@ func TestLinkPathFromFilePath(t *testing.T) { // Test to make sure dependencies are being picked up correctly. func TestDepsTracking(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_ffi_host_static { name: "libstatic", @@ -207,6 +209,7 @@ func TestDepsTracking(t *testing.T) { } func TestSourceProviderDeps(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_binary { name: "fizz-buzz-dep", @@ -294,6 +297,7 @@ func TestSourceProviderDeps(t *testing.T) { } func TestSourceProviderTargetMismatch(t *testing.T) { + t.Parallel() // This might error while building the dependency tree or when calling depsToPaths() depending on the lunched // target, which results in two different errors. So don't check the error, just confirm there is one. testRustError(t, ".*", ` @@ -316,6 +320,7 @@ func TestSourceProviderTargetMismatch(t *testing.T) { // Test to make sure proc_macros use host variants when building device modules. func TestProcMacroDeviceDeps(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_library_host_rlib { name: "libbar", @@ -343,6 +348,7 @@ func TestProcMacroDeviceDeps(t *testing.T) { // Test that no_stdlibs suppresses dependencies on rust standard libraries func TestNoStdlibs(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_binary { name: "fizz-buzz", @@ -358,6 +364,7 @@ func TestNoStdlibs(t *testing.T) { // Test that libraries provide both 32-bit and 64-bit variants. func TestMultilib(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_library_rlib { name: "libfoo", diff --git a/rust/source_provider_test.go b/rust/source_provider_test.go index 6e68ae62c..f16d6948d 100644 --- a/rust/source_provider_test.go +++ b/rust/source_provider_test.go @@ -21,6 +21,7 @@ import ( var stemRequiredError = "source_stem property is undefined but required for rust_bindgen modules" func TestSourceProviderRequiredFields(t *testing.T) { + t.Parallel() testRustError(t, stemRequiredError, ` rust_bindgen { name: "libbindgen", diff --git a/rust/test_test.go b/rust/test_test.go index fea2ad059..bb4695aaf 100644 --- a/rust/test_test.go +++ b/rust/test_test.go @@ -22,6 +22,7 @@ import ( ) func TestRustTest(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_test_host { name: "my_test", @@ -37,6 +38,7 @@ func TestRustTest(t *testing.T) { } func TestRustTestLinkage(t *testing.T) { + t.Parallel() ctx := testRust(t, ` rust_test { name: "my_test", diff --git a/sdk/bp_test.go b/sdk/bp_test.go index e1edc5131..4cd54c777 100644 --- a/sdk/bp_test.go +++ b/sdk/bp_test.go @@ -180,6 +180,7 @@ func (t removeFredTransformation) transformPropertySetAfterContents(name string, } func TestTransformRemoveProperty(t *testing.T) { + t.Parallel() helper := &TestHelper{t} @@ -195,6 +196,7 @@ func TestTransformRemoveProperty(t *testing.T) { } func TestTransformRemovePropertySet(t *testing.T) { + t.Parallel() helper := &TestHelper{t} diff --git a/sdk/cc_sdk_test.go b/sdk/cc_sdk_test.go index c214e75c4..e0cba098f 100644 --- a/sdk/cc_sdk_test.go +++ b/sdk/cc_sdk_test.go @@ -40,6 +40,7 @@ func testSdkWithCc(t *testing.T, bp string) *testSdkResult { // Contains tests for SDK members provided by the cc package. func TestSingleDeviceOsAssumption(t *testing.T) { + t.Parallel() // Mock a module with DeviceSupported() == true. s := &sdk{} android.InitAndroidArchModule(s, android.DeviceSupported, android.MultilibCommon) @@ -54,6 +55,7 @@ func TestSingleDeviceOsAssumption(t *testing.T) { } func TestSdkIsCompileMultilibBoth(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -84,6 +86,7 @@ func TestSdkIsCompileMultilibBoth(t *testing.T) { } func TestSdkCompileMultilibOverride(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -175,6 +178,7 @@ sdk_snapshot { } func TestBasicSdkWithCc(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -281,6 +285,7 @@ func TestBasicSdkWithCc(t *testing.T) { // Make sure the sdk can use host specific cc libraries static/shared and both. func TestHostSdkWithCc(t *testing.T) { + t.Parallel() testSdkWithCc(t, ` sdk { name: "mysdk", @@ -304,6 +309,7 @@ func TestHostSdkWithCc(t *testing.T) { // Make sure the sdk can use cc libraries static/shared and both. func TestSdkWithCc(t *testing.T) { + t.Parallel() testSdkWithCc(t, ` sdk { name: "mysdk", @@ -334,6 +340,7 @@ func TestSdkWithCc(t *testing.T) { } func TestSnapshotWithObject(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -405,6 +412,7 @@ sdk_snapshot { } func TestSnapshotWithCcDuplicateHeaders(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -446,6 +454,7 @@ include/Test.h -> include/include/Test.h // handling is tested with the sanitize clauses (but note there's a lot of // built-in logic in sanitize.go that can affect those flags). func TestSnapshotWithCcSharedLibraryCommonProperties(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -559,6 +568,7 @@ arm64/include/Arm64Test.h -> arm64/include/arm64/include/Arm64Test.h } func TestSnapshotWithCcBinary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` module_exports { name: "mymodule_exports", @@ -623,6 +633,7 @@ module_exports_snapshot { } func TestMultipleHostOsTypesSnapshotWithCcBinary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` module_exports { name: "myexports", @@ -749,6 +760,7 @@ module_exports_snapshot { } func TestSnapshotWithSingleHostOsType(t *testing.T) { + t.Parallel() ctx, config := testSdkContext(` cc_defaults { name: "mydefaults", @@ -912,6 +924,7 @@ module_exports_snapshot { // Test that we support the necessary flags for the linker binary, which is // special in several ways. func TestSnapshotWithCcStaticNocrtBinary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` module_exports { name: "mymodule_exports", @@ -1014,6 +1027,7 @@ module_exports_snapshot { } func TestSnapshotWithCcSharedLibrary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -1107,6 +1121,7 @@ include/Test.h -> include/include/Test.h } func TestSnapshotWithCcSharedLibrarySharedLibs(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -1301,6 +1316,7 @@ sdk_snapshot { } func TestHostSnapshotWithCcSharedLibrary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -1418,6 +1434,7 @@ include/Test.h -> include/include/Test.h } func TestMultipleHostOsTypesSnapshotWithCcSharedLibrary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -1543,6 +1560,7 @@ sdk_snapshot { } func TestSnapshotWithCcStaticLibrary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` module_exports { name: "myexports", @@ -1627,6 +1645,7 @@ include/Test.h -> include/include/Test.h } func TestHostSnapshotWithCcStaticLibrary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` module_exports { name: "myexports", @@ -1741,6 +1760,7 @@ include/Test.h -> include/include/Test.h } func TestSnapshotWithCcLibrary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` module_exports { name: "myexports", @@ -1838,6 +1858,7 @@ include/Test.h -> include/include/Test.h } func TestHostSnapshotWithMultiLib64(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` module_exports { name: "myexports", @@ -1945,6 +1966,7 @@ include/Test.h -> include/include/Test.h } func TestSnapshotWithCcHeadersLibrary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -1993,6 +2015,7 @@ include/Test.h -> include/include/Test.h } func TestHostSnapshotWithCcHeadersLibrary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -2075,6 +2098,7 @@ include/Test.h -> include/include/Test.h } func TestDeviceAndHostSnapshotWithCcHeadersLibrary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -2170,6 +2194,7 @@ include-host/HostTest.h -> linux_glibc/include/include-host/HostTest.h } func TestSystemSharedLibPropagation(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -2407,6 +2432,7 @@ sdk_snapshot { } func TestStubsLibrary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -2485,6 +2511,7 @@ sdk_snapshot { } func TestDeviceAndHostSnapshotWithStubsLibrary(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", @@ -2601,6 +2628,7 @@ sdk_snapshot { } func TestUniqueHostSoname(t *testing.T) { + t.Parallel() result := testSdkWithCc(t, ` sdk { name: "mysdk", diff --git a/sdk/exports_test.go b/sdk/exports_test.go index aa1200fed..173ccb925 100644 --- a/sdk/exports_test.go +++ b/sdk/exports_test.go @@ -20,6 +20,7 @@ import ( // Ensure that module_exports generates a module_exports_snapshot module. func TestModuleExportsSnapshot(t *testing.T) { + t.Parallel() packageBp := ` module_exports { name: "myexports", diff --git a/sdk/java_sdk_test.go b/sdk/java_sdk_test.go index d6828c95b..f86ab5720 100644 --- a/sdk/java_sdk_test.go +++ b/sdk/java_sdk_test.go @@ -92,6 +92,7 @@ java_import { // Contains tests for SDK members provided by the java package. func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -141,6 +142,7 @@ sdk_snapshot { } func TestBasicSdkWithJavaLibrary(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -220,6 +222,7 @@ func TestBasicSdkWithJavaLibrary(t *testing.T) { } func TestSnapshotWithJavaHeaderLibrary(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -272,6 +275,7 @@ aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl } func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -332,6 +336,7 @@ aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl } func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -398,6 +403,7 @@ sdk_snapshot { } func TestSnapshotWithJavaImplLibrary(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` module_exports { name: "myexports", @@ -451,6 +457,7 @@ aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl } func TestHostSnapshotWithJavaImplLibrary(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` module_exports { name: "myexports", @@ -511,6 +518,7 @@ aidl/foo/bar/Test.aidl -> aidl/aidl/foo/bar/Test.aidl } func TestSnapshotWithJavaTest(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` module_exports { name: "myexports", @@ -561,6 +569,7 @@ module_exports_snapshot { } func TestHostSnapshotWithJavaTest(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` module_exports { name: "myexports", @@ -633,6 +642,7 @@ func testSdkWithDroidstubs(t *testing.T, bp string) *testSdkResult { // directly or indirectly from an APEX as droidstubs can never be a part of an // apex. func TestBasicSdkWithDroidstubs(t *testing.T) { + t.Parallel() testSdkWithDroidstubs(t, ` sdk { name: "mysdk", @@ -663,6 +673,7 @@ func TestBasicSdkWithDroidstubs(t *testing.T) { } func TestSnapshotWithDroidstubs(t *testing.T) { + t.Parallel() result := testSdkWithDroidstubs(t, ` module_exports { name: "myexports", @@ -708,6 +719,7 @@ module_exports_snapshot { } func TestHostSnapshotWithDroidstubs(t *testing.T) { + t.Parallel() result := testSdkWithDroidstubs(t, ` module_exports { name: "myexports", @@ -762,6 +774,7 @@ module_exports_snapshot { } func TestSnapshotWithJavaSystemModules(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -856,6 +869,7 @@ sdk_snapshot { } func TestHostSnapshotWithJavaSystemModules(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -934,6 +948,7 @@ sdk_snapshot { } func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` module_exports { name: "myexports", @@ -1061,6 +1076,7 @@ module_exports_snapshot { } func TestSnapshotWithJavaSdkLibrary(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -1165,6 +1181,7 @@ sdk_snapshot { } func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -1229,6 +1246,7 @@ sdk_snapshot { } func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -1296,6 +1314,7 @@ sdk_snapshot { } func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -1386,6 +1405,7 @@ sdk_snapshot { } func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -1497,6 +1517,7 @@ sdk_snapshot { } func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", @@ -1587,6 +1608,7 @@ sdk_snapshot { } func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) { + t.Parallel() result := testSdkWithJava(t, ` sdk { name: "mysdk", diff --git a/sdk/sdk_test.go b/sdk/sdk_test.go index 2e6c62a9b..a6afdc5be 100644 --- a/sdk/sdk_test.go +++ b/sdk/sdk_test.go @@ -35,6 +35,7 @@ func TestMain(m *testing.M) { } func TestDepNotInRequiredSdks(t *testing.T) { + t.Parallel() testSdkError(t, `module "myjavalib".*depends on "otherlib".*that isn't part of the required SDKs:.*`, ` sdk { name: "mysdk", @@ -95,6 +96,7 @@ func TestDepNotInRequiredSdks(t *testing.T) { // Ensure that prebuilt modules have the same effective visibility as the source // modules. func TestSnapshotVisibility(t *testing.T) { + t.Parallel() packageBp := ` package { default_visibility: ["//other/foo"], @@ -302,6 +304,7 @@ func TestPrebuiltVisibilityProperty_AddPrivate(t *testing.T) { } func TestSDkInstall(t *testing.T) { + t.Parallel() sdk := ` sdk { name: "mysdk", @@ -346,6 +349,7 @@ func (p *testPropertiesStruct) String() string { var _ propertiesContainer = (*testPropertiesStruct)(nil) func TestCommonValueOptimization(t *testing.T) { + t.Parallel() common := &testPropertiesStruct{name: "common"} structs := []propertiesContainer{ &testPropertiesStruct{ @@ -443,6 +447,7 @@ func TestCommonValueOptimization(t *testing.T) { } func TestCommonValueOptimization_InvalidArchSpecificVariants(t *testing.T) { + t.Parallel() common := &testPropertiesStruct{name: "common"} structs := []propertiesContainer{ &testPropertiesStruct{ diff --git a/sh/sh_binary_test.go b/sh/sh_binary_test.go index 0aa607b6f..e9086be73 100644 --- a/sh/sh_binary_test.go +++ b/sh/sh_binary_test.go @@ -61,6 +61,7 @@ func testShBinary(t *testing.T, bp string) (*android.TestContext, android.Config } func TestShTestSubDir(t *testing.T) { + t.Parallel() ctx, config := testShBinary(t, ` sh_test { name: "foo", @@ -81,6 +82,7 @@ func TestShTestSubDir(t *testing.T) { } func TestShTest(t *testing.T) { + t.Parallel() ctx, config := testShBinary(t, ` sh_test { name: "foo", @@ -111,6 +113,7 @@ func TestShTest(t *testing.T) { } func TestShTest_dataModules(t *testing.T) { + t.Parallel() ctx, config := testShBinary(t, ` sh_test { name: "foo", @@ -170,6 +173,7 @@ func TestShTest_dataModules(t *testing.T) { } func TestShTestHost(t *testing.T) { + t.Parallel() ctx, _ := testShBinary(t, ` sh_test_host { name: "foo", @@ -190,6 +194,7 @@ func TestShTestHost(t *testing.T) { } func TestShTestHost_dataDeviceModules(t *testing.T) { + t.Parallel() ctx, config := testShBinary(t, ` sh_test_host { name: "foo", diff --git a/symbol_inject/elf_test.go b/symbol_inject/elf_test.go index aceee4418..316c69a51 100644 --- a/symbol_inject/elf_test.go +++ b/symbol_inject/elf_test.go @@ -20,6 +20,7 @@ import ( ) func TestElfSymbolTable(t *testing.T) { + t.Parallel() testCases := []struct { file *mockElfFile symbol string diff --git a/symbol_inject/macho_test.go b/symbol_inject/macho_test.go index 50df1315d..d5b962d06 100644 --- a/symbol_inject/macho_test.go +++ b/symbol_inject/macho_test.go @@ -21,6 +21,7 @@ import ( ) func TestMachoSymbolTable(t *testing.T) { + t.Parallel() testCases := []struct { file *macho.File symbol string diff --git a/symbol_inject/pe_test.go b/symbol_inject/pe_test.go index df7bac3cb..16b20093a 100644 --- a/symbol_inject/pe_test.go +++ b/symbol_inject/pe_test.go @@ -21,6 +21,7 @@ import ( ) func TestPESymbolTable(t *testing.T) { + t.Parallel() testCases := []struct { file *pe.File symbol string diff --git a/symbol_inject/symbol_inject_test.go b/symbol_inject/symbol_inject_test.go index 6607e6599..ab874b92a 100644 --- a/symbol_inject/symbol_inject_test.go +++ b/symbol_inject/symbol_inject_test.go @@ -21,6 +21,7 @@ import ( ) func TestCopyAndInject(t *testing.T) { + t.Parallel() s := "abcdefghijklmnopqrstuvwxyz" testCases := []struct { offset uint64 diff --git a/sysprop/sysprop_test.go b/sysprop/sysprop_test.go index 711129c84..7df0f3d52 100644 --- a/sysprop/sysprop_test.go +++ b/sysprop/sysprop_test.go @@ -158,6 +158,7 @@ func test(t *testing.T, bp string) *android.TestContext { } func TestSyspropLibrary(t *testing.T) { + t.Parallel() ctx := test(t, ` sysprop_library { name: "sysprop-platform", diff --git a/ui/build/cleanbuild_test.go b/ui/build/cleanbuild_test.go index 89f4ad9e1..be603626a 100644 --- a/ui/build/cleanbuild_test.go +++ b/ui/build/cleanbuild_test.go @@ -27,6 +27,7 @@ import ( ) func TestCleanOldFiles(t *testing.T) { + t.Parallel() dir, err := ioutil.TempDir("", "testcleanoldfiles") if err != nil { t.Fatal(err) diff --git a/ui/build/config_test.go b/ui/build/config_test.go index 7b14c4703..35c6ed455 100644 --- a/ui/build/config_test.go +++ b/ui/build/config_test.go @@ -39,6 +39,7 @@ func testContext() Context { } func TestConfigParseArgsJK(t *testing.T) { + t.Parallel() ctx := testContext() testCases := []struct { @@ -111,6 +112,7 @@ func TestConfigParseArgsJK(t *testing.T) { } func TestConfigParseArgsVars(t *testing.T) { + t.Parallel() ctx := testContext() testCases := []struct { @@ -638,6 +640,7 @@ func TestConfigFindBuildFile(t *testing.T) { } func TestConfigSplitArgs(t *testing.T) { + t.Parallel() tests := []struct { // ********* Setup ********* // Test description. diff --git a/ui/build/environment_test.go b/ui/build/environment_test.go index 37f500f30..d8f83f4d8 100644 --- a/ui/build/environment_test.go +++ b/ui/build/environment_test.go @@ -21,6 +21,7 @@ import ( ) func TestEnvUnset(t *testing.T) { + t.Parallel() initial := &Environment{"TEST=1", "TEST2=0"} initial.Unset("TEST") got := initial.Environ() @@ -30,6 +31,7 @@ func TestEnvUnset(t *testing.T) { } func TestEnvUnsetMissing(t *testing.T) { + t.Parallel() initial := &Environment{"TEST2=0"} initial.Unset("TEST") got := initial.Environ() @@ -39,6 +41,7 @@ func TestEnvUnsetMissing(t *testing.T) { } func TestEnvSet(t *testing.T) { + t.Parallel() initial := &Environment{} initial.Set("TEST", "0") got := initial.Environ() @@ -48,6 +51,7 @@ func TestEnvSet(t *testing.T) { } func TestEnvSetDup(t *testing.T) { + t.Parallel() initial := &Environment{"TEST=1"} initial.Set("TEST", "0") got := initial.Environ() @@ -57,6 +61,7 @@ func TestEnvSetDup(t *testing.T) { } func TestEnvAllow(t *testing.T) { + t.Parallel() initial := &Environment{"TEST=1", "TEST2=0", "TEST3=2"} initial.Allow("TEST3", "TEST") got := initial.Environ() @@ -73,6 +78,7 @@ export 'BUILD_ID'='NYC' ` func TestEnvAppendFromKati(t *testing.T) { + t.Parallel() initial := &Environment{"CLANG=/usr/bin/clang", "TEST=0"} err := initial.appendFromKati(strings.NewReader(testKatiEnvFileContents)) if err != nil { diff --git a/ui/build/paths/logs_test.go b/ui/build/paths/logs_test.go index 3b1005fb5..d5921a88a 100644 --- a/ui/build/paths/logs_test.go +++ b/ui/build/paths/logs_test.go @@ -26,6 +26,7 @@ import ( ) func TestSendLog(t *testing.T) { + t.Parallel() t.Run("Short name", func(t *testing.T) { d, err := ioutil.TempDir("", "s") if err != nil { @@ -105,6 +106,7 @@ func testSendLog(t *testing.T, socket string, lookup socketAddrFunc) { } func TestSendLogError(t *testing.T) { + t.Parallel() d, err := ioutil.TempDir("", "log_socket") if err != nil { t.Fatal(err) diff --git a/ui/build/proc_sync_test.go b/ui/build/proc_sync_test.go index 857bea382..1b52fce87 100644 --- a/ui/build/proc_sync_test.go +++ b/ui/build/proc_sync_test.go @@ -108,6 +108,7 @@ func (c *countLock) Unlock() (err error) { // simple test func TestGetLock(t *testing.T) { + t.Parallel() lockfile := lockOrFail(t) defer removeTestLock(lockfile) } @@ -119,6 +120,7 @@ var unexpectedError = 1 var busyStatus = 2 func TestTrylock(t *testing.T) { + t.Parallel() lockpath := os.Getenv(lockPathVariable) if len(lockpath) < 1 { checkTrylockMainProcess(t) @@ -204,6 +206,7 @@ func getLockAndExit(lockpath string) { } func TestLockFirstTrySucceeds(t *testing.T) { + t.Parallel() noopLogger := logger.New(ioutil.Discard) lock := testLockCountingTo(0) waiter := newCountWaiter(0) @@ -216,6 +219,7 @@ func TestLockFirstTrySucceeds(t *testing.T) { } } func TestLockThirdTrySucceeds(t *testing.T) { + t.Parallel() noopLogger := logger.New(ioutil.Discard) lock := testLockCountingTo(2) waiter := newCountWaiter(2) @@ -228,6 +232,7 @@ func TestLockThirdTrySucceeds(t *testing.T) { } } func TestLockTimedOut(t *testing.T) { + t.Parallel() noopLogger := logger.New(ioutil.Discard) lock := testLockCountingTo(3) waiter := newCountWaiter(2) diff --git a/ui/build/rbe_test.go b/ui/build/rbe_test.go index 8ff96bcbb..fa371bbd2 100644 --- a/ui/build/rbe_test.go +++ b/ui/build/rbe_test.go @@ -26,6 +26,7 @@ import ( ) func TestDumpRBEMetrics(t *testing.T) { + t.Parallel() ctx := testContext() tests := []struct { description string @@ -81,6 +82,7 @@ func TestDumpRBEMetrics(t *testing.T) { } func TestDumpRBEMetricsErrors(t *testing.T) { + t.Parallel() ctx := testContext() tests := []struct { description string diff --git a/ui/build/util_test.go b/ui/build/util_test.go index b22e9977f..a06c3e931 100644 --- a/ui/build/util_test.go +++ b/ui/build/util_test.go @@ -25,6 +25,7 @@ import ( ) func TestEnsureEmptyDirs(t *testing.T) { + t.Parallel() ctx := testContext() defer logger.Recover(func(err error) { t.Error(err) @@ -52,6 +53,7 @@ func TestEnsureEmptyDirs(t *testing.T) { } func TestCopyFile(t *testing.T) { + t.Parallel() tmpDir, err := ioutil.TempDir("", "test_copy_file") if err != nil { t.Fatalf("failed to create temporary directory to hold test text files: %v", err) @@ -86,6 +88,7 @@ func TestCopyFile(t *testing.T) { } func TestCopyFileErrors(t *testing.T) { + t.Parallel() tmpDir, err := ioutil.TempDir("", "test_copy_file_errors") if err != nil { t.Fatalf("failed to create temporary directory to hold test text files: %v", err) diff --git a/ui/logger/logger_test.go b/ui/logger/logger_test.go index 044e6f0b3..7b3791ce2 100644 --- a/ui/logger/logger_test.go +++ b/ui/logger/logger_test.go @@ -29,6 +29,7 @@ import ( ) func TestCreateFileWithRotation(t *testing.T) { + t.Parallel() dir, err := ioutil.TempDir("", "test-rotation") if err != nil { t.Fatalf("Failed to get TempDir: %v", err) @@ -96,6 +97,7 @@ func TestCreateFileWithRotation(t *testing.T) { } func TestPanic(t *testing.T) { + t.Parallel() if os.Getenv("ACTUALLY_PANIC") == "1" { panicValue := "foo" log := New(&bytes.Buffer{}) @@ -128,6 +130,7 @@ func TestPanic(t *testing.T) { } func TestFatal(t *testing.T) { + t.Parallel() if os.Getenv("ACTUALLY_FATAL") == "1" { log := New(&bytes.Buffer{}) defer func() { @@ -150,6 +153,7 @@ func TestFatal(t *testing.T) { } func TestNonFatal(t *testing.T) { + t.Parallel() if os.Getenv("ACTUAL_TEST") == "1" { log := New(&bytes.Buffer{}) defer log.Cleanup() @@ -166,6 +170,7 @@ func TestNonFatal(t *testing.T) { } func TestRecoverFatal(t *testing.T) { + t.Parallel() log := New(&bytes.Buffer{}) defer func() { if p := recover(); p != nil { @@ -182,6 +187,7 @@ func TestRecoverFatal(t *testing.T) { } func TestRecoverNonFatal(t *testing.T) { + t.Parallel() log := New(&bytes.Buffer{}) defer func() { if p := recover(); p == nil { @@ -198,6 +204,7 @@ func TestRecoverNonFatal(t *testing.T) { } func TestRuntimePanic(t *testing.T) { + t.Parallel() defer func() { if p := recover(); p == nil { t.Errorf("Panic not thrown") diff --git a/ui/metrics/time_test.go b/ui/metrics/time_test.go index d73080ab2..16d6a208f 100644 --- a/ui/metrics/time_test.go +++ b/ui/metrics/time_test.go @@ -22,6 +22,7 @@ import ( ) func TestEnd(t *testing.T) { + t.Parallel() startTime := time.Date(2020, time.July, 13, 13, 0, 0, 0, time.UTC) dur := time.Nanosecond * 10 initialNow := _now diff --git a/ui/status/critical_path_test.go b/ui/status/critical_path_test.go index 965e0ad13..e44298b89 100644 --- a/ui/status/critical_path_test.go +++ b/ui/status/critical_path_test.go @@ -51,6 +51,7 @@ func (t *testCriticalPath) finish(id int, endTime time.Duration) { } func TestCriticalPath(t *testing.T) { + t.Parallel() tests := []struct { name string msgs func(*testCriticalPath) diff --git a/ui/status/kati_test.go b/ui/status/kati_test.go index f2cb81326..24a38b35a 100644 --- a/ui/status/kati_test.go +++ b/ui/status/kati_test.go @@ -43,6 +43,7 @@ func (l *lastOutput) Message(level MsgLevel, msg string) { func (l *lastOutput) Flush() {} func TestKatiNormalCase(t *testing.T) { + t.Parallel() status := &Status{} output := &lastOutput{} status.AddOutput(output) @@ -110,6 +111,7 @@ func TestKatiNormalCase(t *testing.T) { } func TestKatiExtraIncludes(t *testing.T) { + t.Parallel() status := &Status{} output := &lastOutput{} status.AddOutput(output) @@ -156,6 +158,7 @@ func TestKatiExtraIncludes(t *testing.T) { } func TestKatiFailOnError(t *testing.T) { + t.Parallel() status := &Status{} output := &lastOutput{} status.AddOutput(output) diff --git a/ui/status/ninja_test.go b/ui/status/ninja_test.go index c400c97ee..232be554f 100644 --- a/ui/status/ninja_test.go +++ b/ui/status/ninja_test.go @@ -26,6 +26,7 @@ import ( // Tests that closing the ninja reader when nothing has opened the other end of the fifo is fast. func TestNinjaReader_Close(t *testing.T) { + t.Parallel() tempDir, err := ioutil.TempDir("", "ninja_test") if err != nil { t.Fatal(err) diff --git a/ui/status/status_test.go b/ui/status/status_test.go index 949458222..2a90c7bab 100644 --- a/ui/status/status_test.go +++ b/ui/status/status_test.go @@ -53,6 +53,7 @@ func (c counterOutput) Expect(t *testing.T, counts Counts) { } func TestBasicUse(t *testing.T) { + t.Parallel() status := &Status{} counts := &counterOutput{} status.AddOutput(counts) @@ -101,6 +102,7 @@ func TestBasicUse(t *testing.T) { // For when a tool claims to have 2 actions, but finishes after one. func TestFinishEarly(t *testing.T) { + t.Parallel() status := &Status{} counts := &counterOutput{} status.AddOutput(counts) @@ -129,6 +131,7 @@ func TestFinishEarly(t *testing.T) { // For when a tool claims to have 1 action, but starts two. func TestExtraActions(t *testing.T) { + t.Parallel() status := &Status{} counts := &counterOutput{} status.AddOutput(counts) @@ -149,6 +152,7 @@ func TestExtraActions(t *testing.T) { // When a tool calls Finish() with a running Action func TestRunningWhenFinished(t *testing.T) { + t.Parallel() status := &Status{} counts := &counterOutput{} status.AddOutput(counts) diff --git a/ui/terminal/status_test.go b/ui/terminal/status_test.go index aa69dff53..da109124f 100644 --- a/ui/terminal/status_test.go +++ b/ui/terminal/status_test.go @@ -25,6 +25,7 @@ import ( ) func TestStatusOutput(t *testing.T) { + t.Parallel() tests := []struct { name string calls func(stat status.StatusOutput) @@ -266,6 +267,7 @@ func actionWithOuptutWithAnsiCodes(stat status.StatusOutput) { } func TestSmartStatusOutputWidthChange(t *testing.T) { + t.Parallel() os.Setenv(tableHeightEnVar, "") smart := &fakeSmartTerminal{termWidth: 40} diff --git a/ui/terminal/util_test.go b/ui/terminal/util_test.go index 82bde7c5d..b01b13305 100644 --- a/ui/terminal/util_test.go +++ b/ui/terminal/util_test.go @@ -19,6 +19,7 @@ import ( ) func TestStripAnsiEscapes(t *testing.T) { + t.Parallel() testcases := []struct { input string output string diff --git a/xml/xml_test.go b/xml/xml_test.go index abcb1085f..d9a6ceea7 100644 --- a/xml/xml_test.go +++ b/xml/xml_test.go @@ -78,6 +78,7 @@ func assertEqual(t *testing.T, name, expected, actual string) { // Minimal test func TestPrebuiltEtcXml(t *testing.T) { + t.Parallel() ctx := testXml(t, ` prebuilt_etc_xml { name: "foo.xml", diff --git a/zip/zip_test.go b/zip/zip_test.go index 302a749a3..9e1ef90ff 100644 --- a/zip/zip_test.go +++ b/zip/zip_test.go @@ -102,6 +102,7 @@ func fileArgsBuilder() *FileArgsBuilder { } func TestZip(t *testing.T) { + t.Parallel() testCases := []struct { name string args *FileArgsBuilder @@ -530,6 +531,7 @@ func TestZip(t *testing.T) { } func TestReadRespFile(t *testing.T) { + t.Parallel() testCases := []struct { name, in string out []string @@ -602,6 +604,7 @@ func TestReadRespFile(t *testing.T) { } func TestSrcJar(t *testing.T) { + t.Parallel() mockFs := pathtools.MockFs(map[string][]byte{ "wrong_package.java": []byte("package foo;"), "foo/correct_package.java": []byte("package foo;"),