Fix bootclasspath for host variants of java_library modules

The partial hostdex support was causing the host variant of
java_library modules to depend on core-oj and core-libart,
which caused the tagsoup jar to use the wrong
java.lang.System.arraycopy signature.  Remove the hostdex
code that was causing the problem, and add a test.

Test: java_test.go
Change-Id: I4f7b1f29c99aae328ba19b042538d9d35544aa43
This commit is contained in:
Colin Cross 2017-10-03 20:57:01 -07:00
parent 19ab372dd8
commit 965714f139
2 changed files with 22 additions and 9 deletions

View File

@ -285,9 +285,7 @@ func (j *Module) deps(ctx android.BottomUpMutatorContext) {
ctx.AddDependency(ctx.Module(), bootClasspathTag, sdkDep.module)
}
} else {
if j.deviceProperties.Dex {
ctx.AddDependency(ctx.Module(), bootClasspathTag, config.DefaultBootclasspathLibraries...)
}
// TODO(ccross): add hostdex support
}
}
ctx.AddDependency(ctx.Module(), libTag, j.properties.Libs...)

View File

@ -185,6 +185,7 @@ func TestArchSpecific(t *testing.T) {
var classpathTestcases = []struct {
name string
moduleType string
host android.OsClass
properties string
bootclasspath []string
@ -239,27 +240,41 @@ var classpathTestcases = []struct {
{
name: "host default",
host: android.Host,
moduleType: "java_library_host",
properties: ``,
host: android.Host,
classpath: []string{},
},
{
name: "host nostdlib",
moduleType: "java_library_host",
host: android.Host,
properties: `no_standard_libs: true`,
classpath: []string{},
},
{
name: "host supported default",
host: android.Host,
properties: `host_supported: true,`,
classpath: []string{},
},
{
name: "host supported nostdlib",
host: android.Host,
properties: `host_supported: true, no_standard_libs: true`,
classpath: []string{},
},
}
func TestClasspath(t *testing.T) {
for _, testcase := range classpathTestcases {
t.Run(testcase.name, func(t *testing.T) {
hostExtra := ""
if testcase.host == android.Host {
hostExtra = "_host"
moduleType := "java_library"
if testcase.moduleType != "" {
moduleType = testcase.moduleType
}
ctx := testJava(t, `
java_library`+hostExtra+` {
ctx := testJava(t, moduleType+` {
name: "foo",
srcs: ["a.java"],
`+testcase.properties+`