aboutsummaryrefslogtreecommitdiffstats
path: root/sdk
diff options
context:
space:
mode:
authorPaul Duffin <paulduffin@google.com>2019-11-26 18:02:20 +0000
committerPaul Duffin <paulduffin@google.com>2019-11-26 22:30:19 +0000
commitac37c503e05fa4d99a97bac4cf97a65dc8406795 (patch)
treee9cbde71a06a6f8f2db3194635c8c3006f7175b4 /sdk
parent0375dd9a377fcfa869ebbf2761341f5712a16c6b (diff)
downloadbuild_soong-ac37c503e05fa4d99a97bac4cf97a65dc8406795.tar.gz
build_soong-ac37c503e05fa4d99a97bac4cf97a65dc8406795.tar.bz2
build_soong-ac37c503e05fa4d99a97bac4cf97a65dc8406795.zip
Check the contents of an SDK snapshot's generated Android.bp
Test: m nothing Bug: 143678475 Change-Id: I407d83c79d6b1ad8082e560726f0bfa7cacab3f0
Diffstat (limited to 'sdk')
-rw-r--r--sdk/sdk.go3
-rw-r--r--sdk/sdk_test.go99
-rw-r--r--sdk/update.go5
3 files changed, 106 insertions, 1 deletions
diff --git a/sdk/sdk.go b/sdk/sdk.go
index ac6fce98..321d5ab2 100644
--- a/sdk/sdk.go
+++ b/sdk/sdk.go
@@ -44,6 +44,9 @@ type sdk struct {
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 b40ec130..a4f54ef3 100644
--- a/sdk/sdk_test.go
+++ b/sdk/sdk_test.go
@@ -491,9 +491,98 @@ func TestSnapshot(t *testing.T) {
}
`)
+ 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 TestSnapshot(t *testing.T) {
}
}
+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 6d7b3ecb..e45bd49a 100644
--- a/sdk/update.go
+++ b/sdk/update.go
@@ -249,6 +249,7 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext) android.OutputPath {
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 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext) android.OutputPath {
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) {