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:
commit
5afefecf0e
|
@ -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))
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue