diff options
author | 2020-08-28 09:36:13 +0000 | |
---|---|---|
committer | 2020-08-28 09:36:13 +0000 | |
commit | b8822a0616bbee37d61fb1f842ce1fe2e6ccb3d0 (patch) | |
tree | fc4e377cddea1e7ac99468f2952ef42d381a610a /java/app_test.go | |
parent | 03156929db40ec5d7dd4e804c2e83ab49a25537f (diff) | |
parent | fc24ad3d4e23ec992d47621601a98bebec6695bb (diff) |
Merge "Propagate transitive SDK Java library dependencies to dexpreopt."
Diffstat (limited to 'java/app_test.go')
-rw-r--r-- | java/app_test.go | 31 |
1 files changed, 27 insertions, 4 deletions
diff --git a/java/app_test.go b/java/app_test.go index 53d1f0bde..b8d8616f3 100644 --- a/java/app_test.go +++ b/java/app_test.go @@ -2618,6 +2618,19 @@ func TestUsesLibraries(t *testing.T) { android_app { name: "app", srcs: ["a.java"], + libs: ["qux", "quuz"], + static_libs: ["static-runtime-helper"], + uses_libs: ["foo"], + sdk_version: "current", + optional_uses_libs: [ + "bar", + "baz", + ], + } + + android_app { + name: "app_with_stub_deps", + srcs: ["a.java"], libs: ["qux", "quuz.stubs"], static_libs: ["static-runtime-helper"], uses_libs: ["foo"], @@ -2648,6 +2661,7 @@ func TestUsesLibraries(t *testing.T) { run(t, ctx, config) app := ctx.ModuleForTests("app", "android_common") + appWithStubDeps := ctx.ModuleForTests("app_with_stub_deps", "android_common") prebuilt := ctx.ModuleForTests("prebuilt", "android_common") // Test that implicit dependencies on java_sdk_library instances are passed to the manifest. @@ -2678,15 +2692,24 @@ func TestUsesLibraries(t *testing.T) { t.Errorf("wanted %q in %q", w, cmd) } - // Test that only present libraries are preopted + // Test that all present libraries are preopted, including implicit SDK dependencies cmd = app.Rule("dexpreopt").RuleParams.Command - - if w := `--target-classpath-for-sdk any /system/framework/foo.jar:/system/framework/bar.jar`; !strings.Contains(cmd, w) { + w := `--target-classpath-for-sdk any` + + ` /system/framework/foo.jar` + + `:/system/framework/quuz.jar` + + `:/system/framework/qux.jar` + + `:/system/framework/runtime-library.jar` + + `:/system/framework/bar.jar` + if !strings.Contains(cmd, w) { t.Errorf("wanted %q in %q", w, cmd) } - cmd = prebuilt.Rule("dexpreopt").RuleParams.Command + // TODO(skvadrik) fix dexpreopt for stub libraries for which the implementation is present + if appWithStubDeps.MaybeRule("dexpreopt").RuleParams.Command != "" { + t.Errorf("dexpreopt should be disabled for apps with dependencies on stub libraries") + } + cmd = prebuilt.Rule("dexpreopt").RuleParams.Command if w := `--target-classpath-for-sdk any /system/framework/foo.jar:/system/framework/bar.jar`; !strings.Contains(cmd, w) { t.Errorf("wanted %q in %q", w, cmd) } |