aboutsummaryrefslogtreecommitdiff
path: root/java/java_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'java/java_test.go')
-rw-r--r--java/java_test.go90
1 files changed, 74 insertions, 16 deletions
diff --git a/java/java_test.go b/java/java_test.go
index 0e7bb18b2..de514e048 100644
--- a/java/java_test.go
+++ b/java/java_test.go
@@ -78,14 +78,18 @@ func testContext(config android.Config, bp string,
ctx.RegisterModuleType("java_defaults", android.ModuleFactoryAdaptor(defaultsFactory))
ctx.RegisterModuleType("java_system_modules", android.ModuleFactoryAdaptor(SystemModulesFactory))
ctx.RegisterModuleType("java_genrule", android.ModuleFactoryAdaptor(genRuleFactory))
- ctx.RegisterModuleType("filegroup", android.ModuleFactoryAdaptor(genrule.FileGroupFactory))
+ ctx.RegisterModuleType("filegroup", android.ModuleFactoryAdaptor(android.FileGroupFactory))
ctx.RegisterModuleType("genrule", android.ModuleFactoryAdaptor(genrule.GenRuleFactory))
ctx.RegisterModuleType("droiddoc", android.ModuleFactoryAdaptor(DroiddocFactory))
ctx.RegisterModuleType("droiddoc_host", android.ModuleFactoryAdaptor(DroiddocHostFactory))
ctx.RegisterModuleType("droiddoc_template", android.ModuleFactoryAdaptor(DroiddocTemplateFactory))
+ ctx.RegisterModuleType("java_sdk_library", android.ModuleFactoryAdaptor(sdkLibraryFactory))
ctx.PreArchMutators(android.RegisterPrebuiltsPreArchMutators)
ctx.PreArchMutators(android.RegisterPrebuiltsPostDepsMutators)
ctx.PreArchMutators(android.RegisterDefaultsPreArchMutators)
+ ctx.PreArchMutators(func(ctx android.RegisterMutatorsContext) {
+ ctx.TopDown("java_sdk_library", sdkLibraryMutator).Parallel()
+ })
ctx.RegisterPreSingletonType("overlay", android.SingletonFactoryAdaptor(OverlaySingletonFactory))
ctx.Register()
@@ -151,17 +155,14 @@ func testContext(config android.Config, bp string,
"java-fg/b.java": nil,
"java-fg/c.java": nil,
- "prebuilts/sdk/14/android.jar": nil,
- "prebuilts/sdk/14/framework.aidl": nil,
- "prebuilts/sdk/current/android.jar": nil,
- "prebuilts/sdk/current/framework.aidl": nil,
- "prebuilts/sdk/current/core.jar": nil,
- "prebuilts/sdk/system_current/android.jar": nil,
- "prebuilts/sdk/system_current/framework.aidl": nil,
- "prebuilts/sdk/system_14/android.jar": nil,
- "prebuilts/sdk/system_14/framework.aidl": nil,
- "prebuilts/sdk/test_current/android.jar": nil,
- "prebuilts/sdk/test_current/framework.aidl": nil,
+ "prebuilts/sdk/14/public/android.jar": nil,
+ "prebuilts/sdk/14/public/framework.aidl": nil,
+ "prebuilts/sdk/14/system/android.jar": nil,
+ "prebuilts/sdk/current/public/android.jar": nil,
+ "prebuilts/sdk/current/public/framework.aidl": nil,
+ "prebuilts/sdk/current/public/core.jar": nil,
+ "prebuilts/sdk/current/system/android.jar": nil,
+ "prebuilts/sdk/current/test/android.jar": nil,
// For framework-res, which is an implicit dependency for framework
"AndroidManifest.xml": nil,
@@ -340,7 +341,7 @@ var classpathTestcases = []struct {
properties: `sdk_version: "14",`,
bootclasspath: []string{`""`},
system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath
- classpath: []string{"prebuilts/sdk/14/android.jar"},
+ classpath: []string{"prebuilts/sdk/14/public/android.jar"},
},
{
@@ -362,7 +363,7 @@ var classpathTestcases = []struct {
properties: `sdk_version: "system_14",`,
bootclasspath: []string{`""`},
system: "bootclasspath", // special value to tell 1.9 test to expect bootclasspath
- classpath: []string{"prebuilts/sdk/system_14/android.jar"},
+ classpath: []string{"prebuilts/sdk/14/system/android.jar"},
},
{
@@ -864,9 +865,9 @@ func TestTurbine(t *testing.T) {
if len(barTurbineCombined.Inputs) != 2 || barTurbineCombined.Inputs[1].String() != fooHeaderJar {
t.Errorf("bar turbine combineJar inputs %v does not contain %q", barTurbineCombined.Inputs, fooHeaderJar)
}
- if !strings.Contains(bazJavac.Args["classpath"], "prebuilts/sdk/14/android.jar") {
+ if !strings.Contains(bazJavac.Args["classpath"], "prebuilts/sdk/14/public/android.jar") {
t.Errorf("baz javac classpath %v does not contain %q", bazJavac.Args["classpath"],
- "prebuilts/sdk/14/android.jar")
+ "prebuilts/sdk/14/public/android.jar")
}
}
@@ -1001,3 +1002,60 @@ func TestExcludeFileGroupInSrcs(t *testing.T) {
t.Errorf(`foo inputs %v != ["java-fg/c.java"]`, javac.Inputs)
}
}
+
+func TestJavaSdkLibrary(t *testing.T) {
+ ctx := testJava(t, `
+ droiddoc_template {
+ name: "droiddoc-templates-sdk",
+ path: ".",
+ }
+ java_library {
+ name: "conscrypt",
+ }
+ java_library {
+ name: "bouncycastle",
+ }
+ java_sdk_library {
+ name: "foo",
+ srcs: ["a.java", "b.java"],
+ api_packages: ["foo"],
+ }
+ java_sdk_library {
+ name: "bar",
+ srcs: ["a.java", "b.java"],
+ api_packages: ["bar"],
+ }
+ java_library {
+ name: "baz",
+ srcs: ["c.java"],
+ libs: ["foo", "bar"],
+ sdk_version: "system_current",
+ }
+ `)
+
+ // check the existence of the internal modules
+ ctx.ModuleForTests("foo", "android_common")
+ ctx.ModuleForTests("foo"+sdkStubsLibrarySuffix, "android_common")
+ ctx.ModuleForTests("foo"+sdkStubsLibrarySuffix+sdkSystemApiSuffix, "android_common")
+ ctx.ModuleForTests("foo"+sdkDocsSuffix, "android_common")
+ ctx.ModuleForTests("foo"+sdkDocsSuffix+sdkSystemApiSuffix, "android_common")
+ ctx.ModuleForTests("foo"+sdkImplLibrarySuffix, "android_common")
+ ctx.ModuleForTests("foo"+sdkXmlFileSuffix, "")
+
+ bazJavac := ctx.ModuleForTests("baz", "android_common").Rule("javac")
+ // tests if baz is actually linked to the stubs lib
+ if !strings.Contains(bazJavac.Args["classpath"], "foo.stubs.system.jar") {
+ t.Errorf("baz javac classpath %v does not contain %q", bazJavac.Args["classpath"],
+ "foo.stubs.system.jar")
+ }
+ // ... and not to the impl lib
+ if strings.Contains(bazJavac.Args["classpath"], "foo.impl.jar") {
+ t.Errorf("baz javac classpath %v should not contain %q", bazJavac.Args["classpath"],
+ "foo.impl.jar")
+ }
+ // test if baz is not linked to the system variant of foo
+ if strings.Contains(bazJavac.Args["classpath"], "foo.stubs.jar") {
+ t.Errorf("baz javac classpath %v should not contain %q", bazJavac.Args["classpath"],
+ "foo.stubs.jar")
+ }
+}