Check the contents of an SDK snapshot's generated Android.bp

Test: m nothing
Bug: 143678475
Change-Id: I407d83c79d6b1ad8082e560726f0bfa7cacab3f0
This commit is contained in:
Paul Duffin
2019-11-26 18:02:20 +00:00
parent 0375dd9a37
commit ac37c503e0
3 changed files with 106 additions and 1 deletions

View File

@@ -44,6 +44,9 @@ type sdk struct {
properties sdkProperties
snapshotFile android.OptionalPath
// The builder, preserved for testing.
builderForTests *snapshotBuilder
}
type sdkProperties struct {

View File

@@ -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() {

View File

@@ -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) {