diff options
author | Pedro Loureiro <pedroql@google.com> | 2021-02-15 15:41:33 +0000 |
---|---|---|
committer | Pedro Loureiro <pedroql@google.com> | 2021-02-18 11:15:30 +0000 |
commit | 5d190cc24e73913c5dd05b270317f31a32c4593a (patch) | |
tree | c7494a7871181997e7df45e02c66f1a6f4814e09 /java/java_test.go | |
parent | c66769ddd96b88cb129733e03b585b0d9c3bed15 (diff) |
Add support for lint baseline files
Test: m droid
Test: go test ^TestJavaLint # (from soong/build/java)
Change-Id: I249a0a0597b0bf8495460ed283b476ad2eb36edc
Diffstat (limited to 'java/java_test.go')
-rw-r--r-- | java/java_test.go | 105 |
1 files changed, 104 insertions, 1 deletions
diff --git a/java/java_test.go b/java/java_test.go index e7776c35d..0ef4db680 100644 --- a/java/java_test.go +++ b/java/java_test.go @@ -127,7 +127,6 @@ func testJavaErrorWithConfig(t *testing.T, pattern string, config android.Config } t.Fatalf("missing expected error %q (0 errors are returned)", pattern) - return ctx, config } @@ -1179,6 +1178,110 @@ func TestIncludeSrcs(t *testing.T) { } } +func TestJavaLint(t *testing.T) { + ctx, _ := testJavaWithFS(t, ` + java_library { + name: "foo", + srcs: [ + "a.java", + "b.java", + "c.java", + ], + min_sdk_version: "29", + sdk_version: "system_current", + } + `, map[string][]byte{ + "lint-baseline.xml": nil, + }) + + foo := ctx.ModuleForTests("foo", "android_common") + rule := foo.Rule("lint") + + if !strings.Contains(rule.RuleParams.Command, "--baseline lint-baseline.xml") { + t.Error("did not pass --baseline flag") + } +} + +func TestJavaLintWithoutBaseline(t *testing.T) { + ctx, _ := testJavaWithFS(t, ` + java_library { + name: "foo", + srcs: [ + "a.java", + "b.java", + "c.java", + ], + min_sdk_version: "29", + sdk_version: "system_current", + } + `, map[string][]byte{}) + + foo := ctx.ModuleForTests("foo", "android_common") + rule := foo.Rule("lint") + + if strings.Contains(rule.RuleParams.Command, "--baseline") { + t.Error("passed --baseline flag for non existent file") + } +} + +func TestJavaLintRequiresCustomLintFileToExist(t *testing.T) { + config := testConfig( + 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, + ) +} + +func TestJavaLintUsesCorrectBpConfig(t *testing.T) { + ctx, _ := testJavaWithFS(t, ` + java_library { + name: "foo", + srcs: [ + "a.java", + "b.java", + "c.java", + ], + min_sdk_version: "29", + sdk_version: "system_current", + lint: { + error_checks: ["SomeCheck"], + baseline_filename: "mybaseline.xml", + }, + } + `, map[string][]byte{ + "mybaseline.xml": nil, + }) + + foo := ctx.ModuleForTests("foo", "android_common") + rule := foo.Rule("lint") + + if !strings.Contains(rule.RuleParams.Command, "--baseline mybaseline.xml") { + t.Error("did not use the correct file for baseline") + } +} + func TestGeneratedSources(t *testing.T) { ctx, _ := testJavaWithFS(t, ` java_library { |