diff options
| author | 2024-02-07 00:54:43 +0000 | |
|---|---|---|
| committer | 2024-02-07 00:54:43 +0000 | |
| commit | f8c004263a41265708da3553d0fff2910faaea59 (patch) | |
| tree | 82a37fb365907c63801187c0bf73a76a063a4c7d /java/system_modules_test.go | |
| parent | d2e49a9261f82f90b26ec0cdad7c5bc1a8c11a46 (diff) | |
| parent | 161e468774beca6dbcedec7fbc1ac3eee6858a91 (diff) | |
Merge changes Ia899d75e,I9f885ffa into main
* changes:
Use source_module_name to determine the contents of prebuilt apexes
Support mechanism to select a specific version of module sdk prebuilt
Diffstat (limited to 'java/system_modules_test.go')
| -rw-r--r-- | java/system_modules_test.go | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/java/system_modules_test.go b/java/system_modules_test.go index 2ceca5d0b..336dd2134 100644 --- a/java/system_modules_test.go +++ b/java/system_modules_test.go @@ -15,6 +15,7 @@ package java import ( + "fmt" "testing" "android/soong/android" @@ -111,3 +112,85 @@ func TestJavaSystemModulesMixSourceAndPrebuilt(t *testing.T) { expectedPrebuiltPaths := getModuleHeaderJarsAsRelativeToTopPaths(result, "prebuilt_system-module1", "prebuilt_system-module2") android.AssertArrayString(t, "prebuilt system modules inputs", expectedPrebuiltPaths, prebuiltInputs.RelativeToTop().Strings()) } + +func TestMultipleSystemModulesPrebuilts(t *testing.T) { + bp := ` + // an rdep + java_library { + name: "foo", + sdk_version: "none", + system_modules: "my_system_modules", + } + + // multiple variations of java_system_modules + // source + java_system_modules { + name: "my_system_modules", + libs: ["bar"], + } + java_library { + name: "bar", + srcs: ["bar.java"], + } + // prebuilt "v1" + java_system_modules_import { + name: "my_system_modules.v1", + source_module_name: "my_system_modules", + libs: ["bar.v1"], + } + java_import { + name: "bar.v1", + source_module_name: "bar", + jars: ["bar.v1.jar"], + } + // prebuilt "v2" + java_system_modules_import { + name: "my_system_modules.v2", + source_module_name: "my_system_modules", + libs: ["bar.v2"], + } + java_import { + name: "bar.v2", + source_module_name: "bar", + jars: ["bar.v2.jar"], + } + + // selectors + apex_contributions { + name: "myapex_contributions", + contents: ["%v"], + } + ` + testCases := []struct { + desc string + selectedDependencyName string + }{ + { + desc: "Source system_modules is selected using apex_contributions", + selectedDependencyName: "my_system_modules", + }, + { + desc: "Prebuilt system_modules v1 is selected using apex_contributions", + selectedDependencyName: "prebuilt_my_system_modules.v1", + }, + { + desc: "Prebuilt system_modules v2 is selected using apex_contributions", + selectedDependencyName: "prebuilt_my_system_modules.v2", + }, + } + + for _, tc := range testCases { + res := android.GroupFixturePreparers( + prepareForJavaTest, + android.FixtureModifyProductVariables(func(variables android.FixtureProductVariables) { + variables.BuildFlags = map[string]string{ + "RELEASE_APEX_CONTRIBUTIONS_ADSERVICES": "myapex_contributions", + } + }), + ).RunTestWithBp(t, fmt.Sprintf(bp, tc.selectedDependencyName)) + + // check that rdep gets the correct variation of system_modules + hasDep := CheckModuleHasDependency(t, res.TestContext, "foo", "android_common", tc.selectedDependencyName) + android.AssertBoolEquals(t, fmt.Sprintf("expected dependency from foo to %s\n", tc.selectedDependencyName), true, hasDep) + } +} |