bootclasspath_fragment: Add contents to snapshot

Bug: 177892522
Test: m nothing
Change-Id: I54fe0537b758a0e3dacd34b139ef3eb21b8841fd
This commit is contained in:
Paul Duffin
2021-04-19 13:23:06 +01:00
parent 0b28a8d356
commit a57835e8e5
5 changed files with 186 additions and 6 deletions

View File

@@ -18,20 +18,146 @@ import (
"testing"
"android/soong/android"
"android/soong/java"
)
func TestSnapshotWithBootclasspathFragment(t *testing.T) {
func TestSnapshotWithBootclasspathFragment_ImageName(t *testing.T) {
result := android.GroupFixturePreparers(
prepareForSdkTestWithJava,
prepareForSdkTestWithApex,
// Some additional files needed for the art apex.
android.FixtureMergeMockFs(android.MockFS{
"com.android.art.avbpubkey": nil,
"com.android.art.pem": nil,
"system/sepolicy/apex/com.android.art-file_contexts": nil,
}),
java.FixtureConfigureBootJars("com.android.art:mybootlib"),
android.FixtureWithRootAndroidBp(`
sdk {
name: "mysdk",
bootclasspath_fragments: ["mybootclasspathfragment"],
java_boot_libs: ["mybootlib"],
}
apex {
name: "com.android.art",
key: "com.android.art.key",
bootclasspath_fragments: [
"mybootclasspathfragment",
],
updatable: false,
}
bootclasspath_fragment {
name: "mybootclasspathfragment",
image_name: "art",
apex_available: ["com.android.art"],
}
apex_key {
name: "com.android.art.key",
public_key: "com.android.art.avbpubkey",
private_key: "com.android.art.pem",
}
java_library {
name: "mybootlib",
srcs: ["Test.java"],
system_modules: "none",
sdk_version: "none",
compile_dex: true,
apex_available: ["com.android.art"],
}
`),
).RunTest(t)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
prebuilt_bootclasspath_fragment {
name: "mybootclasspathfragment",
prefer: false,
visibility: ["//visibility:public"],
apex_available: ["com.android.art"],
image_name: "art",
}
java_import {
name: "mybootlib",
prefer: false,
visibility: ["//visibility:public"],
apex_available: ["com.android.art"],
jars: ["java/mybootlib.jar"],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
prebuilt_bootclasspath_fragment {
name: "mysdk_mybootclasspathfragment@current",
sdk_member_name: "mybootclasspathfragment",
visibility: ["//visibility:public"],
apex_available: ["com.android.art"],
image_name: "art",
}
java_import {
name: "mysdk_mybootlib@current",
sdk_member_name: "mybootlib",
visibility: ["//visibility:public"],
apex_available: ["com.android.art"],
jars: ["java/mybootlib.jar"],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
bootclasspath_fragments: ["mysdk_mybootclasspathfragment@current"],
java_boot_libs: ["mysdk_mybootlib@current"],
}
`),
checkAllCopyRules(`
.intermediates/mybootlib/android_common/javac/mybootlib.jar -> java/mybootlib.jar
`),
snapshotTestPreparer(checkSnapshotPreferredWithSource, android.GroupFixturePreparers(
android.FixtureAddTextFile("prebuilts/apex/Android.bp", `
prebuilt_apex {
name: "com.android.art",
src: "art.apex",
exported_java_libs: [
"mybootlib",
],
}
`),
android.FixtureAddFile("prebuilts/apex/art.apex", nil),
),
),
)
}
func TestSnapshotWithBootClasspathFragment_Contents(t *testing.T) {
result := android.GroupFixturePreparers(
prepareForSdkTestWithJava,
android.FixtureWithRootAndroidBp(`
sdk {
name: "mysdk",
bootclasspath_fragments: ["mybootclasspathfragment"],
java_boot_libs: ["mybootlib"],
}
bootclasspath_fragment {
name: "mybootclasspathfragment",
image_name: "art",
contents: ["mybootlib"],
}
java_library {
name: "mybootlib",
srcs: ["Test.java"],
system_modules: "none",
sdk_version: "none",
compile_dex: true,
}
`),
).RunTest(t)
@@ -45,7 +171,15 @@ prebuilt_bootclasspath_fragment {
prefer: false,
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
image_name: "art",
contents: ["mybootlib"],
}
java_import {
name: "mybootlib",
prefer: false,
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/mybootlib.jar"],
}
`),
checkVersionedAndroidBpContents(`
@@ -56,16 +190,27 @@ prebuilt_bootclasspath_fragment {
sdk_member_name: "mybootclasspathfragment",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
image_name: "art",
contents: ["mysdk_mybootlib@current"],
}
java_import {
name: "mysdk_mybootlib@current",
sdk_member_name: "mybootlib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/mybootlib.jar"],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
bootclasspath_fragments: ["mysdk_mybootclasspathfragment@current"],
java_boot_libs: ["mysdk_mybootlib@current"],
}
`),
checkAllCopyRules(""))
checkAllCopyRules(`
.intermediates/mybootlib/android_common/javac/mybootlib.jar -> java/mybootlib.jar
`))
}
// Test that bootclasspath_fragment works with sdk.