diff options
author | Paul Duffin <paulduffin@google.com> | 2020-07-09 17:32:57 +0100 |
---|---|---|
committer | Paul Duffin <paulduffin@google.com> | 2020-07-09 17:51:06 +0100 |
commit | cee7e66b07cdea5d37fbdd94bb1a34cc8caa448f (patch) | |
tree | a426527fda0c17f2fb52ae212f805ca8fae40857 /sdk/java_sdk_test.go | |
parent | 2c79c871d9a7e521a77a9fd0466eb932f5c92cc1 (diff) |
Ensure that sdk/module_exports depends on source members
Previously, preferring a prebuilt of an sdk/module_exports's member
would cause the sdk/module_exports to depend on the prebuilt instead
of the source and cause problems with the build.
This chance prevents the dependency from an sdk/module_exports to its
members from being replaced with prebuilts.
Bug: 160785918
Test: m nothing
Change-Id: Iee4bcd438c11929e30fb5766701b05a0e89956d9
Diffstat (limited to 'sdk/java_sdk_test.go')
-rw-r--r-- | sdk/java_sdk_test.go | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/sdk/java_sdk_test.go b/sdk/java_sdk_test.go index 7496b207d..79da3f05f 100644 --- a/sdk/java_sdk_test.go +++ b/sdk/java_sdk_test.go @@ -16,6 +16,8 @@ package sdk import ( "testing" + + "android/soong/java" ) func testSdkWithJava(t *testing.T, bp string) *testSdkResult { @@ -26,6 +28,9 @@ func testSdkWithJava(t *testing.T, bp string) *testSdkResult { "resource.test": nil, "aidl/foo/bar/Test.aidl": nil, + // For java_import + "prebuilt.jar": nil, + // For java_sdk_library "api/current.txt": nil, "api/removed.txt": nil, @@ -85,6 +90,52 @@ java_import { // Contains tests for SDK members provided by the java package. +func TestSdkDependsOnSourceEvenWhenPrebuiltPreferred(t *testing.T) { + result := testSdkWithJava(t, ` + sdk { + name: "mysdk", + java_header_libs: ["sdkmember"], + } + + java_library { + name: "sdkmember", + srcs: ["Test.java"], + system_modules: "none", + sdk_version: "none", + } + + java_import { + name: "sdkmember", + prefer: true, + jars: ["prebuilt.jar"], + } + `) + + // Make sure that the mysdk module depends on "sdkmember" and not "prebuilt_sdkmember". + java.CheckModuleDependencies(t, result.ctx, "mysdk", "android_common", []string{"sdkmember"}) + + result.CheckSnapshot("mysdk", "", + checkAndroidBpContents(`// This is auto-generated. DO NOT EDIT. + +java_import { + name: "mysdk_sdkmember@current", + sdk_member_name: "sdkmember", + jars: ["java/sdkmember.jar"], +} + +java_import { + name: "sdkmember", + prefer: false, + jars: ["java/sdkmember.jar"], +} + +sdk_snapshot { + name: "mysdk@current", + java_header_libs: ["mysdk_sdkmember@current"], +} +`)) +} + func TestBasicSdkWithJavaLibrary(t *testing.T) { result := testSdkWithJava(t, ` sdk { |