aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/skylark/javatests/com/google/devtools/skylark
diff options
context:
space:
mode:
authorGravatar fzaiser <fzaiser@google.com>2017-09-07 14:10:27 +0200
committerGravatar Yun Peng <pcloudy@google.com>2017-09-08 09:47:15 +0200
commitc23d1853541fc533de98d4316bd3b937ff3678fc (patch)
treefae41ef66da4316aa31bc3e6232e0ce33a2b0e2d /src/tools/skylark/javatests/com/google/devtools/skylark
parent27758e498bc5fc5fabd98621527372736805f654 (diff)
Skylint: add main linter class and clean up BUILD files
RELNOTES: none PiperOrigin-RevId: 167846717
Diffstat (limited to 'src/tools/skylark/javatests/com/google/devtools/skylark')
-rw-r--r--src/tools/skylark/javatests/com/google/devtools/skylark/skylint/BUILD2
-rw-r--r--src/tools/skylark/javatests/com/google/devtools/skylark/skylint/LinterTest.java49
2 files changed, 50 insertions, 1 deletions
diff --git a/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/BUILD b/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/BUILD
index 61b7a8ad7c..2178ad4f2b 100644
--- a/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/BUILD
+++ b/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/BUILD
@@ -7,7 +7,7 @@ java_test(
deps = [
"//src/main/java/com/google/devtools/build/lib:packages",
"//src/test/java/com/google/devtools/build/lib:testutil",
- "//src/tools/skylark/java/com/google/devtools/skylark/skylint:skylint-lib",
+ "//src/tools/skylark/java/com/google/devtools/skylark/skylint:skylint_lib",
"//third_party:guava",
"//third_party:junit4",
"//third_party:truth",
diff --git a/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/LinterTest.java b/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/LinterTest.java
new file mode 100644
index 0000000000..8a1c82745e
--- /dev/null
+++ b/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/LinterTest.java
@@ -0,0 +1,49 @@
+// Copyright 2017 The Bazel Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package com.google.devtools.skylark.skylint;
+
+import com.google.common.truth.Truth;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.Paths;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runners.JUnit4;
+
+/** Tests for {@link com.google.devtools.skylark.skylint.Linter}. */
+@RunWith(JUnit4.class)
+public class LinterTest {
+ @Test
+ public void testAllCheckersAreRun() throws Exception {
+ final String file =
+ String.join(
+ "\n",
+ "_unusedVar = function()",
+ "def function():",
+ " return",
+ " 'unreachable and unused string literal'");
+ final String errorMessages =
+ new Linter()
+ .setFileContentsReader(p -> file.getBytes(StandardCharsets.ISO_8859_1))
+ .lint(Paths.get("foo"))
+ .toString();
+ Truth.assertThat(errorMessages).contains("unreachable statement"); // control flow checker
+ Truth.assertThat(errorMessages).contains("has no module docstring"); // docstring checker
+ Truth.assertThat(errorMessages)
+ .contains("should be lower_snake_case"); // naming conventions checker
+ Truth.assertThat(errorMessages)
+ .contains("expression result not used"); // checker statements without effect
+ Truth.assertThat(errorMessages).contains("unused definition of"); // usage checker
+ }
+}