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:
commit
c80f01ee04
|
@ -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