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.go52
1 files changed, 49 insertions, 3 deletions
diff --git a/java/java_test.go b/java/java_test.go
index 3ae993d26..5335d7897 100644
--- a/java/java_test.go
+++ b/java/java_test.go
@@ -63,6 +63,7 @@ func testContext(config android.Config, bp string,
ctx := android.NewTestArchContext()
ctx.RegisterModuleType("android_app", android.ModuleFactoryAdaptor(AndroidAppFactory))
ctx.RegisterModuleType("android_app_certificate", android.ModuleFactoryAdaptor(AndroidAppCertificateFactory))
+ ctx.RegisterModuleType("android_app_import", android.ModuleFactoryAdaptor(AndroidAppImportFactory))
ctx.RegisterModuleType("android_library", android.ModuleFactoryAdaptor(AndroidLibraryFactory))
ctx.RegisterModuleType("android_test", android.ModuleFactoryAdaptor(AndroidTestFactory))
ctx.RegisterModuleType("android_test_helper_app", android.ModuleFactoryAdaptor(AndroidTestHelperAppFactory))
@@ -86,6 +87,7 @@ func testContext(config android.Config, bp string,
ctx.RegisterModuleType("droiddoc_host", android.ModuleFactoryAdaptor(DroiddocHostFactory))
ctx.RegisterModuleType("droiddoc_template", android.ModuleFactoryAdaptor(ExportedDroiddocDirFactory))
ctx.RegisterModuleType("java_sdk_library", android.ModuleFactoryAdaptor(SdkLibraryFactory))
+ ctx.RegisterModuleType("java_sdk_library_import", android.ModuleFactoryAdaptor(sdkLibraryImportFactory))
ctx.RegisterModuleType("override_android_app", android.ModuleFactoryAdaptor(OverrideAndroidAppModuleFactory))
ctx.RegisterModuleType("prebuilt_apis", android.ModuleFactoryAdaptor(PrebuiltApisFactory))
ctx.PreArchMutators(android.RegisterPrebuiltsPreArchMutators)
@@ -94,10 +96,9 @@ func testContext(config android.Config, bp string,
ctx.PreArchMutators(android.RegisterOverridePreArchMutators)
ctx.PreArchMutators(func(ctx android.RegisterMutatorsContext) {
ctx.TopDown("prebuilt_apis", PrebuiltApisMutator).Parallel()
- ctx.TopDown("java_sdk_library", SdkLibraryMutator).Parallel()
})
ctx.RegisterPreSingletonType("overlay", android.SingletonFactoryAdaptor(OverlaySingletonFactory))
- ctx.RegisterPreSingletonType("sdk", android.SingletonFactoryAdaptor(sdkSingletonFactory))
+ ctx.RegisterPreSingletonType("sdk_versions", android.SingletonFactoryAdaptor(sdkPreSingletonFactory))
// Register module types and mutators from cc needed for JNI testing
ctx.RegisterModuleType("cc_library", android.ModuleFactoryAdaptor(cc.LibraryFactory))
@@ -131,6 +132,7 @@ func testContext(config android.Config, bp string,
"api/system-removed.txt": nil,
"api/test-current.txt": nil,
"api/test-removed.txt": nil,
+ "framework/aidl/a.aidl": nil,
"prebuilts/sdk/14/public/android.jar": nil,
"prebuilts/sdk/14/public/framework.aidl": nil,
@@ -162,6 +164,8 @@ func testContext(config android.Config, bp string,
"prebuilts/sdk/tools/core-lambda-stubs.jar": nil,
"prebuilts/sdk/Android.bp": []byte(`prebuilt_apis { name: "sdk", api_dirs: ["14", "28", "current"],}`),
+ "prebuilts/apk/app.apk": nil,
+
// For framework-res, which is an implicit dependency for framework
"AndroidManifest.xml": nil,
"build/make/target/product/security/testkey": nil,
@@ -324,7 +328,7 @@ func TestPrebuilts(t *testing.T) {
java_library {
name: "foo",
srcs: ["a.java"],
- libs: ["bar"],
+ libs: ["bar", "sdklib"],
static_libs: ["baz"],
}
@@ -342,17 +346,27 @@ func TestPrebuilts(t *testing.T) {
name: "qux",
jars: ["b.jar"],
}
+
+ java_sdk_library_import {
+ name: "sdklib",
+ jars: ["b.jar"],
+ }
`)
javac := ctx.ModuleForTests("foo", "android_common").Rule("javac")
combineJar := ctx.ModuleForTests("foo", "android_common").Description("for javac")
barJar := ctx.ModuleForTests("bar", "android_common").Rule("combineJar").Output
bazJar := ctx.ModuleForTests("baz", "android_common").Rule("combineJar").Output
+ sdklibStubsJar := ctx.ModuleForTests("sdklib.stubs", "android_common").Rule("combineJar").Output
if !strings.Contains(javac.Args["classpath"], barJar.String()) {
t.Errorf("foo classpath %v does not contain %q", javac.Args["classpath"], barJar.String())
}
+ if !strings.Contains(javac.Args["classpath"], sdklibStubsJar.String()) {
+ t.Errorf("foo classpath %v does not contain %q", javac.Args["classpath"], sdklibStubsJar.String())
+ }
+
if len(combineJar.Inputs) != 2 || combineJar.Inputs[1].String() != bazJar.String() {
t.Errorf("foo combineJar inputs %v does not contain %q", combineJar.Inputs, bazJar.String())
}
@@ -367,6 +381,7 @@ func TestDefaults(t *testing.T) {
srcs: ["a.java"],
libs: ["bar"],
static_libs: ["baz"],
+ optimize: {enabled: false},
}
java_library {
@@ -383,6 +398,22 @@ func TestDefaults(t *testing.T) {
name: "baz",
srcs: ["c.java"],
}
+
+ android_test {
+ name: "atestOptimize",
+ defaults: ["defaults"],
+ optimize: {enabled: true},
+ }
+
+ android_test {
+ name: "atestNoOptimize",
+ defaults: ["defaults"],
+ }
+
+ android_test {
+ name: "atestDefault",
+ srcs: ["a.java"],
+ }
`)
javac := ctx.ModuleForTests("foo", "android_common").Rule("javac")
@@ -401,6 +432,21 @@ func TestDefaults(t *testing.T) {
if len(combineJar.Inputs) != 2 || combineJar.Inputs[1].String() != baz {
t.Errorf("foo combineJar inputs %v does not contain %q", combineJar.Inputs, baz)
}
+
+ atestOptimize := ctx.ModuleForTests("atestOptimize", "android_common").MaybeRule("r8")
+ if atestOptimize.Output == nil {
+ t.Errorf("atestOptimize should optimize APK")
+ }
+
+ atestNoOptimize := ctx.ModuleForTests("atestNoOptimize", "android_common").MaybeRule("d8")
+ if atestNoOptimize.Output == nil {
+ t.Errorf("atestNoOptimize should not optimize APK")
+ }
+
+ atestDefault := ctx.ModuleForTests("atestDefault", "android_common").MaybeRule("r8")
+ if atestDefault.Output == nil {
+ t.Errorf("atestDefault should optimize APK")
+ }
}
func TestResources(t *testing.T) {