Convert test that disallows non existent paths to use fixtures
This change needed to add some additional files to the registered files for PrepareForTestWithJavaDefaultModules because otherwise they would fail when "TestAllowNonExistentPaths = false". Those files were being added by the TestJavaLintRequiresCustomLintFileToExist (albeit in some cases in different locations to that required by the default modules but as the files are needed by the modules defined in PrepareForTestWithJavaDefaultModules they should be defined in it. A couple of other places also provided some files so moving them into PrepareForTestWithJavaDefaultModules caused some conflicts which needed to be resolved. Bug: 183184375 Test: m nothing Change-Id: I76ce9f1673c1c1c4000635b76b8377d582224bf1
This commit is contained in:
parent
958408d921
commit
76e5c8a37f
|
@ -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)
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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,
|
||||
|
|
Loading…
Reference in New Issue