Merge "Convert test that disallows non existent paths to use fixtures" am: e742ee14f8 am: 4a08263f48 am: cd3cc29952

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1647169

Change-Id: I2e08b61169a01a256e87da0d5ff338c83751814f
This commit is contained in:
Paul Duffin 2021-03-25 10:52:55 +00:00 committed by Automerger Merge Worker
commit c80f01ee04
5 changed files with 53 additions and 35 deletions

View File

@ -117,6 +117,11 @@ var PrepareForTestWithAllowMissingDependencies = GroupFixturePreparers(
}),
)
// Prepares a test that disallows non-existent paths.
var PrepareForTestDisallowNonExistentPaths = FixtureModifyConfig(func(config Config) {
config.TestAllowNonExistentPaths = false
})
func NewTestArchContext(config Config) *TestContext {
ctx := NewTestContext(config)
ctx.preDeps = append(ctx.preDeps, registerArchMutator)

View File

@ -141,13 +141,12 @@ var apexFixtureFactory = android.NewFixtureFactory(
}
`),
android.FixtureMergeMockFs(android.MockFS{
"a.java": nil,
"PrebuiltAppFoo.apk": nil,
"PrebuiltAppFooPriv.apk": nil,
"build/make/target/product/security": nil,
"apex_manifest.json": nil,
"AndroidManifest.xml": nil,
"system/sepolicy/apex/myapex-file_contexts": nil,
"a.java": nil,
"PrebuiltAppFoo.apk": nil,
"PrebuiltAppFooPriv.apk": nil,
"apex_manifest.json": nil,
"AndroidManifest.xml": nil,
"system/sepolicy/apex/myapex-file_contexts": nil,
"system/sepolicy/apex/myapex.updatable-file_contexts": nil,
"system/sepolicy/apex/myapex2-file_contexts": nil,
"system/sepolicy/apex/otherapex-file_contexts": nil,

View File

@ -133,6 +133,15 @@ func defaultModuleToPath(name string) string {
}
}
// Test that the PrepareForTestWithJavaDefaultModules provides all the files that it uses by
// running it in a fixture that requires all source files to exist.
func TestPrepareForTestWithJavaDefaultModules(t *testing.T) {
android.GroupFixturePreparers(
PrepareForTestWithJavaDefaultModules,
android.PrepareForTestDisallowNonExistentPaths,
).RunTest(t)
}
func TestJavaLinkType(t *testing.T) {
testJava(t, `
java_library {
@ -1220,33 +1229,22 @@ func TestJavaLintWithoutBaseline(t *testing.T) {
}
func TestJavaLintRequiresCustomLintFileToExist(t *testing.T) {
config := TestConfig(t.TempDir(),
nil,
`
java_library {
name: "foo",
srcs: [
],
min_sdk_version: "29",
sdk_version: "system_current",
lint: {
baseline_filename: "mybaseline.xml",
},
}
`, map[string][]byte{
"build/soong/java/lint_defaults.txt": nil,
"prebuilts/cmdline-tools/tools/bin/lint": nil,
"prebuilts/cmdline-tools/tools/lib/lint-classpath.jar": nil,
"framework/aidl": nil,
"a.java": nil,
"AndroidManifest.xml": nil,
"build/make/target/product/security": nil,
})
config.TestAllowNonExistentPaths = false
testJavaErrorWithConfig(t,
"source path \"mybaseline.xml\" does not exist",
config,
)
android.GroupFixturePreparers(
PrepareForTestWithJavaDefaultModules,
android.PrepareForTestDisallowNonExistentPaths,
).ExtendWithErrorHandler(android.FixtureExpectsAllErrorsToMatchAPattern([]string{`source path "mybaseline.xml" does not exist`})).
RunTestWithBp(t, `
java_library {
name: "foo",
srcs: [
],
min_sdk_version: "29",
sdk_version: "system_current",
lint: {
baseline_filename: "mybaseline.xml",
},
}
`)
}
func TestJavaLintUsesCorrectBpConfig(t *testing.T) {

View File

@ -45,12 +45,29 @@ var PrepareForTestWithJavaBuildComponents = android.GroupFixturePreparers(
// Make java build components available to the test.
android.FixtureRegisterWithContext(registerRequiredBuildComponentsForTest),
android.FixtureRegisterWithContext(registerJavaPluginBuildComponents),
// Additional files needed in tests that disallow non-existent source files.
// This includes files that are needed by all, or at least most, instances of a java module type.
android.MockFS{
// Needed for linter used by java_library.
"build/soong/java/lint_defaults.txt": nil,
// Needed for apps that do not provide their own.
"build/make/target/product/security": nil,
}.AddToFixture(),
)
// Test fixture preparer that will define default java modules, e.g. standard prebuilt modules.
var PrepareForTestWithJavaDefaultModules = android.GroupFixturePreparers(
// Make sure that all the module types used in the defaults are registered.
PrepareForTestWithJavaBuildComponents,
// Additional files needed when test disallows non-existent source.
android.MockFS{
// Needed for framework-res
defaultJavaDir + "/AndroidManifest.xml": nil,
// Needed for framework
defaultJavaDir + "/framework/aidl": nil,
// Needed for various deps defined in GatherRequiredDepsForTest()
defaultJavaDir + "/a.java": nil,
}.AddToFixture(),
// The java default module definitions.
android.FixtureAddTextFile(defaultJavaDir+"/Android.bp", gatherRequiredDepsForTest()),
// Add dexpreopt compat libs (android.test.base, etc.) and a fake dex2oatd module.

View File

@ -44,7 +44,6 @@ var prepareForSdkTestWithApex = android.GroupFixturePreparers(
`),
android.FixtureMergeMockFs(map[string][]byte{
"build/make/target/product/security": nil,
"apex_manifest.json": nil,
"system/sepolicy/apex/myapex-file_contexts": nil,
"system/sepolicy/apex/myapex2-file_contexts": nil,