diff options
author | Anton Hansson <hansson@google.com> | 2020-10-08 14:47:23 +0100 |
---|---|---|
committer | Anton Hansson <hansson@google.com> | 2020-10-09 13:49:30 +0100 |
commit | 7f66efa10c126ca6ad22e1452e7af4dcaca730e1 (patch) | |
tree | 7a89eae9d89513f3e774a944656aa1fb3e0d0dd8 /java/java_test.go | |
parent | 70bc5454079dd5a99fa5342990683524b327e954 (diff) |
Add a Impl_only_libs prop for sdk_library
Similar to Stubs_only_libs, this allows being a bit more specific
about what libs compile against what. In my usecase, it allows
removing a platform dependency from the appsearch stubs, which allows
the platform to depends on the stubs.
Bug: 169304493
Test: m
Change-Id: Ie997462819cd5266a761b2d415e81806c7877967
Merged-In: Ie997462819cd5266a761b2d415e81806c7877967
Diffstat (limited to 'java/java_test.go')
-rw-r--r-- | java/java_test.go | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/java/java_test.go b/java/java_test.go index f16639aa8..929162269 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -1556,6 +1556,39 @@ func TestJavaSdkLibrary(t *testing.T) { } } +func TestJavaSdkLibrary_StubOrImplOnlyLibs(t *testing.T) { + ctx, _ := testJava(t, ` + java_sdk_library { + name: "sdk_lib", + srcs: ["a.java"], + impl_only_libs: ["foo"], + stub_only_libs: ["bar"], + } + java_library { + name: "foo", + srcs: ["a.java"], + sdk_version: "current", + } + java_library { + name: "bar", + srcs: ["a.java"], + sdk_version: "current", + } + `) + + for _, implName := range []string{"sdk_lib", "sdk_lib.impl"} { + implJavacCp := ctx.ModuleForTests(implName, "android_common").Rule("javac").Args["classpath"] + if !strings.Contains(implJavacCp, "/foo.jar") || strings.Contains(implJavacCp, "/bar.jar") { + t.Errorf("%v javac classpath %v does not contain foo and not bar", implName, implJavacCp) + } + } + stubName := apiScopePublic.stubsLibraryModuleName("sdk_lib") + stubsJavacCp := ctx.ModuleForTests(stubName, "android_common").Rule("javac").Args["classpath"] + if strings.Contains(stubsJavacCp, "/foo.jar") || !strings.Contains(stubsJavacCp, "/bar.jar") { + t.Errorf("stubs javac classpath %v does not contain bar and not foo", stubsJavacCp) + } +} + func TestJavaSdkLibrary_DoNotAccessImplWhenItIsNotBuilt(t *testing.T) { ctx, _ := testJava(t, ` java_sdk_library { |