Ensure APEX's Java deps use stable SDKs.
Test: m Bug: 153333044 Change-Id: Ib1acf3073e96fe23c92d292ec0b1a91e2cd408db
This commit is contained in:
@@ -1403,6 +1403,122 @@ func TestInvalidMinSdkVersion(t *testing.T) {
|
||||
`)
|
||||
}
|
||||
|
||||
func TestJavaStableSdkVersion(t *testing.T) {
|
||||
testCases := []struct {
|
||||
name string
|
||||
expectedError string
|
||||
bp string
|
||||
}{
|
||||
{
|
||||
name: "Non-updatable apex with non-stable dep",
|
||||
bp: `
|
||||
apex {
|
||||
name: "myapex",
|
||||
java_libs: ["myjar"],
|
||||
key: "myapex.key",
|
||||
}
|
||||
apex_key {
|
||||
name: "myapex.key",
|
||||
public_key: "testkey.avbpubkey",
|
||||
private_key: "testkey.pem",
|
||||
}
|
||||
java_library {
|
||||
name: "myjar",
|
||||
srcs: ["foo/bar/MyClass.java"],
|
||||
sdk_version: "core_platform",
|
||||
apex_available: ["myapex"],
|
||||
}
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: "Updatable apex with stable dep",
|
||||
bp: `
|
||||
apex {
|
||||
name: "myapex",
|
||||
java_libs: ["myjar"],
|
||||
key: "myapex.key",
|
||||
updatable: true,
|
||||
min_sdk_version: "29",
|
||||
}
|
||||
apex_key {
|
||||
name: "myapex.key",
|
||||
public_key: "testkey.avbpubkey",
|
||||
private_key: "testkey.pem",
|
||||
}
|
||||
java_library {
|
||||
name: "myjar",
|
||||
srcs: ["foo/bar/MyClass.java"],
|
||||
sdk_version: "current",
|
||||
apex_available: ["myapex"],
|
||||
}
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: "Updatable apex with non-stable dep",
|
||||
expectedError: "cannot depend on \"myjar\"",
|
||||
bp: `
|
||||
apex {
|
||||
name: "myapex",
|
||||
java_libs: ["myjar"],
|
||||
key: "myapex.key",
|
||||
updatable: true,
|
||||
}
|
||||
apex_key {
|
||||
name: "myapex.key",
|
||||
public_key: "testkey.avbpubkey",
|
||||
private_key: "testkey.pem",
|
||||
}
|
||||
java_library {
|
||||
name: "myjar",
|
||||
srcs: ["foo/bar/MyClass.java"],
|
||||
sdk_version: "core_platform",
|
||||
apex_available: ["myapex"],
|
||||
}
|
||||
`,
|
||||
},
|
||||
{
|
||||
name: "Updatable apex with non-stable transitive dep",
|
||||
expectedError: "compiles against Android API, but dependency \"transitive-jar\" is compiling against non-public Android API.",
|
||||
bp: `
|
||||
apex {
|
||||
name: "myapex",
|
||||
java_libs: ["myjar"],
|
||||
key: "myapex.key",
|
||||
updatable: true,
|
||||
}
|
||||
apex_key {
|
||||
name: "myapex.key",
|
||||
public_key: "testkey.avbpubkey",
|
||||
private_key: "testkey.pem",
|
||||
}
|
||||
java_library {
|
||||
name: "myjar",
|
||||
srcs: ["foo/bar/MyClass.java"],
|
||||
sdk_version: "current",
|
||||
apex_available: ["myapex"],
|
||||
static_libs: ["transitive-jar"],
|
||||
}
|
||||
java_library {
|
||||
name: "transitive-jar",
|
||||
srcs: ["foo/bar/MyClass.java"],
|
||||
sdk_version: "core_platform",
|
||||
apex_available: ["myapex"],
|
||||
}
|
||||
`,
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range testCases {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
if test.expectedError == "" {
|
||||
testApex(t, test.bp)
|
||||
} else {
|
||||
testApexError(t, test.expectedError, test.bp)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilesInSubDir(t *testing.T) {
|
||||
ctx, _ := testApex(t, `
|
||||
apex {
|
||||
@@ -4441,6 +4557,7 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) {
|
||||
java_library {
|
||||
name: "some-updatable-apex-lib",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "current",
|
||||
apex_available: [
|
||||
"some-updatable-apex",
|
||||
],
|
||||
@@ -4457,12 +4574,14 @@ func TestNoUpdatableJarsInBootImage(t *testing.T) {
|
||||
java_library {
|
||||
name: "some-platform-lib",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "current",
|
||||
installable: true,
|
||||
}
|
||||
|
||||
java_library {
|
||||
name: "some-art-lib",
|
||||
srcs: ["a.java"],
|
||||
sdk_version: "current",
|
||||
apex_available: [
|
||||
"com.android.art.something",
|
||||
],
|
||||
|
Reference in New Issue
Block a user