diff options
Diffstat (limited to 'java/java_test.go')
| -rw-r--r-- | java/java_test.go | 52 |
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) { |
