Merge "Support testing versioned/unversioned sdk Android.bp files separately"
This commit is contained in:
@@ -243,11 +243,11 @@ type testSdkResult struct {
|
|||||||
// e.g. find the src/dest pairs from each cp command, the various zip files
|
// e.g. find the src/dest pairs from each cp command, the various zip files
|
||||||
// generated, etc.
|
// generated, etc.
|
||||||
func (r *testSdkResult) getSdkSnapshotBuildInfo(sdk *sdk) *snapshotBuildInfo {
|
func (r *testSdkResult) getSdkSnapshotBuildInfo(sdk *sdk) *snapshotBuildInfo {
|
||||||
androidBpContents := sdk.GetAndroidBpContentsForTests()
|
|
||||||
|
|
||||||
info := &snapshotBuildInfo{
|
info := &snapshotBuildInfo{
|
||||||
r: r,
|
r: r,
|
||||||
androidBpContents: androidBpContents,
|
androidBpContents: sdk.GetAndroidBpContentsForTests(),
|
||||||
|
androidUnversionedBpContents: sdk.GetUnversionedAndroidBpContentsForTests(),
|
||||||
|
androidVersionedBpContents: sdk.GetVersionedAndroidBpContentsForTests(),
|
||||||
}
|
}
|
||||||
|
|
||||||
buildParams := sdk.BuildParamsForTests()
|
buildParams := sdk.BuildParamsForTests()
|
||||||
@@ -365,6 +365,33 @@ func checkAndroidBpContents(expected string) snapshotBuildInfoChecker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check that the snapshot's unversioned generated Android.bp is correct.
|
||||||
|
//
|
||||||
|
// This func should be used to check the general snapshot generation code.
|
||||||
|
//
|
||||||
|
// Both the expected and actual string are both trimmed before comparing.
|
||||||
|
func checkUnversionedAndroidBpContents(expected string) snapshotBuildInfoChecker {
|
||||||
|
return func(info *snapshotBuildInfo) {
|
||||||
|
info.r.t.Helper()
|
||||||
|
info.r.AssertTrimmedStringEquals("unversioned Android.bp contents do not match", expected, info.androidUnversionedBpContents)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check that the snapshot's versioned generated Android.bp is correct.
|
||||||
|
//
|
||||||
|
// This func should only be used to check the version specific snapshot generation code,
|
||||||
|
// i.e. the encoding of version into module names and the generation of the _snapshot module. The
|
||||||
|
// general snapshot generation code should be checked using the checkUnversionedAndroidBpContents()
|
||||||
|
// func.
|
||||||
|
//
|
||||||
|
// Both the expected and actual string are both trimmed before comparing.
|
||||||
|
func checkVersionedAndroidBpContents(expected string) snapshotBuildInfoChecker {
|
||||||
|
return func(info *snapshotBuildInfo) {
|
||||||
|
info.r.t.Helper()
|
||||||
|
info.r.AssertTrimmedStringEquals("versioned Android.bp contents do not match", expected, info.androidVersionedBpContents)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Check that the snapshot's copy rules are correct.
|
// Check that the snapshot's copy rules are correct.
|
||||||
//
|
//
|
||||||
// The copy rules are formatted as <src> -> <dest>, one per line and then compared
|
// The copy rules are formatted as <src> -> <dest>, one per line and then compared
|
||||||
@@ -407,6 +434,12 @@ type snapshotBuildInfo struct {
|
|||||||
// The contents of the generated Android.bp file
|
// The contents of the generated Android.bp file
|
||||||
androidBpContents string
|
androidBpContents string
|
||||||
|
|
||||||
|
// The contents of the unversioned Android.bp file
|
||||||
|
androidUnversionedBpContents string
|
||||||
|
|
||||||
|
// The contents of the versioned Android.bp file
|
||||||
|
androidVersionedBpContents string
|
||||||
|
|
||||||
// The paths, relative to the snapshot root, of all files and directories copied into the
|
// The paths, relative to the snapshot root, of all files and directories copied into the
|
||||||
// snapshot.
|
// snapshot.
|
||||||
snapshotContents []string
|
snapshotContents []string
|
||||||
|
@@ -572,12 +572,20 @@ func (t pruneEmptySetTransformer) transformPropertySetAfterContents(name string,
|
|||||||
}
|
}
|
||||||
|
|
||||||
func generateBpContents(contents *generatedContents, bpFile *bpFile) {
|
func generateBpContents(contents *generatedContents, bpFile *bpFile) {
|
||||||
|
generateFilteredBpContents(contents, bpFile, func(*bpModule) bool {
|
||||||
|
return true
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func generateFilteredBpContents(contents *generatedContents, bpFile *bpFile, moduleFilter func(module *bpModule) bool) {
|
||||||
contents.Printfln("// This is auto-generated. DO NOT EDIT.")
|
contents.Printfln("// This is auto-generated. DO NOT EDIT.")
|
||||||
for _, bpModule := range bpFile.order {
|
for _, bpModule := range bpFile.order {
|
||||||
contents.Printfln("")
|
if moduleFilter(bpModule) {
|
||||||
contents.Printfln("%s {", bpModule.moduleType)
|
contents.Printfln("")
|
||||||
outputPropertySet(contents, bpModule.bpPropertySet)
|
contents.Printfln("%s {", bpModule.moduleType)
|
||||||
contents.Printfln("}")
|
outputPropertySet(contents, bpModule.bpPropertySet)
|
||||||
|
contents.Printfln("}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -639,6 +647,22 @@ func (s *sdk) GetAndroidBpContentsForTests() string {
|
|||||||
return contents.content.String()
|
return contents.content.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *sdk) GetUnversionedAndroidBpContentsForTests() string {
|
||||||
|
contents := &generatedContents{}
|
||||||
|
generateFilteredBpContents(contents, s.builderForTests.bpFile, func(module *bpModule) bool {
|
||||||
|
return !strings.Contains(module.properties["name"].(string), "@")
|
||||||
|
})
|
||||||
|
return contents.content.String()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *sdk) GetVersionedAndroidBpContentsForTests() string {
|
||||||
|
contents := &generatedContents{}
|
||||||
|
generateFilteredBpContents(contents, s.builderForTests.bpFile, func(module *bpModule) bool {
|
||||||
|
return strings.Contains(module.properties["name"].(string), "@")
|
||||||
|
})
|
||||||
|
return contents.content.String()
|
||||||
|
}
|
||||||
|
|
||||||
type snapshotBuilder struct {
|
type snapshotBuilder struct {
|
||||||
ctx android.ModuleContext
|
ctx android.ModuleContext
|
||||||
sdk *sdk
|
sdk *sdk
|
||||||
|
Reference in New Issue
Block a user