From 965714f13942350b770a7985a473ccb6a414f406 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Tue, 3 Oct 2017 20:57:01 -0700 Subject: [PATCH] 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 --- java/java.go | 4 +--- java/java_test.go | 27 +++++++++++++++++++++------ 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/java/java.go b/java/java.go index eb9480619..3eadbb658 100644 --- a/java/java.go +++ b/java/java.go @@ -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...) diff --git a/java/java_test.go b/java/java_test.go index 2b92f49e7..a4a3f52bf 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -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+`