|
17 | 17 |
|
18 | 18 | import edu.umd.cs.findbugs.Priorities; |
19 | 19 | import guru.nidi.codeassert.checkstyle.*; |
20 | | -import guru.nidi.codeassert.config.AnalyzerConfig; |
21 | | -import guru.nidi.codeassert.config.In; |
| 20 | +import guru.nidi.codeassert.config.*; |
22 | 21 | import guru.nidi.codeassert.dependency.*; |
23 | 22 | import guru.nidi.codeassert.findbugs.*; |
24 | 23 | import guru.nidi.codeassert.junit.CodeAssertJunit5Test; |
|
33 | 32 | import net.sourceforge.pmd.RulePriority; |
34 | 33 | import org.junit.jupiter.api.Test; |
35 | 34 |
|
| 35 | +import java.util.ArrayList; |
| 36 | +import java.util.List; |
| 37 | + |
36 | 38 | import static guru.nidi.codeassert.junit.CodeAssertMatchers.matchesRulesExactly; |
| 39 | +import static java.util.Arrays.asList; |
37 | 40 | import static org.hamcrest.MatcherAssert.assertThat; |
38 | 41 |
|
39 | 42 | class CodeAnalysisTest extends CodeAssertJunit5Test { |
@@ -70,28 +73,31 @@ protected Model createModel() { |
70 | 73 |
|
71 | 74 | @Override |
72 | 75 | protected FindBugsResult analyzeFindBugs() { |
| 76 | + final List<Ignore> ok = new ArrayList<>(asList(In.loc("Datatype").ignore("NP_BOOLEAN_RETURN_NULL"), |
| 77 | + In.loc("TempFiles").ignore("PATH_TRAVERSAL_IN", "RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"), |
| 78 | + In.loc("Options").ignore("URLCONNECTION_SSRF_FD"), |
| 79 | + In.locs("BuiltInRasterizer#rasterize", "NopRasterizer", "PortSource").ignore("NP_NONNULL_RETURN_VIOLATION"), |
| 80 | + In.loc("CommandLineExecutor").ignore("DM_DEFAULT_ENCODING"), |
| 81 | + In.loc("GraphvizServer").ignore("COMMAND_INJECTION", "CRLF_INJECTION_LOGS"), |
| 82 | + In.locs("AbstractGraphvizEngine", "Options", "GraphvizCmdLineEngine", "EngineTest", "SystemUtils", "Renderer").ignore("PATH_TRAVERSAL_IN"), |
| 83 | + In.locs("EngineTest", "RendererTest", "EngineResult").ignore("RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"), |
| 84 | + In.loc("OptionsTest").ignore("DMI_HARDCODED_ABSOLUTE_FILENAME"), |
| 85 | + In.loc("SimpleLabel").ignore("IM_BAD_CHECK_FOR_ODD"), |
| 86 | + In.loc("JavascriptEngineTest").ignore("PREDICTABLE_RANDOM"), |
| 87 | + In.loc("DatatypeTest").ignore("SIC_INNER_SHOULD_BE_STATIC"), |
| 88 | + In.loc("SvgElementFinder").ignore("XXE_DOCUMENT"), |
| 89 | + In.loc("Communicator").ignore("RR_NOT_CHECKED"))); |
| 90 | + if (!System.getProperty("java.version").startsWith("1.8")) { |
| 91 | + ok.add(In.loc("LinkList").ignore("EQ_DOESNT_OVERRIDE_EQUALS")); |
| 92 | + } |
| 93 | + |
73 | 94 | final BugCollector collector = new BugCollector().minPriority(Priorities.NORMAL_PRIORITY) |
74 | 95 | .apply(FindBugsConfigs.dependencyTestIgnore(CodeAnalysisTest.class)) |
75 | 96 | .because("It's examples", In.loc("ReadmeTest").ignore("DLS_DEAD_LOCAL_STORE")) |
76 | 97 | .because("GraphvizServer is on localhost", |
77 | 98 | In.locs("GraphvizServer", "GraphvizServerEngine") |
78 | 99 | .ignore("UNENCRYPTED_SERVER_SOCKET", "UNENCRYPTED_SOCKET")) |
79 | | - .because("It's ok", |
80 | | - In.loc("Datatype").ignore("NP_BOOLEAN_RETURN_NULL"), |
81 | | - In.loc("TempFiles").ignore("PATH_TRAVERSAL_IN", "RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"), |
82 | | - In.loc("Options").ignore("URLCONNECTION_SSRF_FD"), |
83 | | - In.locs("BuiltInRasterizer#rasterize", "NopRasterizer", "PortSource").ignore("NP_NONNULL_RETURN_VIOLATION"), |
84 | | - In.loc("CommandLineExecutor").ignore("DM_DEFAULT_ENCODING"), |
85 | | - In.loc("GraphvizServer").ignore("COMMAND_INJECTION", "CRLF_INJECTION_LOGS"), |
86 | | - In.locs("AbstractGraphvizEngine", "Options", "GraphvizCmdLineEngine", "EngineTest", "SystemUtils", "Renderer").ignore("PATH_TRAVERSAL_IN"), |
87 | | - In.locs("EngineTest", "RendererTest", "EngineResult").ignore("RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"), |
88 | | - In.loc("OptionsTest").ignore("DMI_HARDCODED_ABSOLUTE_FILENAME"), |
89 | | - In.loc("SimpleLabel").ignore("IM_BAD_CHECK_FOR_ODD"), |
90 | | - In.loc("JavascriptEngineTest").ignore("PREDICTABLE_RANDOM"), |
91 | | - In.loc("DatatypeTest").ignore("SIC_INNER_SHOULD_BE_STATIC"), |
92 | | - In.loc("SvgElementFinder").ignore("XXE_DOCUMENT"), |
93 | | - In.loc("LinkList").ignore("EQ_DOESNT_OVERRIDE_EQUALS"), |
94 | | - In.loc("Communicator").ignore("RR_NOT_CHECKED")); |
| 100 | + .because("It's ok", ok.toArray(new Ignore[0])); |
95 | 101 | return new FindBugsAnalyzer(AnalyzerConfig.maven().mainAndTest(), collector).analyze(); |
96 | 102 | } |
97 | 103 |
|
@@ -137,7 +143,7 @@ protected PmdResult analyzePmd() { |
137 | 143 | In.locs("CommandRunnerTest", "AbstractJsGraphvizEngine").ignore("SimplifiedTernary")) |
138 | 144 | .because("I don't agree", |
139 | 145 | In.loc("Datatype").ignore("PositionLiteralsFirstInCaseInsensitiveComparisons"), |
140 | | - In.clazz(CommandRunner.class).ignore("OptimizableToArrayCall"), |
| 146 | + In.classes(CommandRunner.class, CodeAnalysisTest.class).ignore("OptimizableToArrayCall"), |
141 | 147 | In.everywhere().ignore("SimplifyStartsWith")) |
142 | 148 | .because("It's wrapping an Exception with a RuntimeException", |
143 | 149 | In.locs("Graphviz", "CreationContext", "Datatype").ignore("AvoidCatchingGenericException")); |
|
0 commit comments