Merge "Improve system modules tests" am: a2fcd19aef

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1628002

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: Ie69ddc34efca822bd9a7cd49cad93d6b0831242a
This commit is contained in:
Paul Duffin 2021-03-11 16:17:21 +00:00 committed by Automerger Merge Worker
commit 5afefecf0e
1 changed files with 56 additions and 20 deletions

View File

@ -16,10 +16,21 @@ package java
import ( import (
"testing" "testing"
"android/soong/android"
) )
func TestJavaSystemModules(t *testing.T) { func normalizedPathsToHeaderJars(result *android.TestResult, moduleNames ...string) []string {
result := javaFixtureFactory.RunTestWithBp(t, ` paths := []string{}
for _, moduleName := range moduleNames {
module := result.Module(moduleName, "android_common")
info := result.ModuleProvider(module, JavaInfoProvider).(JavaInfo)
paths = append(paths, result.NormalizePathsForTesting(info.HeaderJars)...)
}
return paths
}
var addSourceSystemModules = android.FixtureAddTextFile("source/Android.bp", `
java_system_modules { java_system_modules {
name: "system-modules", name: "system-modules",
libs: ["system-module1", "system-module2"], libs: ["system-module1", "system-module2"],
@ -36,21 +47,21 @@ func TestJavaSystemModules(t *testing.T) {
sdk_version: "none", sdk_version: "none",
system_modules: "none", system_modules: "none",
} }
`) `)
// check the existence of the module func TestJavaSystemModules(t *testing.T) {
systemModules := result.ModuleForTests("system-modules", "android_common") result := javaFixtureFactory.RunTest(t, addSourceSystemModules)
cmd := systemModules.Rule("jarsTosystemModules") // check the existence of the source module
sourceSystemModules := result.ModuleForTests("system-modules", "android_common")
sourceInputs := sourceSystemModules.Rule("jarsTosystemModules").Inputs
// make sure the command compiles against the supplied modules. // The expected paths are the header jars from the source input modules.
for _, module := range []string{"system-module1.jar", "system-module2.jar"} { expectedSourcePaths := normalizedPathsToHeaderJars(result, "system-module1", "system-module2")
result.AssertStringDoesContain("system modules classpath", cmd.Args["classpath"], module) result.AssertArrayString("source system modules inputs", expectedSourcePaths, result.NormalizePathsForTesting(sourceInputs))
}
} }
func TestJavaSystemModulesImport(t *testing.T) { var addPrebuiltSystemModules = android.FixtureAddTextFile("prebuilts/Android.bp", `
result := javaFixtureFactory.RunTestWithBp(t, `
java_system_modules_import { java_system_modules_import {
name: "system-modules", name: "system-modules",
libs: ["system-module1", "system-module2"], libs: ["system-module1", "system-module2"],
@ -63,15 +74,40 @@ func TestJavaSystemModulesImport(t *testing.T) {
name: "system-module2", name: "system-module2",
jars: ["b.jar"], jars: ["b.jar"],
} }
`) `)
// check the existence of the module func TestJavaSystemModulesImport(t *testing.T) {
systemModules := result.ModuleForTests("system-modules", "android_common") result := javaFixtureFactory.RunTest(t, addPrebuiltSystemModules)
cmd := systemModules.Rule("jarsTosystemModules") // check the existence of the renamed prebuilt module
prebuiltSystemModules := result.ModuleForTests("system-modules", "android_common")
prebuiltInputs := prebuiltSystemModules.Rule("jarsTosystemModules").Inputs
// make sure the command compiles against the supplied modules. // The expected paths are the header jars from the renamed prebuilt input modules.
for _, module := range []string{"system-module1.jar", "system-module2.jar"} { expectedPrebuiltPaths := normalizedPathsToHeaderJars(result, "system-module1", "system-module2")
result.AssertStringDoesContain("system modules classpath", cmd.Args["classpath"], module) result.AssertArrayString("renamed prebuilt system modules inputs", expectedPrebuiltPaths, result.NormalizePathsForTesting(prebuiltInputs))
} }
func TestJavaSystemModulesMixSourceAndPrebuilt(t *testing.T) {
result := javaFixtureFactory.RunTest(t,
addSourceSystemModules,
addPrebuiltSystemModules,
)
// check the existence of the source module
sourceSystemModules := result.ModuleForTests("system-modules", "android_common")
sourceInputs := sourceSystemModules.Rule("jarsTosystemModules").Inputs
// The expected paths are the header jars from the source input modules.
expectedSourcePaths := normalizedPathsToHeaderJars(result, "system-module1", "system-module2")
result.AssertArrayString("source system modules inputs", expectedSourcePaths, result.NormalizePathsForTesting(sourceInputs))
// check the existence of the renamed prebuilt module
prebuiltSystemModules := result.ModuleForTests("prebuilt_system-modules", "android_common")
prebuiltInputs := prebuiltSystemModules.Rule("jarsTosystemModules").Inputs
// The expected paths are the header jars from the renamed prebuilt input modules.
// TODO(b/182402568) - these should be depending on the prebuilts
expectedPrebuiltPaths := normalizedPathsToHeaderJars(result, "system-module1", "system-module2")
result.AssertArrayString("prebuilt system modules inputs", expectedPrebuiltPaths, result.NormalizePathsForTesting(prebuiltInputs))
} }