Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e742ee14 authored by Paul Duffin's avatar Paul Duffin Committed by Gerrit Code Review
Browse files

Merge "Convert test that disallows non existent paths to use fixtures"

parents f7e79a59 76e5c8a3
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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)
+6 −7
Original line number Diff line number Diff line
@@ -144,7 +144,6 @@ var apexFixtureFactory = android.NewFixtureFactory(
		"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,
+25 −27
Original line number Diff line number Diff line
@@ -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,9 +1229,11 @@ func TestJavaLintWithoutBaseline(t *testing.T) {
}

func TestJavaLintRequiresCustomLintFileToExist(t *testing.T) {
	config := TestConfig(t.TempDir(),
		nil,
		`
	android.GroupFixturePreparers(
		PrepareForTestWithJavaDefaultModules,
		android.PrepareForTestDisallowNonExistentPaths,
	).ExtendWithErrorHandler(android.FixtureExpectsAllErrorsToMatchAPattern([]string{`source path "mybaseline.xml" does not exist`})).
		RunTestWithBp(t, `
			java_library {
				name: "foo",
				srcs: [
@@ -1233,20 +1244,7 @@ func TestJavaLintRequiresCustomLintFileToExist(t *testing.T) {
					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,
	)
	 `)
}

func TestJavaLintUsesCorrectBpConfig(t *testing.T) {
+17 −0
Original line number Diff line number Diff line
@@ -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.
+0 −1
Original line number Diff line number Diff line
@@ -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,