Check the contents of an SDK snapshot's generated Android.bp
Test: m nothing
Bug: 143678475
Change-Id: I407d83c79d6b1ad8082e560726f0bfa7cacab3f0
diff --git a/sdk/sdk.go b/sdk/sdk.go
index ac6fce9..321d5ab 100644
--- a/sdk/sdk.go
+++ b/sdk/sdk.go
@@ -44,6 +44,9 @@
properties sdkProperties
snapshotFile android.OptionalPath
+
+ // The builder, preserved for testing.
+ builderForTests *snapshotBuilder
}
type sdkProperties struct {
diff --git a/sdk/sdk_test.go b/sdk/sdk_test.go
index b40ec13..a4f54ef 100644
--- a/sdk/sdk_test.go
+++ b/sdk/sdk_test.go
@@ -491,9 +491,98 @@
}
`)
+ sdk := ctx.ModuleForTests("mysdk", "android_common").Module().(*sdk)
+
+ checkSnapshotAndroidBpContents(t, sdk, `// This is auto-generated. DO NOT EDIT.
+
+java_import {
+ name: "mysdk_myjavalib@current",
+ sdk_member_name: "myjavalib",
+ jars: ["java/myjavalib.jar"],
+}
+
+java_import {
+ name: "myjavalib",
+ prefer: false,
+ jars: ["java/myjavalib.jar"],
+}
+
+prebuilt_stubs_sources {
+ name: "mysdk_myjavaapistubs@current",
+ sdk_member_name: "myjavaapistubs",
+ srcs: ["java/myjavaapistubs_stubs_sources"],
+}
+
+prebuilt_stubs_sources {
+ name: "myjavaapistubs",
+ srcs: ["java/myjavaapistubs_stubs_sources"],
+ prefer: false,
+}
+
+cc_prebuilt_library_shared {
+ name: "mysdk_mynativelib@current",
+ sdk_member_name: "mynativelib",
+ arch: {
+ arm64: {
+ srcs: ["arm64/lib/mynativelib.so"],
+ export_include_dirs: [
+ "arm64/include/include",
+ "arm64/include_gen/mynativelib",
+ ],
+ },
+ arm: {
+ srcs: ["arm/lib/mynativelib.so"],
+ export_include_dirs: [
+ "arm/include/include",
+ "arm/include_gen/mynativelib",
+ ],
+ },
+ },
+ stl: "none",
+ system_shared_libs: [],
+}
+
+cc_prebuilt_library_shared {
+ name: "mynativelib",
+ prefer: false,
+ arch: {
+ arm64: {
+ srcs: ["arm64/lib/mynativelib.so"],
+ export_include_dirs: [
+ "arm64/include/include",
+ "arm64/include_gen/mynativelib",
+ ],
+ },
+ arm: {
+ srcs: ["arm/lib/mynativelib.so"],
+ export_include_dirs: [
+ "arm/include/include",
+ "arm/include_gen/mynativelib",
+ ],
+ },
+ },
+ stl: "none",
+ system_shared_libs: [],
+}
+
+sdk_snapshot {
+ name: "mysdk@current",
+ java_libs: [
+ "mysdk_myjavalib@current",
+ ],
+ stubs_sources: [
+ "mysdk_myjavaapistubs@current",
+ ],
+ native_shared_libs: [
+ "mysdk_mynativelib@current",
+ ],
+}
+
+`)
+
var copySrcs []string
var copyDests []string
- buildParams := ctx.ModuleForTests("mysdk", "android_common").Module().BuildParamsForTests()
+ buildParams := sdk.BuildParamsForTests()
var zipBp android.BuildParams
for _, bp := range buildParams {
ruleString := bp.Rule.String()
@@ -536,6 +625,14 @@
}
}
+func checkSnapshotAndroidBpContents(t *testing.T, s *sdk, expectedContents string) {
+ t.Helper()
+ androidBpContents := strings.NewReplacer("\\n", "\n").Replace(s.GetAndroidBpContentsForTests())
+ if androidBpContents != expectedContents {
+ t.Errorf("Android.bp contents do not match, expected %s, actual %s", expectedContents, androidBpContents)
+ }
+}
+
var buildDir string
func setUp() {
diff --git a/sdk/update.go b/sdk/update.go
index 6d7b3ec..e45bd49 100644
--- a/sdk/update.go
+++ b/sdk/update.go
@@ -249,6 +249,7 @@
filesToZip: []android.Path{bp.path},
androidBpFile: bp,
}
+ s.builderForTests = builder
// copy exported AIDL files and stub jar files
javaLibs := s.javaLibs(ctx)
@@ -350,6 +351,10 @@
return outputZipFile
}
+func (s *sdk) GetAndroidBpContentsForTests() string {
+ return s.builderForTests.androidBpFile.content.String()
+}
+
func buildSharedNativeLibSnapshot(ctx android.ModuleContext, info *nativeLibInfo, builder android.SnapshotBuilder) {
// a function for emitting include dirs
printExportedDirCopyCommandsForNativeLibs := func(lib archSpecificNativeLibInfo) {