diff options
Diffstat (limited to 'java')
| -rw-r--r-- | java/java_test.go | 52 | ||||
| -rw-r--r-- | java/testing.go | 17 |
2 files changed, 42 insertions, 27 deletions
diff --git a/java/java_test.go b/java/java_test.go index 1a79f497b..9924be7bf 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -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) { diff --git a/java/testing.go b/java/testing.go index 295b8d0a7..221ceb118 100644 --- a/java/testing.go +++ b/java/testing.go @@ -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. |