diff options
author | rnveach <rveach02@gmail.com> | 2015-10-18 12:14:23 -0400 |
---|---|---|
committer | Roman Ivanov <ivanov-jr@mail.ru> | 2015-10-19 05:11:50 -0700 |
commit | c723db753a39dff4dc10f18aca01c2b016eee875 (patch) | |
tree | eec064b7627c9d63581c4431b367e1d817dc6632 /src/test/resources/com | |
parent | 4533cef695c0e51bc2a0c1e0e0fdfd477ce4c5ef (diff) | |
download | checkstyle-c723db753a39dff4dc10f18aca01c2b016eee875.tar.gz |
Issue #2161: unify test input locations for regexp package
Diffstat (limited to 'src/test/resources/com')
4 files changed, 254 insertions, 2 deletions
diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/InputStartingWithEmptyLine.java b/src/test/resources/com/puppycrawl/tools/checkstyle/InputStartingWithEmptyLine.java deleted file mode 100644 index 86c4296e8..000000000 --- a/src/test/resources/com/puppycrawl/tools/checkstyle/InputStartingWithEmptyLine.java +++ /dev/null @@ -1,2 +0,0 @@ - -package com.puppycrawl.tools.checkstyle; diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/checks/regexp/InputSemantic.java b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/regexp/InputSemantic.java new file mode 100644 index 000000000..fd1341969 --- /dev/null +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/regexp/InputSemantic.java @@ -0,0 +1,222 @@ +//////////////////////////////////////////////////////////////////////////////// +// Test case file for checkstyle. +// Created: 2001 +//////////////////////////////////////////////////////////////////////////////// +package com.puppycrawl.tools.checkstyle.checks.regexp; + +import java.io.*; // star import for instantiation tests +import java.awt.Dimension; // explicit import for instantiation tests +import java.awt.Color; + +/** + * Test case for detecting simple semantic errors. + * @author Lars Kühne + **/ +class InputSemantic +{ + /* Boolean instantiation in a static initializer */ + static { + Boolean x = new Boolean(true); + } + + /* Boolean instantiation in a non-static initializer */ + { + Boolean x = new Boolean(true); + Boolean[] y = new Boolean[]{Boolean.TRUE, Boolean.FALSE}; + } + + /** fully qualified Boolean instantiation in a method. **/ + Boolean getBoolean() + { + return new java.lang.Boolean(true); + } + + void otherInstantiations() + { + // instantiation of classes in the same package + Object o1 = new InputBraces(); + Object o2 = new InputModifier(); + // classes in another package with .* import + ByteArrayOutputStream s = new ByteArrayOutputStream(); + File f = new File("/tmp"); + // classes in another package with explicit import + Dimension dim = new Dimension(); + Color col = new Color(0, 0, 0); + } + + void exHandlerTest() + { + try { + ; // do stuff and don't handle exceptions in some cases + } + catch (IllegalStateException emptyCatchIsAlwaysAnError) { + } + catch (NullPointerException ex) { + // can never happen, but only commentig this is currently an error + // Possible future enhancement: allowEmptyCatch="commented" + } + catch (ArrayIndexOutOfBoundsException ex) { + ; + // can never happen, semicolon makes checkstyle happy + // this is a workaround for above problem + } + catch (NegativeArraySizeException ex) { + { + } + // can never happen, empty compound statement is another workaround + } + catch (UnsupportedOperationException handledException) { + System.out.println(handledException.getMessage()); + } + catch (SecurityException ex) { /* hello */ } + catch (StringIndexOutOfBoundsException ex) {} + catch (IllegalArgumentException ex) { } + + try { + } + finally { + } + try { + // something + } + finally { + // something + } + try { + ; // something + } + finally { + ; // statement + } + } + + /** test **/ + private static final long IGNORE = 666l + 666L; + + + + + + + + + + + + + + + + + + + + + + public class EqualsVsHashCode1 + { + public boolean equals(int a) // wrong arg type, don't flag + { + return a == 1; + } + } + + public class EqualsVsHashCode2 + { + public boolean equals(String a) // flag + { + return true; + } + } + + public class EqualsVsHashCode3 + { + public boolean equals(Object a) // don't flag + { + return true; + } + + public int hashCode() + { + return 0; + } + } + + public class EqualsVsHashCode4 + { + // in anon inner class + ByteArrayOutputStream bos1 = new ByteArrayOutputStream() + { + public boolean equals(Object a) // don't flag + { + return true; + } + + public int hashCode() + { + return 0; + } + }; + + ByteArrayOutputStream bos2 = new ByteArrayOutputStream() + { + public boolean equals(Object a) // flag + { + return true; + } + }; + } + + public void triggerEmptyBlockWithoutBlock() + { + // an if statement without a block to increase test coverage + if (true) + return; + } + + // empty instance initializer + { + } + + public class EqualsVsHashCode5 + { + public <A> boolean equals(int a) // wrong arg type, don't flag even with generics + { + return a == 1; + } + } + + public class EqualsVsHashCode6 + { + public <A> boolean equals(Comparable<A> a) // flag, weven with generics + { + return true; + } + } + + private class InputBraces { + + } + + private class InputModifier { + + } + + synchronized void foo() { + synchronized (this) {} // not OK + synchronized (Class.class) { // OK + synchronized (new Object()) { + // not OK if checking statements + } + } + } + + + static { + + int a = 0;} + + static { + + } +} diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/checks/regexp/InputStartingWithEmptyLine.java b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/regexp/InputStartingWithEmptyLine.java new file mode 100644 index 000000000..630e139ac --- /dev/null +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/regexp/InputStartingWithEmptyLine.java @@ -0,0 +1,2 @@ + +package com.puppycrawl.tools.checkstyle.checks.regexp; diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/checks/regexp/InputTrailingComment.java b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/regexp/InputTrailingComment.java new file mode 100644 index 000000000..9221a8ad2 --- /dev/null +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/checks/regexp/InputTrailingComment.java @@ -0,0 +1,30 @@ +package com.puppycrawl.tools.checkstyle.checks.regexp; + +public class InputTrailingComment { + int i; // don't use trailing comments :) + // it fine to have comment w/o any statement + /* good c-style comment. */ + int j; /* bad c-style comment. */ + void method1() { /* some c-style multi-line + comment*/ + Runnable r = (new Runnable() { + public void run() { + } + }); /* we should allow this */ + } // we should allow this + /* + Let's check multi-line comments. + */ + /* c-style */ // cpp-style + /* c-style 1 */ /*c-style 2 */ + + void method2(long ms /* we should ignore this */) { + /* comment before text */int z; + /* int y */int y/**/; + } + + /** + * comment with trailing space + */ + final static public String NAME="Some Name"; // NOI18N +} |