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
This commit is contained in:
@@ -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 {
|
||||
|
Reference in New Issue
Block a user