From 8461deda3fe1d5bd96fe2fd19f1f8f84a5f569b1 Mon Sep 17 00:00:00 2001 From: Isaac Evans <409041+ievans@users.noreply.github.com> Date: Mon, 10 Feb 2020 13:44:20 -0800 Subject: [PATCH] add java tests (#53) * add java tests --- java/basic-rules.java | 28 ++++++++++++++++++++++++++++ java/basic-rules.yaml | 29 +++++++++++++++++++++++++---- 2 files changed, 53 insertions(+), 4 deletions(-) diff --git a/java/basic-rules.java b/java/basic-rules.java index cf2707e4b2..7f294eb1b1 100644 --- a/java/basic-rules.java +++ b/java/basic-rules.java @@ -2,9 +2,37 @@ class Bar { void main() { boolean myBoolean; + //myBoolean == myBoolean; + + // ruleid:assignment-comparison if (myBoolean = true) { continue; } + // ruleid:hardcoded-eq-true-or-false + if (true) { + continue; + } + + // todoruleid:hardcoded-eq-true-or-false + if (true && false) { + continue; + } + + // ok + if (myBoolean) { + + } + + // ruleid:eqeq-is-bad + if (myBoolean == myBoolean) { + continue; + } + + // ruleid:eqeq-is-bad + if (myBoolean != myBoolean) { + continue; + } + } } \ No newline at end of file diff --git a/java/basic-rules.yaml b/java/basic-rules.yaml index 2612fc4e14..cc07b6c794 100644 --- a/java/basic-rules.yaml +++ b/java/basic-rules.yaml @@ -1,8 +1,29 @@ rules: - id: assignment-comparison patterns: - - pattern: if($X=true) {} - - pattern: if($X=false) {} - message: "This exception is being ignored. The best practice is to handle exceptions, throw them and show an error dialogue, or add a message to the log." + - pattern-either: + - pattern: if ($X=true) { ... } + - pattern: if ($X=false) { ... } + message: "The value of `$X` is being ignored and will be used in the conditional test" languages: [java] - severity: ERROR \ No newline at end of file + severity: ERROR + - id: eqeq-is-bad + patterns: + - pattern-not-inside: assert $X; + - pattern-not-inside: | + assert $X : $Y; + - pattern-either: + - pattern: $X == $X + - pattern: $X != $X + - pattern-not: 1 == 1 + message: "useless comparison operation `$X == $X` or `$X != $X`" + languages: [java] + severity: ERROR + - id: hardcoded-eq-true-or-false + patterns: + - pattern-either: + - pattern: if (true) { ... } + - pattern: if (false) { ... } + message: "useless if statement, always the same behavior" + languages: [java] + severity: ERROR