diff --git a/cxx-checks/src/main/java/org/sonar/cxx/checks/HardcodedAccountCheck.java b/cxx-checks/src/main/java/org/sonar/cxx/checks/HardcodedAccountCheck.java index 8ab4ed4209..f116074df8 100644 --- a/cxx-checks/src/main/java/org/sonar/cxx/checks/HardcodedAccountCheck.java +++ b/cxx-checks/src/main/java/org/sonar/cxx/checks/HardcodedAccountCheck.java @@ -60,7 +60,7 @@ public class HardcodedAccountCheck extends SquidCheck { key = "regularExpression", description = "literal regular expression rule", defaultValue = DEFAULT_REGULAR_EXPRESSION) - private String regularExpression = DEFAULT_REGULAR_EXPRESSION; + private final String regularExpression = DEFAULT_REGULAR_EXPRESSION; private Pattern pattern; diff --git a/cxx-checks/src/main/java/org/sonar/cxx/checks/HardcodedIpCheck.java b/cxx-checks/src/main/java/org/sonar/cxx/checks/HardcodedIpCheck.java index a89493f9e0..331eac9e94 100644 --- a/cxx-checks/src/main/java/org/sonar/cxx/checks/HardcodedIpCheck.java +++ b/cxx-checks/src/main/java/org/sonar/cxx/checks/HardcodedIpCheck.java @@ -60,7 +60,7 @@ public class HardcodedIpCheck extends SquidCheck { key = "regularExpression", description = "The regular expression", defaultValue = DEFAULT_REGULAR_EXPRESSION) - private String regularExpression = DEFAULT_REGULAR_EXPRESSION; + private final String regularExpression = DEFAULT_REGULAR_EXPRESSION; @Override public void init() { diff --git a/cxx-checks/src/main/java/org/sonar/cxx/checks/MagicNumberCheck.java b/cxx-checks/src/main/java/org/sonar/cxx/checks/MagicNumberCheck.java index ec8c59365c..b2402c28a7 100755 --- a/cxx-checks/src/main/java/org/sonar/cxx/checks/MagicNumberCheck.java +++ b/cxx-checks/src/main/java/org/sonar/cxx/checks/MagicNumberCheck.java @@ -108,8 +108,8 @@ private static boolean isNullPtr(AstNode node) { @Override public void init() { subscribeTo(CxxTokenType.NUMBER); - for (String magicNumber : exceptions.split(",")) { - magicNumber = magicNumber.trim(); + for (String m : exceptions.split(",")) { + final String magicNumber = m.trim(); if (!magicNumber.isEmpty()) { exceptionsSet.add(magicNumber); } diff --git a/cxx-checks/src/main/java/org/sonar/cxx/checks/ReservedNamesCheck.java b/cxx-checks/src/main/java/org/sonar/cxx/checks/ReservedNamesCheck.java index 9950db1c96..8cdb060313 100644 --- a/cxx-checks/src/main/java/org/sonar/cxx/checks/ReservedNamesCheck.java +++ b/cxx-checks/src/main/java/org/sonar/cxx/checks/ReservedNamesCheck.java @@ -51,7 +51,7 @@ @SqaleConstantRemediation("5min") public class ReservedNamesCheck extends SquidCheck implements CxxCharsetAwareVisitor { - private static final String[] keywords = CxxKeyword.keywordValues(); + private static final String[] KEYWORDS = CxxKeyword.keywordValues(); private static final Pattern DEFINE_DECLARATION_PATTERN = Pattern.compile("^\\s*#define\\s+([^\\s(]+).*$"); private Charset charset = StandardCharsets.UTF_8; @@ -77,7 +77,7 @@ public void visitFile(AstNode astNode) { "Reserved name used for macro (contains two consecutive underscores)", nr); } else { name = name.toLowerCase(Locale.ENGLISH); - for (String keyword : keywords) { + for (String keyword : KEYWORDS) { if (name.equals(keyword)) { getContext().createLineViolation(this, "Reserved name used for macro (keyword or alternative token redefined)", nr); diff --git a/cxx-checks/src/main/java/org/sonar/cxx/checks/UseCorrectIncludeCheck.java b/cxx-checks/src/main/java/org/sonar/cxx/checks/UseCorrectIncludeCheck.java index 8371ef0cda..847a088339 100644 --- a/cxx-checks/src/main/java/org/sonar/cxx/checks/UseCorrectIncludeCheck.java +++ b/cxx-checks/src/main/java/org/sonar/cxx/checks/UseCorrectIncludeCheck.java @@ -49,7 +49,7 @@ public class UseCorrectIncludeCheck extends SquidCheck implements CxxCharsetAwareVisitor { private static final String REGULAR_EXPRESSION = "#include\\s+(?>\"|\\<)[\\\\/\\.]+"; - private static Pattern pattern = Pattern.compile(REGULAR_EXPRESSION, Pattern.DOTALL); + private final static Pattern pattern = Pattern.compile(REGULAR_EXPRESSION, Pattern.DOTALL); private Charset charset = StandardCharsets.UTF_8; @Override diff --git a/cxx-checks/src/main/java/org/sonar/cxx/checks/UseCorrectTypeCheck.java b/cxx-checks/src/main/java/org/sonar/cxx/checks/UseCorrectTypeCheck.java index e1f9306a66..1ea429bb32 100644 --- a/cxx-checks/src/main/java/org/sonar/cxx/checks/UseCorrectTypeCheck.java +++ b/cxx-checks/src/main/java/org/sonar/cxx/checks/UseCorrectTypeCheck.java @@ -65,7 +65,7 @@ public class UseCorrectTypeCheck extends SquidCheck { key = "regularExpression", description = "Type regular expression rule", defaultValue = DEFAULT_REGULAR_EXPRESSION) - private String regularExpression = DEFAULT_REGULAR_EXPRESSION; + private final String regularExpression = DEFAULT_REGULAR_EXPRESSION; /** * message @@ -74,7 +74,7 @@ public class UseCorrectTypeCheck extends SquidCheck { key = "message", description = "The violation message", defaultValue = DEFAULT_MESSAGE) - private String message = DEFAULT_MESSAGE; + private final String message = DEFAULT_MESSAGE; @Override public void init() { diff --git a/cxx-checks/src/main/java/org/sonar/cxx/checks/metrics/CxxCyclomaticComplexityCheck.java b/cxx-checks/src/main/java/org/sonar/cxx/checks/metrics/CxxCyclomaticComplexityCheck.java index c69c5ec8ec..22a53d2f94 100644 --- a/cxx-checks/src/main/java/org/sonar/cxx/checks/metrics/CxxCyclomaticComplexityCheck.java +++ b/cxx-checks/src/main/java/org/sonar/cxx/checks/metrics/CxxCyclomaticComplexityCheck.java @@ -111,7 +111,7 @@ private void analyzeScopeComplexity() { final int maxComplexity = getMaxComplexity(); final int currentComplexity = scope.getComplexity(); if (scope.getComplexity() > maxComplexity) { - final StringBuilder msg = new StringBuilder(); + final StringBuilder msg = new StringBuilder(256); msg.append("The Cyclomatic Complexity of this ").append(getScopeName()).append(" is ").append(currentComplexity) .append(" which is greater than ").append(maxComplexity).append(" authorized."); diff --git a/cxx-checks/src/main/java/org/sonar/cxx/checks/metrics/FunctionCognitiveComplexityCheck.java b/cxx-checks/src/main/java/org/sonar/cxx/checks/metrics/FunctionCognitiveComplexityCheck.java index 5be104a241..6a7d242614 100644 --- a/cxx-checks/src/main/java/org/sonar/cxx/checks/metrics/FunctionCognitiveComplexityCheck.java +++ b/cxx-checks/src/main/java/org/sonar/cxx/checks/metrics/FunctionCognitiveComplexityCheck.java @@ -58,7 +58,7 @@ public void setMaxComplexity(int max) { @Override protected void analyzeComplexity(CxxComplexityScope scope) { if (scope.getComplexity() > max) { - final StringBuilder msg = new StringBuilder(); + final StringBuilder msg = new StringBuilder(256); msg.append("The Cognitive Complexity of this function is ").append(scope.getComplexity()) .append(" which is greater than ").append(max).append(" authorized."); diff --git a/cxx-checks/src/test/java/org/sonar/cxx/checks/api/UndocumentedApiCheckTest.java b/cxx-checks/src/test/java/org/sonar/cxx/checks/api/UndocumentedApiCheckTest.java index 3ae0d044ac..ca9b0b87ab 100644 --- a/cxx-checks/src/test/java/org/sonar/cxx/checks/api/UndocumentedApiCheckTest.java +++ b/cxx-checks/src/test/java/org/sonar/cxx/checks/api/UndocumentedApiCheckTest.java @@ -102,7 +102,7 @@ public void docStyle1() throws UnsupportedEncodingException, IOException { CxxFileTester tester = CxxFileTesterHelper.CreateCxxFileTester("src/test/resources/checks/UndocumentedApiCheck/doc_style1.h", "."); SourceFile file = CxxAstScanner.scanSingleFile(tester.cxxFile, tester.sensorContext, CxxFileTesterHelper.mockCxxLanguage(), new UndocumentedApiCheck()); - StringBuilder errors = new StringBuilder(); + StringBuilder errors = new StringBuilder(1024); for (CheckMessage msg : file.getCheckMessages()) { errors.append("Line: "); errors.append(msg.getLine()); @@ -118,7 +118,7 @@ public void docStyle2() throws UnsupportedEncodingException, IOException { CxxFileTester tester = CxxFileTesterHelper.CreateCxxFileTester("src/test/resources/checks/UndocumentedApiCheck/doc_style2.h", "."); SourceFile file = CxxAstScanner.scanSingleFile(tester.cxxFile, tester.sensorContext, CxxFileTesterHelper.mockCxxLanguage(), new UndocumentedApiCheck()); - StringBuilder errors = new StringBuilder(); + StringBuilder errors = new StringBuilder(1024); for (CheckMessage msg : file.getCheckMessages()) { errors.append("Line: "); errors.append(msg.getLine()); diff --git a/cxx-lint/src/main/java/org/sonar/cxx/cxxlint/CxxLint.java b/cxx-lint/src/main/java/org/sonar/cxx/cxxlint/CxxLint.java index f14eea3135..7530ad980a 100644 --- a/cxx-lint/src/main/java/org/sonar/cxx/cxxlint/CxxLint.java +++ b/cxx-lint/src/main/java/org/sonar/cxx/cxxlint/CxxLint.java @@ -166,7 +166,7 @@ public static void main(String[] args) { } JsonElement additionalOptions = parser.parse(fileContent).getAsJsonObject().get("additionalOptions"); - StringBuilder elementsOfAdditionalOptions = new StringBuilder(); + StringBuilder elementsOfAdditionalOptions = new StringBuilder(512); if (additionalOptions != null) { for (JsonElement option : additionalOptions.getAsJsonArray()) { elementsOfAdditionalOptions.append(' '); diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/clangtidy/CxxClangTidySensor.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/clangtidy/CxxClangTidySensor.java index e11298fa7b..a0258328fa 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/clangtidy/CxxClangTidySensor.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/clangtidy/CxxClangTidySensor.java @@ -43,8 +43,8 @@ public class CxxClangTidySensor extends CxxIssuesReportSensor { public static final String DEFAULT_CHARSET_DEF = "UTF-8"; private static final Logger LOG = Loggers.get(CxxClangTidySensor.class); - private static final String regex = "(.+|[a-zA-Z]:\\\\.+):([0-9]+):([0-9]+): ([^:]+): ([^]]+) \\[([^]]+)\\]"; - private static final Pattern pattern = Pattern.compile(regex); + private static final String REGEX = "(.+|[a-zA-Z]:\\\\.+):([0-9]+):([0-9]+): ([^:]+): ([^]]+) \\[([^]]+)\\]"; + private static final Pattern PATTERN = Pattern.compile(REGEX); /** * CxxClangTidySensor for clang-tidy Sensor @@ -80,7 +80,7 @@ protected void processReport(final SensorContext context, File report) { while (scanner.hasNextLine()) { String line = scanner.nextLine(); - final Matcher matcher = pattern.matcher(line); + final Matcher matcher = PATTERN.matcher(line); if (matcher.matches()) { MatchResult m = matcher.toMatchResult(); String path = m.group(1); diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/cppcheck/CppcheckParserV2.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/cppcheck/CppcheckParserV2.java index f76ab92957..853a09e3c5 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/cppcheck/CppcheckParserV2.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/cppcheck/CppcheckParserV2.java @@ -158,7 +158,7 @@ private void processErrorTag(final SensorContext context, SMInputCursor errorCur String primaryFile = primaryLocation.getFile(); String primaryLine = primaryLocation.getLine(); - StringBuilder extendedInfo = new StringBuilder(); + StringBuilder extendedInfo = new StringBuilder(512); extendedInfo.append(makeRelativePath(file, primaryFile)).append(":").append(line).append(" ") .append(info); issue.addLocation(primaryFile, primaryLine, extendedInfo.toString()); diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/drmemory/CxxDrMemorySensor.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/drmemory/CxxDrMemorySensor.java index 5bf4404b5d..8ad2bf2b4d 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/drmemory/CxxDrMemorySensor.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/drmemory/CxxDrMemorySensor.java @@ -56,7 +56,7 @@ public CxxDrMemorySensor(CxxLanguage language) { } private static String getFrameText(Location frame, int frameNr) { - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(512); sb.append("#").append(frameNr).append(" ").append(frame.getFile()).append(":").append(frame.getLine()); return sb.toString(); } diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/drmemory/DrMemoryParser.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/drmemory/DrMemoryParser.java index 6efaff25b2..9629c4cc9b 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/drmemory/DrMemoryParser.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/drmemory/DrMemoryParser.java @@ -94,7 +94,7 @@ public static List getElements(File file, String charset) { List list = new ArrayList<>(); try (InputStream input = java.nio.file.Files.newInputStream(file.toPath())) { BufferedReader br = new BufferedReader(new InputStreamReader(input, charset)); - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(4096); String line; int cnt = 0; final Pattern whitespacesOnly = Pattern.compile("^\\s*$"); @@ -118,7 +118,7 @@ public static List getElements(File file, String charset) { br.close(); } catch (IOException e) { - String msg = new StringBuilder().append("Cannot feed the data into sonar, details: '") + String msg = new StringBuilder(512).append("Cannot feed the data into sonar, details: '") .append(e) .append("'").toString(); LOG.error(msg); diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/other/CxxOtherSensor.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/other/CxxOtherSensor.java index ae026a743b..0d5a0ce2c5 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/other/CxxOtherSensor.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/other/CxxOtherSensor.java @@ -200,7 +200,7 @@ private void transformFileList(final String baseDir, String stylesheet, List"); for (TestCase tc : testCases) { details.append(tc.getDetails()); diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/utils/CxxIssuesReportSensor.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/utils/CxxIssuesReportSensor.java index f81a3061f3..792a36f9a0 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/utils/CxxIssuesReportSensor.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/utils/CxxIssuesReportSensor.java @@ -113,7 +113,7 @@ public void execute(SensorContext context) { .save(); } } catch (Exception e) { - String msg = new StringBuilder() + String msg = new StringBuilder(256) .append("Cannot feed the data into sonar, details: '") .append(e) .append("'") @@ -142,8 +142,10 @@ public InputFile getInputFileIfInProject(SensorContext sensorContext, String pat final InputFile inputFile = sensorContext.fileSystem().inputFile(sensorContext. fileSystem().predicates().hasPath(path)); if (inputFile == null) { - LOG.debug("Path '{}' couldn't be found in module '{}' base dir '{}'", path, sensorContext.module().key(), - sensorContext.fileSystem().baseDir()); + if (LOG.isDebugEnabled()) { + LOG.debug("Path '{}' couldn't be found in module '{}' base dir '{}'", path, sensorContext.module().key(), + sensorContext.fileSystem().baseDir()); + } notFoundFiles.add(path); } return inputFile; @@ -165,9 +167,7 @@ private void executeReport(SensorContext context, File report, int prevViolation } } catch (EmptyReportException e) { LOG.warn("The report '{}' seems to be empty, ignoring.", report); - if (LOG.isDebugEnabled()) { - LOG.debug("Cannot read report", e); - } + LOG.debug("Cannot read report", e); CxxUtils.validateRecovery(e, getLanguage()); } } diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/utils/JsonCompilationDatabase.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/utils/JsonCompilationDatabase.java index 91bbb760f3..f78ae7d695 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/utils/JsonCompilationDatabase.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/utils/JsonCompilationDatabase.java @@ -151,7 +151,7 @@ private static String[] tokenizeCommandLine(String cmdLine) { List args = new ArrayList<>(); boolean escape = false; char stringOpen = 0; - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(512); // Tokenize command line with support for escaping for (char ch : cmdLine.toCharArray()) { @@ -170,7 +170,7 @@ private static String[] tokenizeCommandLine(String cmdLine) { } else if ((ch == ' ') && (sb.length() > 0)) { args.add(sb.toString()); - sb = new StringBuilder(); + sb = new StringBuilder(512); } if (ch != ' ') { sb.append(ch); diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/CxxValgrindSensor.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/CxxValgrindSensor.java index 4f2236b5b9..1cb528adad 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/CxxValgrindSensor.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/CxxValgrindSensor.java @@ -49,7 +49,7 @@ public CxxValgrindSensor(CxxLanguage language) { } private static String createErrorMsg(ValgrindError error, ValgrindStack stack, int stackNr) { - StringBuilder errorMsg = new StringBuilder(); + StringBuilder errorMsg = new StringBuilder(512); errorMsg.append(error.getText()); if (error.getStacks().size() > 1) { errorMsg.append(" (Stack ").append(stackNr).append(")"); diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/ValgrindError.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/ValgrindError.java index 533b130995..3ee7a04df3 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/ValgrindError.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/ValgrindError.java @@ -57,7 +57,7 @@ public ValgrindError(String kind, String text, List stacks) { */ @Override public String toString() { - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(512); sb.append("ValgrindError [kind=").append(kind).append(", text=").append(text).append(", stacks=["); for (ValgrindStack stack : stacks) { sb.append(" ValgrindStack=[").append(stack).append("] "); diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/ValgrindFrame.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/ValgrindFrame.java index d755e8b50d..d82d3c4037 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/ValgrindFrame.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/ValgrindFrame.java @@ -54,7 +54,7 @@ public ValgrindFrame(@Nullable String ip, @Nullable String obj, @Nullable String @Override public String toString() { - StringBuilder builder = new StringBuilder().append(ip).append(": ").append(fn); + StringBuilder builder = new StringBuilder(256).append(ip).append(": ").append(fn); if (isLocationKnown()) { builder.append(" (") .append("".equals(file) ? ("in " + obj) : (file + getLineStr())) diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/ValgrindStack.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/ValgrindStack.java index 0ab87f9686..d90dcd9a3d 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/ValgrindStack.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/valgrind/ValgrindStack.java @@ -53,7 +53,7 @@ public List getFrames() { @Override public String toString() { - StringBuilder res = new StringBuilder(); + StringBuilder res = new StringBuilder(256); for (ValgrindFrame frame : frames) { res.append(frame); res.append('\n'); diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/visitors/CxxCpdVisitor.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/visitors/CxxCpdVisitor.java index 656b421bd8..e0f435f1a5 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/visitors/CxxCpdVisitor.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/visitors/CxxCpdVisitor.java @@ -104,10 +104,8 @@ public void visitToken(Token token) { cpdTokens.addToken(range, text); } catch (IllegalArgumentException | IllegalStateException e) { // ignore range errors: parsing errors could lead to wrong location data - if (LOG.isDebugEnabled()) { - LOG.debug("CPD error in file '{}' at line:{}, column:{}", getContext().getFile().getAbsoluteFile(), - token.getLine(), token.getColumn()); - } + LOG.debug("CPD error in file '{}' at line:{}, column:{}", getContext().getFile().getAbsoluteFile(), + token.getLine(), token.getColumn()); } } } diff --git a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/visitors/CxxHighlighterVisitor.java b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/visitors/CxxHighlighterVisitor.java index 4aa403b660..288174a553 100644 --- a/cxx-sensors/src/main/java/org/sonar/cxx/sensors/visitors/CxxHighlighterVisitor.java +++ b/cxx-sensors/src/main/java/org/sonar/cxx/sensors/visitors/CxxHighlighterVisitor.java @@ -117,9 +117,7 @@ private TokenLocation highlight(TokenLocation last, TokenLocation current, TypeO // ignore highlight errors: parsing errors could lead to wrong location data LOG.warn("Highligthing error in file '{}' at line:{}, column:{}", getContext().getFile().getAbsoluteFile(), current.startLine(), current.startLineOffset()); - if (LOG.isDebugEnabled()) { - LOG.debug("highlighing exception {}", ex); - } + LOG.debug("highlighing exception {}", ex); } return current; } diff --git a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/clangsa/CxxClangSASensorTest.java b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/clangsa/CxxClangSASensorTest.java index 504feed087..e191e278a2 100644 --- a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/clangsa/CxxClangSASensorTest.java +++ b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/clangsa/CxxClangSASensorTest.java @@ -73,12 +73,12 @@ public void shouldReportCorrectViolations() { * 2 issues */ DefaultInputFile testFile0 = TestInputFileBuilder.create("ProjectKey", "src/lib/component0.cc").setLanguage("cpp") - .initMetadata(new String("asd\nasdas\nasda\n")).build(); + .initMetadata("asd\nasdas\nasda\n").build(); /* * 1 issue */ DefaultInputFile testFile1 = TestInputFileBuilder.create("ProjectKey", "src/lib/component1.cc").setLanguage("cpp") - .initMetadata(new String("asd\nasdas\nasda\n")).build(); + .initMetadata("asd\nasdas\nasda\n").build(); context.fileSystem().add(testFile0); context.fileSystem().add(testFile1); @@ -99,12 +99,12 @@ public void shouldReportCorrectMetrics() { * 2 issues */ DefaultInputFile testFile0 = TestInputFileBuilder.create("ProjectKey", "src/lib/component0.cc").setLanguage("cpp") - .initMetadata(new String("asd\nasdas\nasda\n")).build(); + .initMetadata("asd\nasdas\nasda\n").build(); /* * 1 issue */ DefaultInputFile testFile1 = TestInputFileBuilder.create("ProjectKey", "src/lib/component1.cc").setLanguage("cpp") - .initMetadata(new String("asd\nasdas\nasda\n")).build(); + .initMetadata("asd\nasdas\nasda\n").build(); context.fileSystem().add(testFile0); context.fileSystem().add(testFile1); @@ -138,7 +138,7 @@ public void invalidReportReportsNoIssues() { context.setSettings(settings); context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "src/lib/component1.cc") - .setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + .setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); CxxClangSASensor sensor = new CxxClangSASensor(language); sensor.execute(context); diff --git a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/clangtidy/CxxClangTidySensorTest.java b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/clangtidy/CxxClangTidySensorTest.java index 0c3a809bcd..6fa336538c 100644 --- a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/clangtidy/CxxClangTidySensorTest.java +++ b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/clangtidy/CxxClangTidySensorTest.java @@ -71,7 +71,7 @@ public void shouldReportCorrectViolations() { context.setSettings(settings); context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "sources/utils/code_chunks.cpp") - .setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + .setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); CxxClangTidySensor sensor = new CxxClangTidySensor(language); @@ -90,7 +90,7 @@ public void invalidReportReportsNoIssues() { context.setSettings(settings); context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "sources/utils/code_chunks.cpp") - .setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + .setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); CxxClangTidySensor sensor = new CxxClangTidySensor(language); diff --git a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/coverage/CxxBullseyeCoverageSensorTest.java b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/coverage/CxxBullseyeCoverageSensorTest.java index c934d31def..5f7e4a62a4 100644 --- a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/coverage/CxxBullseyeCoverageSensorTest.java +++ b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/coverage/CxxBullseyeCoverageSensorTest.java @@ -172,7 +172,7 @@ public void shouldReportAllProbes() { "covfile/src/main/vr_core/src/VR.cpp" }; - StringBuilder sourceContent = new StringBuilder(); + StringBuilder sourceContent = new StringBuilder(8192); sourceContent.append("asd\nasdas\nasda\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n"); for (int i = 0; i < 4000; i++) { sourceContent.append('\n'); diff --git a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/cppcheck/CxxCppCheckSensorTest.java b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/cppcheck/CxxCppCheckSensorTest.java index 2022957578..b9682614e7 100644 --- a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/cppcheck/CxxCppCheckSensorTest.java +++ b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/cppcheck/CxxCppCheckSensorTest.java @@ -59,9 +59,9 @@ public void shouldReportCorrectViolations() { CxxCppCheckSensor sensor = new CxxCppCheckSensor(language); context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "sources/utils/code_chunks.cpp") - .setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + .setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "sources/utils/utils.cpp") - .setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + .setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); sensor.execute(context); assertThat(context.allIssues()).hasSize(11); } diff --git a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/pclint/CxxPCLintSensorTest.java b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/pclint/CxxPCLintSensorTest.java index 27df8ca615..41529a90fe 100644 --- a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/pclint/CxxPCLintSensorTest.java +++ b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/pclint/CxxPCLintSensorTest.java @@ -57,8 +57,8 @@ public void shouldReportCorrectViolations() { context.setSettings(settings); context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "FileZip.cpp").setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); - context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "FileZip.h").setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); - context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "ZipManager.cpp").setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "FileZip.h").setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); + context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "ZipManager.cpp").setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); CxxPCLintSensor sensor = new CxxPCLintSensor(language); sensor.execute(context); assertThat(context.allIssues()).hasSize(16); @@ -71,7 +71,7 @@ public void shouldReportCorrectMisra2004Violations() { settings.setProperty(language.getPluginProperty(CxxPCLintSensor.REPORT_PATH_KEY), "pclint-reports/pclint-result-MISRA2004-SAMPLE1.xml"); context.setSettings(settings); - context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "test.c").setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "test.c").setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); CxxPCLintSensor sensor = new CxxPCLintSensor(language); sensor.execute(context); assertThat(context.allIssues()).hasSize(29); @@ -84,7 +84,7 @@ public void shouldReportCorrectMisra2004PcLint9Violations() { settings.setProperty(language.getPluginProperty(CxxPCLintSensor.REPORT_PATH_KEY), "pclint-reports/pclint-result-MISRA2004-SAMPLE2.xml"); context.setSettings(settings); - context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "test.c").setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "test.c").setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); CxxPCLintSensor sensor = new CxxPCLintSensor(language); sensor.execute(context); assertThat(context.allIssues()).hasSize(1); @@ -97,7 +97,7 @@ public void shouldReportCorrectMisraCppViolations() { settings.setProperty(language.getPluginProperty(CxxPCLintSensor.REPORT_PATH_KEY), "pclint-reports/pclint-result-MISRACPP.xml"); context.setSettings(settings); - context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "test.c").setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "test.c").setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); CxxPCLintSensor sensor = new CxxPCLintSensor(language); sensor.execute(context); assertThat(context.allIssues()).hasSize(2); @@ -113,7 +113,7 @@ public void shouldNotSaveIssuesWhenMisra2004DescIsWrong() { settings.setProperty(language.getPluginProperty(CxxPCLintSensor.REPORT_PATH_KEY), "pclint-reports/incorrect-pclint-MISRA2004-desc.xml"); context.setSettings(settings); - context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "test.c").setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "test.c").setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); CxxPCLintSensor sensor = new CxxPCLintSensor(language); sensor.execute(context); assertThat(context.allIssues()).hasSize(0); @@ -126,7 +126,7 @@ public void shouldNotSaveAnythingWhenMisra2004RuleDoNotExist() { settings.setProperty(language.getPluginProperty(CxxPCLintSensor.REPORT_PATH_KEY), "pclint-reports/incorrect-pclint-MISRA2004-rule-do-not-exist.xml"); context.setSettings(settings); - context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "test.c").setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "test.c").setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); CxxPCLintSensor sensor = new CxxPCLintSensor(language); sensor.execute(context); assertThat(context.allIssues()).hasSize(0); @@ -139,7 +139,7 @@ public void shouldNotRemapMisra1998Rules() { settings.setProperty(language.getPluginProperty(CxxPCLintSensor.REPORT_PATH_KEY), "pclint-reports/pclint-result-MISRA1998-SAMPLE.xml"); context.setSettings(settings); - context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "test.c").setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + context.fileSystem().add(TestInputFileBuilder.create("ProjectKey", "test.c").setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); CxxPCLintSensor sensor = new CxxPCLintSensor(language); sensor.execute(context); assertThat(context.allIssues()).hasSize(1); diff --git a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/valgrind/CxxValgrindSensorTest.java b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/valgrind/CxxValgrindSensorTest.java index a80ac0c598..f81e35be7d 100644 --- a/cxx-sensors/src/test/java/org/sonar/cxx/sensors/valgrind/CxxValgrindSensorTest.java +++ b/cxx-sensors/src/test/java/org/sonar/cxx/sensors/valgrind/CxxValgrindSensorTest.java @@ -61,7 +61,7 @@ public void shouldSaveViolationIfErrorIsInside() { SensorContextTester context = SensorContextTester.create(fs.baseDir()); Set valgrindErrors = new HashSet<>(); valgrindErrors.add(mockValgrindError(true)); - context.fileSystem().add(TestInputFileBuilder.create("myProjectKey", "dir/file").setLanguage("cpp").initMetadata(new String("asd\nasdas\nasda\n")).build()); + context.fileSystem().add(TestInputFileBuilder.create("myProjectKey", "dir/file").setLanguage("cpp").initMetadata("asd\nasdas\nasda\n").build()); sensor.saveErrors(context, valgrindErrors); assertThat(context.allIssues()).hasSize(1); } diff --git a/cxx-squid/src/main/java/org/sonar/cxx/CxxAstScanner.java b/cxx-squid/src/main/java/org/sonar/cxx/CxxAstScanner.java index 0252a41ac4..33d96975f0 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/CxxAstScanner.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/CxxAstScanner.java @@ -140,15 +140,16 @@ public boolean isBlank(String line) { @Override public String getContents(String comment) { - return "/*".equals(comment.substring(0, 2)) - ? comment.substring(2, comment.length() - 2) - : comment.substring(2); + final int HEADER_LEN = 2; + return "/*".equals(comment.substring(0, HEADER_LEN)) + ? comment.substring(HEADER_LEN, comment.length() - HEADER_LEN) + : comment.substring(HEADER_LEN); } }); /* Functions */ builder.withSquidAstVisitor(new SourceCodeBuilderVisitor<>((SourceCode parentSourceCode, AstNode astNode) -> { - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(512); for (Token token : astNode.getFirstDescendant(CxxGrammarImpl.declaratorId).getTokens()) { sb.append(token.getValue()); } diff --git a/cxx-squid/src/main/java/org/sonar/cxx/CxxComplexityConstants.java b/cxx-squid/src/main/java/org/sonar/cxx/CxxComplexityConstants.java index 80bda0b1d1..151b7540d9 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/CxxComplexityConstants.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/CxxComplexityConstants.java @@ -54,7 +54,7 @@ private CxxComplexityConstants() { } public static AstNodeType[] getCyclomaticComplexityTypes() { - return CYCLOMATIC_COMPLEXITY_TYPES; + return CYCLOMATIC_COMPLEXITY_TYPES.clone(); } } diff --git a/cxx-squid/src/main/java/org/sonar/cxx/CxxVCppBuildLogParser.java b/cxx-squid/src/main/java/org/sonar/cxx/CxxVCppBuildLogParser.java index a487879253..124dd227bd 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/CxxVCppBuildLogParser.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/CxxVCppBuildLogParser.java @@ -51,13 +51,13 @@ public class CxxVCppBuildLogParser { private static final String CPPWINRTVERSION = "__cplusplus_winrt=201009"; private static final String CPPVERSION = "__cplusplus=199711L"; - private static final Pattern[] includePatterns = {Pattern.compile("/I\"(.*?)\""), + private static final Pattern[] INCLUDE_PATTERNS = {Pattern.compile("/I\"(.*?)\""), Pattern.compile("/I([^\\s\"]+) ")}; - private static final Pattern[] definePatterns = {Pattern.compile("[/-]D\\s([^\\s]+)"), + private static final Pattern[] DEFINE_PATTERNS = {Pattern.compile("[/-]D\\s([^\\s]+)"), Pattern.compile("[/-]D([^\\s]+)")}; - private static final Pattern pathToCLPattern = Pattern.compile("^.*\\\\bin\\\\.*CL.exe\\x20.*$"); - private static final Pattern plattformX86Pattern = Pattern.compile("Building solution configuration \".*\\|x64\"."); - private static final Pattern toolsetV141Pattern = Pattern + private static final Pattern PATH_TO_CL_PATTERN = Pattern.compile("^.*\\\\bin\\\\.*CL.exe\\x20.*$"); + private static final Pattern PLATTFORM_X86_PATTERN = Pattern.compile("Building solution configuration \".*\\|x64\"."); + private static final Pattern TOOLSET_V141_PATTERN = Pattern .compile("^.*VC\\\\Tools\\\\MSVC\\\\14\\.1\\d\\.\\d+\\\\bin\\\\HostX(86|64)\\\\x(86|64)\\\\CL.exe.*$"); private final Map> uniqueIncludes; @@ -162,14 +162,14 @@ public void parseVCppLog(File buildLog, String baseDir, String charsetName) { // 1>Task "Message" //1> Platform=Win32 String lineTrimmed = line.trim(); - if (lineTrimmed.endsWith("Platform=x64") || plattformX86Pattern.matcher(lineTrimmed).matches()) { + if (lineTrimmed.endsWith("Platform=x64") || PLATTFORM_X86_PATTERN.matcher(lineTrimmed).matches()) { setPlatform("x64"); if (LOG.isDebugEnabled()) { LOG.debug("build log parser platform='{}'", this.platform); } } // match "bin\CL.exe", "bin\amd64\CL.exe", "bin\x86_amd64\CL.exe" - if (pathToCLPattern.matcher(line).matches()) { + if (PATH_TO_CL_PATTERN.matcher(line).matches()) { detectedPlatform = setPlatformToolsetFromLine(line); String[] allElems = line.split("\\s+"); String data = allElems[allElems.length - 1]; @@ -212,7 +212,7 @@ private boolean setPlatformToolsetFromLine(String line) { setPlatformToolset("V140"); return true; } else if (line.contains("\\V141\\Microsoft.CppBuild.targets") - || toolsetV141Pattern.matcher(line).matches()) { + || TOOLSET_V141_PATTERN.matcher(line).matches()) { setPlatformToolset("V141"); return true; } else { @@ -252,13 +252,13 @@ private void parseCLParameters(String line, Path currentProjectPath, String data } private void parseVCppCompilerCLLine(String line, String projectPath, String fileElement) { - for (Pattern includePattern : includePatterns) { + for (Pattern includePattern : INCLUDE_PATTERNS) { for (String includeElem : getMatches(includePattern, line)) { parseInclude(includeElem, projectPath, fileElement); } } - for (Pattern definePattern : definePatterns) { + for (Pattern definePattern : DEFINE_PATTERNS) { for (String macroElem : getMatches(definePattern, line)) { addMacro(macroElem, fileElement); } diff --git a/cxx-squid/src/main/java/org/sonar/cxx/channels/CharacterLiteralsChannel.java b/cxx-squid/src/main/java/org/sonar/cxx/channels/CharacterLiteralsChannel.java index da6bbf0d66..e4b178702f 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/channels/CharacterLiteralsChannel.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/channels/CharacterLiteralsChannel.java @@ -32,7 +32,7 @@ public class CharacterLiteralsChannel extends Channel { private static final char EOF = (char) -1; - private final StringBuilder sb = new StringBuilder(); + private final StringBuilder sb = new StringBuilder(256); private int index = 0; private char ch = ' '; @@ -94,12 +94,10 @@ private void readUdSuffix(CodeReader code) { if (c == EOF) { return; } - if ((c >= 'a' && c <= 'z') - || (c >= 'A' && c <= 'Z') - || (c == '_')) { + if (Character.isLowerCase(c) || Character.isUpperCase(c) || (c == '_')) { len++; } else { - if (c >= '0' && c <= '9') { + if (Character.isDigit(c)) { if (len > 0) { len++; } else { diff --git a/cxx-squid/src/main/java/org/sonar/cxx/channels/PreprocessorChannel.java b/cxx-squid/src/main/java/org/sonar/cxx/channels/PreprocessorChannel.java index 9afe5cb483..10f8e73774 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/channels/PreprocessorChannel.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/channels/PreprocessorChannel.java @@ -30,7 +30,7 @@ public class PreprocessorChannel extends Channel { private static final char EOF = (char) -1; private static String read(CodeReader code) { - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(256); char ch; while (true) { diff --git a/cxx-squid/src/main/java/org/sonar/cxx/channels/StringLiteralsChannel.java b/cxx-squid/src/main/java/org/sonar/cxx/channels/StringLiteralsChannel.java index 6eee1d8db3..e5908cbf76 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/channels/StringLiteralsChannel.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/channels/StringLiteralsChannel.java @@ -32,7 +32,7 @@ public class StringLiteralsChannel extends Channel { private static final char EOF = (char) -1; - private final StringBuilder sb = new StringBuilder(); + private final StringBuilder sb = new StringBuilder(256); private int index = 0; private char ch = ' '; @@ -151,12 +151,10 @@ private void readUdSuffix(CodeReader code) { if (c == EOF) { return; } - if ((c >= 'a' && c <= 'z') - || (c >= 'A' && c <= 'Z') - || (c == '_')) { + if (Character.isLowerCase(c) || Character.isUpperCase(c) || (c == '_')) { len++; } else { - if (c >= '0' && c <= '9') { + if (Character.isDigit(c)) { if (len > 0) { len++; } else { diff --git a/cxx-squid/src/main/java/org/sonar/cxx/preprocessor/CxxPreprocessor.java b/cxx-squid/src/main/java/org/sonar/cxx/preprocessor/CxxPreprocessor.java index 7dc47f694a..ff5a685f83 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/preprocessor/CxxPreprocessor.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/preprocessor/CxxPreprocessor.java @@ -346,7 +346,7 @@ private static String quote(String str) { boolean ignoreNextBlank = false; for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); - if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9') || c == '_') { // token + if (Character.isLowerCase(c) || Character.isUpperCase(c) || Character.isDigit(c) || c == '_') { // token if (addBlank) { result.append(' '); addBlank = false; @@ -898,7 +898,7 @@ private File findIncludedFile(AstNode ast, Token token, String currFileName) { quoted = true; } else if ((node = ast.getFirstDescendant(CppGrammar.includeBodyBracketed)) != null) { node = node.getFirstDescendant(LT).getNextSibling(); - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(256); while (true) { String value = node.getTokenValue(); if (">".equals(value)) { @@ -1241,11 +1241,8 @@ public boolean equals(Object o) { if (line != that.line) { return false; } - if (path != null ? !path.equals(that.path) : that.path != null) { - return false; - } - return true; + return (path == null) ? that.path == null : path.equals(that.path); } @Override diff --git a/cxx-squid/src/main/java/org/sonar/cxx/preprocessor/JoinStringsPreprocessor.java b/cxx-squid/src/main/java/org/sonar/cxx/preprocessor/JoinStringsPreprocessor.java index 57748a9f0d..c9fe0ef3b7 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/preprocessor/JoinStringsPreprocessor.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/preprocessor/JoinStringsPreprocessor.java @@ -35,7 +35,7 @@ private static String stripQuotes(String str) { } private static String concatenateStringLiterals(List concatenatedTokens) { - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(256); sb.append("\""); for (Token t : concatenatedTokens) { sb.append(stripQuotes(t.getValue())); diff --git a/cxx-squid/src/main/java/org/sonar/cxx/preprocessor/KeywordChannel.java b/cxx-squid/src/main/java/org/sonar/cxx/preprocessor/KeywordChannel.java index 583ffe0c22..4ec81e7d73 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/preprocessor/KeywordChannel.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/preprocessor/KeywordChannel.java @@ -34,7 +34,7 @@ public class KeywordChannel extends Channel { private final Map keywordsMap = new HashMap<>(); - private final StringBuilder tmpBuilder = new StringBuilder(); + private final StringBuilder tmpBuilder = new StringBuilder(256); private final Matcher matcher; private final Token.Builder tokenBuilder = Token.builder(); diff --git a/cxx-squid/src/main/java/org/sonar/cxx/visitors/CxxComplexitySource.java b/cxx-squid/src/main/java/org/sonar/cxx/visitors/CxxComplexitySource.java index 64fd037ee4..9200a1f364 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/visitors/CxxComplexitySource.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/visitors/CxxComplexitySource.java @@ -51,7 +51,7 @@ public String getExplanation() { if (nesting == 0) { return "+1: " + getNodeDescripton(); } else { - return new StringBuilder().append("+").append(1 + nesting).append(": ").append(getNodeDescripton()) + return new StringBuilder(256).append("+").append(1 + nesting).append(": ").append(getNodeDescripton()) .append(" (incl ").append(nesting).append(" for nesting)").toString(); } } diff --git a/cxx-squid/src/main/java/org/sonar/cxx/visitors/CxxParseErrorLoggerVisitor.java b/cxx-squid/src/main/java/org/sonar/cxx/visitors/CxxParseErrorLoggerVisitor.java index 09952b8ac5..c848599751 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/visitors/CxxParseErrorLoggerVisitor.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/visitors/CxxParseErrorLoggerVisitor.java @@ -72,7 +72,7 @@ public void visitNode(AstNode node) { } List children = node.getChildren(); - StringBuilder sb = new StringBuilder(); + StringBuilder sb = new StringBuilder(512); int identifierLine = -1; for (AstNode child : children) { diff --git a/cxx-squid/src/main/java/org/sonar/cxx/visitors/CxxPublicApiVisitor.java b/cxx-squid/src/main/java/org/sonar/cxx/visitors/CxxPublicApiVisitor.java index 1294f0bae3..70f7950bfa 100644 --- a/cxx-squid/src/main/java/org/sonar/cxx/visitors/CxxPublicApiVisitor.java +++ b/cxx-squid/src/main/java/org/sonar/cxx/visitors/CxxPublicApiVisitor.java @@ -92,7 +92,9 @@ public void leaveFile(AstNode astNode) { protected void onPublicApi(AstNode node, String id, List comments) { final boolean commented = !comments.isEmpty(); - LOG.debug("node: {} line: {} id: '{}' documented: {}", node.getType(), node.getTokenLine(), id, commented); + if (LOG.isDebugEnabled()) { + LOG.debug("node: {} line: {} id: '{}' documented: {}", node.getType(), node.getTokenLine(), id, commented); + } if (!commented) { undocumentedAPINr++; diff --git a/cxx-squid/src/test/java/org/sonar/cxx/AggregateMeasureComputerTest.java b/cxx-squid/src/test/java/org/sonar/cxx/AggregateMeasureComputerTest.java index cb631d1141..a5f4e5396c 100644 --- a/cxx-squid/src/test/java/org/sonar/cxx/AggregateMeasureComputerTest.java +++ b/cxx-squid/src/test/java/org/sonar/cxx/AggregateMeasureComputerTest.java @@ -33,8 +33,8 @@ public class AggregateMeasureComputerTest { - static final Map> metrics = CxxMetricsFactory.generateMap("c++", "cxx"); - static final String key = metrics.get(CxxMetricsFactory.Key.PUBLIC_API_KEY).key(); + static final Map> METRICS = CxxMetricsFactory.generateMap("c++", "cxx"); + static final String KEY = METRICS.get(CxxMetricsFactory.Key.PUBLIC_API_KEY).key(); private static TestMeasureComputerContext createContext(AggregateMeasureComputer aggregator, Component component) { return new TestMeasureComputerContext(component, new TestSettings(), @@ -56,10 +56,10 @@ public void ignoreFiles() { TestComponent file = new TestComponent("file", Type.FILE, new FileAttributesImpl("c++", false)); TestMeasureComputerContext context = createContext(aggregator, file); - context.addChildrenMeasures(key, 4, 3, 2, 1); + context.addChildrenMeasures(KEY, 4, 3, 2, 1); aggregator.compute(context); - assertThat(context.getMeasure(key)).isNull(); + assertThat(context.getMeasure(KEY)).isNull(); } @Test @@ -69,11 +69,11 @@ public void ignoreAlreadyAggregatedMetric() { TestComponent module = new TestComponent("module0", Type.MODULE, null); TestMeasureComputerContext context = createContext(aggregator, module); - context.addMeasure(key, 42); - context.addChildrenMeasures(key, 1, 2, 3, 4); + context.addMeasure(KEY, 42); + context.addChildrenMeasures(KEY, 1, 2, 3, 4); aggregator.compute(context); - assertThat(context.getMeasure(key).getIntValue()).isEqualTo(42); + assertThat(context.getMeasure(KEY).getIntValue()).isEqualTo(42); } @Test @@ -85,7 +85,7 @@ public void ignoreIfNothingToAggregate() { aggregator.compute(context); - assertThat(context.getMeasure(key)).isNull(); + assertThat(context.getMeasure(KEY)).isNull(); } @Test @@ -94,10 +94,10 @@ public void aggregate() { TestComponent module = new TestComponent("module0", Type.MODULE, null); TestMeasureComputerContext context = createContext(aggregator, module); - context.addChildrenMeasures(key, 1, 2, 3, 4); + context.addChildrenMeasures(KEY, 1, 2, 3, 4); aggregator.compute(context); - assertThat(context.getMeasure(key).getIntValue()).isEqualTo(10); + assertThat(context.getMeasure(KEY).getIntValue()).isEqualTo(10); } } diff --git a/cxx-squid/src/test/java/org/sonar/cxx/CxxConfigurationTest.java b/cxx-squid/src/test/java/org/sonar/cxx/CxxConfigurationTest.java index 32e0a6e597..65857f19ed 100644 --- a/cxx-squid/src/test/java/org/sonar/cxx/CxxConfigurationTest.java +++ b/cxx-squid/src/test/java/org/sonar/cxx/CxxConfigurationTest.java @@ -29,13 +29,13 @@ public class CxxConfigurationTest { - private static final String vcKey = "Visual C++"; - private static final String vcCharSet = "UTF8"; + private static final String VC_KEY = "Visual C++"; + private static final String VC_CHARSET = "UTF8"; @Test public void emptyValueShouldReturnNoDirsOrDefines() { CxxConfiguration config = new CxxConfiguration(); - config.setCompilationPropertiesWithBuildLog(new ArrayList<>(), vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(new ArrayList<>(), VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(0); softly.assertThat(config.getDefines().size()).isEqualTo(0); @@ -45,7 +45,7 @@ public void emptyValueShouldReturnNoDirsOrDefines() { @Test public void emptyValueShouldReturnWhenNull() { CxxConfiguration config = new CxxConfiguration(); - config.setCompilationPropertiesWithBuildLog(null, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(null, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(0); assertThat(config.getDefines().size()).isEqualTo(0); @@ -57,7 +57,7 @@ public void emptyValueShouldUseIncludeDirsIfSet() { CxxConfiguration config = new CxxConfiguration(); String[] data = {"dir1", "dir2"}; config.setIncludeDirectories(data); - config.setCompilationPropertiesWithBuildLog(new ArrayList<>(), vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(new ArrayList<>(), VC_KEY, VC_CHARSET); assertThat(config.getIncludeDirectories().size()).isEqualTo(2); } @@ -67,7 +67,7 @@ public void correctlyCreatesConfiguration1() { config.setBaseDir("."); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/vc++13.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(13); @@ -81,7 +81,7 @@ public void shouldHandleSpecificCommonOptionsCorrectly() { config.setBaseDir("."); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/platformCommon.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(0); @@ -106,7 +106,7 @@ public void shouldHandleSpecificCommonWin32OptionsCorrectly() { CxxConfiguration config = new CxxConfiguration(); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/platformCommonWin32.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(0); @@ -123,7 +123,7 @@ public void shouldHandleSpecificCommonx64OptionsCorrectly() { config.setBaseDir("."); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/platformCommonX64.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); assertThat(config.getIncludeDirectories().size()).isEqualTo(0); List defines = config.getDefines(); @@ -146,7 +146,7 @@ public void shouldHandleSpecificV100OptionsCorrectly() { config.setBaseDir("."); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/platformToolsetv100.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(0); @@ -166,7 +166,7 @@ public void shouldHandleSpecificV110OptionsCorrectly() { config.setBaseDir("."); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/platformToolsetv110.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(0); @@ -190,7 +190,7 @@ public void shouldHandleSpecificV120OptionsCorrectly() { config.setBaseDir("."); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/platformToolsetv120.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(0); @@ -217,7 +217,7 @@ public void shouldHandleSpecificV140OptionsCorrectly() { config.setBaseDir("."); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/platformToolsetv140.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(0); @@ -243,7 +243,7 @@ public void shouldHandleTFSAgentV141OptionsCorrectly() { config.setBaseDir("."); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/TFS-agent-msvc14.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(2); @@ -265,7 +265,7 @@ public void shouldHandleTFSAgentV141mpOptionsCorrectly() { config.setBaseDir("."); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/TFS-agent-msvc14-mp.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(2); @@ -287,7 +287,7 @@ public void shouldHandleSpecificV141x86OptionsCorrectly() { config.setBaseDir("."); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/platformToolsetv141x86.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(0); @@ -309,7 +309,7 @@ public void shouldHandleSpecificV141x64OptionsCorrectly() { config.setBaseDir("."); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/platformToolsetv141x64.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(0); @@ -331,7 +331,7 @@ public void shouldHandleBuildLog() { config.setBaseDir("."); List files = new ArrayList<>(); files.add(new File("src/test/resources/logfile/ParallelBuildLog.txt")); - config.setCompilationPropertiesWithBuildLog(files, vcKey, vcCharSet); + config.setCompilationPropertiesWithBuildLog(files, VC_KEY, VC_CHARSET); SoftAssertions softly = new SoftAssertions(); softly.assertThat(config.getIncludeDirectories().size()).isEqualTo(15); diff --git a/cxx-squid/src/test/java/org/sonar/cxx/DensityMeasureComputerTest.java b/cxx-squid/src/test/java/org/sonar/cxx/DensityMeasureComputerTest.java index ebe5e67c9f..b1e15ab6af 100644 --- a/cxx-squid/src/test/java/org/sonar/cxx/DensityMeasureComputerTest.java +++ b/cxx-squid/src/test/java/org/sonar/cxx/DensityMeasureComputerTest.java @@ -32,17 +32,17 @@ public class DensityMeasureComputerTest { - static final Map> metrics = CxxMetricsFactory.generateMap("c++", "cxx"); + static final Map> METRICS = CxxMetricsFactory.generateMap("c++", "cxx"); // percentKey0 = valueKey0 / totalKey0 * 100 - static final String valueKey0 = metrics.get(CxxMetricsFactory.Key.BIG_FUNCTIONS_LOC_KEY).key(); - static final String totalKey0 = metrics.get(CxxMetricsFactory.Key.LOC_IN_FUNCTIONS_KEY).key(); - static final String percentKey0 = metrics.get(CxxMetricsFactory.Key.BIG_FUNCTIONS_LOC_PERC_KEY).key(); + static final String VALUE_KEY0 = METRICS.get(CxxMetricsFactory.Key.BIG_FUNCTIONS_LOC_KEY).key(); + static final String TOTAL_KEY0 = METRICS.get(CxxMetricsFactory.Key.LOC_IN_FUNCTIONS_KEY).key(); + static final String PERCENT_KEY0 = METRICS.get(CxxMetricsFactory.Key.BIG_FUNCTIONS_LOC_PERC_KEY).key(); // percentKey1 = ( totalKey1 - valueKey1 ) / totalKey1 * 100 - static final String valueKey1 = metrics.get(CxxMetricsFactory.Key.PUBLIC_UNDOCUMENTED_API_KEY).key(); - static final String totalKey1 = metrics.get(CxxMetricsFactory.Key.PUBLIC_API_KEY).key(); - static final String percentKey1 = metrics.get(CxxMetricsFactory.Key.PUBLIC_DOCUMENTED_API_DENSITY_KEY).key(); + static final String VALUE_KEY1 = METRICS.get(CxxMetricsFactory.Key.PUBLIC_UNDOCUMENTED_API_KEY).key(); + static final String TOTAL_KEY1 = METRICS.get(CxxMetricsFactory.Key.PUBLIC_API_KEY).key(); + static final String PERCENT_KEY1 = METRICS.get(CxxMetricsFactory.Key.PUBLIC_DOCUMENTED_API_DENSITY_KEY).key(); private static TestMeasureComputerContext createContext(DensityMeasureComputer computer) { final TestComponent component = new TestComponent("file", Type.FILE, new FileAttributesImpl("c++", false)); @@ -62,10 +62,10 @@ public void ignoreMissingValue() { final DensityMeasureComputer computer = new DensityMeasureComputer("c++", "cxx"); TestMeasureComputerContext context = createContext(computer); - context.addInputMeasure(totalKey0, 500); + context.addInputMeasure(TOTAL_KEY0, 500); computer.compute(context); - assertThat(context.getMeasure(percentKey0)).isNull(); + assertThat(context.getMeasure(PERCENT_KEY0)).isNull(); } @Test @@ -73,10 +73,10 @@ public void ignoreMissingTotal() { final DensityMeasureComputer computer = new DensityMeasureComputer("c++", "cxx"); TestMeasureComputerContext context = createContext(computer); - context.addInputMeasure(valueKey0, 100); + context.addInputMeasure(VALUE_KEY0, 100); computer.compute(context); - assertThat(context.getMeasure(percentKey0)).isNull(); + assertThat(context.getMeasure(PERCENT_KEY0)).isNull(); } @Test @@ -86,7 +86,7 @@ public void ignoreMissingBoth() { computer.compute(context); - assertThat(context.getMeasure(percentKey0)).isNull(); + assertThat(context.getMeasure(PERCENT_KEY0)).isNull(); } @Test @@ -94,13 +94,13 @@ public void ignoreAlreadyCalculated() { final DensityMeasureComputer computer = new DensityMeasureComputer("c++", "cxx"); TestMeasureComputerContext context = createContext(computer); - context.addInputMeasure(valueKey0, 100); - context.addInputMeasure(totalKey0, 500); - context.addMeasure(percentKey0, 42.0); + context.addInputMeasure(VALUE_KEY0, 100); + context.addInputMeasure(TOTAL_KEY0, 500); + context.addMeasure(PERCENT_KEY0, 42.0); computer.compute(context); - assertThat(context.getMeasure(percentKey0).getDoubleValue()).isEqualTo(42.0); + assertThat(context.getMeasure(PERCENT_KEY0).getDoubleValue()).isEqualTo(42.0); } @Test @@ -108,11 +108,11 @@ public void calculatePercent() { final DensityMeasureComputer computer = new DensityMeasureComputer("c++", "cxx"); TestMeasureComputerContext context = createContext(computer); - context.addInputMeasure(valueKey0, 100); - context.addInputMeasure(totalKey0, 500); + context.addInputMeasure(VALUE_KEY0, 100); + context.addInputMeasure(TOTAL_KEY0, 500); computer.compute(context); - assertThat(context.getMeasure(percentKey0).getDoubleValue()).isEqualTo(100.0 / 500.0 * 100.0); + assertThat(context.getMeasure(PERCENT_KEY0).getDoubleValue()).isEqualTo(100.0 / 500.0 * 100.0); } @Test @@ -120,11 +120,11 @@ public void calculateRemainingPercent() { final DensityMeasureComputer computer = new DensityMeasureComputer("c++", "cxx"); TestMeasureComputerContext context = createContext(computer); - context.addInputMeasure(valueKey1, 100); - context.addInputMeasure(totalKey1, 500); + context.addInputMeasure(VALUE_KEY1, 100); + context.addInputMeasure(TOTAL_KEY1, 500); computer.compute(context); - assertThat(context.getMeasure(percentKey1).getDoubleValue()).isEqualTo(400.0 / 500.0 * 100.0); + assertThat(context.getMeasure(PERCENT_KEY1).getDoubleValue()).isEqualTo(400.0 / 500.0 * 100.0); } } diff --git a/cxx-squid/src/test/java/org/sonar/cxx/preprocessor/CppLexerTest.java b/cxx-squid/src/test/java/org/sonar/cxx/preprocessor/CppLexerTest.java index e39417a6e6..b36469dc11 100644 --- a/cxx-squid/src/test/java/org/sonar/cxx/preprocessor/CppLexerTest.java +++ b/cxx-squid/src/test/java/org/sonar/cxx/preprocessor/CppLexerTest.java @@ -31,47 +31,47 @@ public class CppLexerTest { - private final static Lexer lexer = CppLexer.create(); + private final static Lexer LEXER = CppLexer.create(); @Test public void cpp_keywords() { - assertThat(lexer.lex("#define"), hasToken("#define", CppKeyword.DEFINE)); - assertThat(lexer.lex("#include"), hasToken("#include", CppKeyword.INCLUDE)); + assertThat(LEXER.lex("#define"), hasToken("#define", CppKeyword.DEFINE)); + assertThat(LEXER.lex("#include"), hasToken("#include", CppKeyword.INCLUDE)); } @Test public void cpp_keywords_with_whitespaces() { - assertThat(lexer.lex("# define"), hasToken("#define", CppKeyword.DEFINE)); - assertThat(lexer.lex("#\tinclude"), hasToken("#include", CppKeyword.INCLUDE)); + assertThat(LEXER.lex("# define"), hasToken("#define", CppKeyword.DEFINE)); + assertThat(LEXER.lex("#\tinclude"), hasToken("#include", CppKeyword.INCLUDE)); } @Test public void cpp_keywords_indented() { - assertThat(lexer.lex(" #define"), hasToken("#define", CppKeyword.DEFINE)); - assertThat(lexer.lex("\t#define"), hasToken("#define", CppKeyword.DEFINE)); + assertThat(LEXER.lex(" #define"), hasToken("#define", CppKeyword.DEFINE)); + assertThat(LEXER.lex("\t#define"), hasToken("#define", CppKeyword.DEFINE)); } @Test public void cpp_identifiers() { - assertThat(lexer.lex("lala"), hasToken("lala", IDENTIFIER)); + assertThat(LEXER.lex("lala"), hasToken("lala", IDENTIFIER)); } @Test public void cpp_operators() { - assertThat(lexer.lex("#"), hasToken("#", CppPunctuator.HASH)); - assertThat(lexer.lex("##"), hasToken("##", CppPunctuator.HASHHASH)); + assertThat(LEXER.lex("#"), hasToken("#", CppPunctuator.HASH)); + assertThat(LEXER.lex("##"), hasToken("##", CppPunctuator.HASHHASH)); } @Test public void hashhash_followed_by_word() { - List tokens = lexer.lex("##a"); + List tokens = LEXER.lex("##a"); assertThat(tokens, hasToken("##", CppPunctuator.HASHHASH)); assertThat(tokens, hasToken("a", IDENTIFIER)); } @Test public void hash_followed_by_word() { - List tokens = lexer.lex("#a"); + List tokens = LEXER.lex("#a"); assertThat(tokens, hasToken("#", CppPunctuator.HASH)); assertThat(tokens, hasToken("a", IDENTIFIER)); } diff --git a/cxx-squid/src/test/java/org/sonar/cxx/preprocessor/IncludeLexerTest.java b/cxx-squid/src/test/java/org/sonar/cxx/preprocessor/IncludeLexerTest.java index f17d014fc1..cea0e43a29 100644 --- a/cxx-squid/src/test/java/org/sonar/cxx/preprocessor/IncludeLexerTest.java +++ b/cxx-squid/src/test/java/org/sonar/cxx/preprocessor/IncludeLexerTest.java @@ -31,32 +31,32 @@ public class IncludeLexerTest { - private final static Lexer lexer = IncludeLexer.create(); + private final static Lexer LEXER = IncludeLexer.create(); @Test public void proper_preprocessor_directives_are_created() { - assertThat(lexer.lex("#include "), hasToken("#include ", CxxTokenType.PREPROCESSOR)); - assertThat(lexer.lex("#define lala"), hasToken("#define lala", CxxTokenType.PREPROCESSOR)); - assertThat(lexer.lex("#ifdef lala"), hasToken("#ifdef lala", CxxTokenType.PREPROCESSOR)); + assertThat(LEXER.lex("#include "), hasToken("#include ", CxxTokenType.PREPROCESSOR)); + assertThat(LEXER.lex("#define lala"), hasToken("#define lala", CxxTokenType.PREPROCESSOR)); + assertThat(LEXER.lex("#ifdef lala"), hasToken("#ifdef lala", CxxTokenType.PREPROCESSOR)); } @Test public void continued_lines_are_handled_correctly() { - List tokens = lexer.lex("#define\\\nname"); + List tokens = LEXER.lex("#define\\\nname"); assertThat(tokens, hasToken("#define name", CxxTokenType.PREPROCESSOR)); assertThat(tokens).hasSize(2); } @Test public void multiline_comment_with_Include_is_swallowed() { - List tokens = lexer.lex("/* This is a multiline comment\n #include should be swallowed\n */"); + List tokens = LEXER.lex("/* This is a multiline comment\n #include should be swallowed\n */"); assertThat(tokens).hasSize(1); assertThat(tokens, hasToken("EOF", EOF)); } @Test public void singleline_comment_with_Include_is_swallowed() { - List tokens = lexer.lex("// #include should be swallowed\n"); + List tokens = LEXER.lex("// #include should be swallowed\n"); assertThat(tokens).hasSize(1); assertThat(tokens, hasToken("EOF", EOF)); } @@ -65,7 +65,7 @@ public void singleline_comment_with_Include_is_swallowed() { public void all_but_preprocessor_stuff_is_swallowed() { // all the other stuff should be consumed by the lexer without // generating any tokens - List tokens = lexer.lex("void foo();"); + List tokens = LEXER.lex("void foo();"); assertThat(tokens).hasSize(1); assertThat(tokens, hasToken("EOF", EOF)); } diff --git a/cxx-squid/src/test/java/org/sonar/cxx/visitors/CxxPublicApiVisitorTest.java b/cxx-squid/src/test/java/org/sonar/cxx/visitors/CxxPublicApiVisitorTest.java index 1748a25aa0..6d673ec20e 100644 --- a/cxx-squid/src/test/java/org/sonar/cxx/visitors/CxxPublicApiVisitorTest.java +++ b/cxx-squid/src/test/java/org/sonar/cxx/visitors/CxxPublicApiVisitorTest.java @@ -49,7 +49,7 @@ public class CxxPublicApiVisitorTest { .getLogger("CxxPublicApiVisitorTest"); private static String getFileExtension(String fileName) { - int lastIndexOf = fileName.lastIndexOf("."); + int lastIndexOf = fileName.lastIndexOf('.'); if (lastIndexOf == -1) { return ""; } @@ -222,10 +222,8 @@ private Tuple testFile(String fileName, boolean checkDouble) CxxFileTester tester = CxxFileTesterHelper.CreateCxxFileTester(fileName, ".", ""); SourceFile file = CxxAstScanner.scanSingleFile(tester.cxxFile, tester.sensorContext, CxxFileTesterHelper.mockCxxLanguage(), visitor); - if (LOG.isDebugEnabled()) { - LOG.debug("#API: {} UNDOC: {}", - file.getInt(CxxMetric.PUBLIC_API), file.getInt(CxxMetric.PUBLIC_UNDOCUMENTED_API)); - } + LOG.debug("#API: {} UNDOC: {}", + file.getInt(CxxMetric.PUBLIC_API), file.getInt(CxxMetric.PUBLIC_UNDOCUMENTED_API)); return new Tuple(file.getInt(CxxMetric.PUBLIC_API), file.getInt(CxxMetric.PUBLIC_UNDOCUMENTED_API)); } diff --git a/integration-tests/features/common.py b/integration-tests/features/common.py index 18bbff8f2e..a13530fe86 100644 --- a/integration-tests/features/common.py +++ b/integration-tests/features/common.py @@ -46,27 +46,27 @@ def get_sonar_log_path(sonarhome): return os.path.join(sonarhome, RELPATH_LOG) def sonar_analysis_finished(logpath): - urlForChecking = "" + url = "" print(BRIGHT + " Read Log : " + logpath + RESET_ALL) try: with open(logpath, "r") as log: lines = log.readlines() - urlForChecking = get_url_from_log(lines) + url = get_url_from_log(lines) except IOError, e: badlines.append(str(e) + "\n") - print(BRIGHT + " Get Analysis In Background : " + urlForChecking + RESET_ALL) + print(BRIGHT + " Get Analysis In Background : " + url + RESET_ALL) - if urlForChecking == "": + if url == "": return "" status = "" while True: time.sleep(1) - response = requests.get(urlForChecking) + response = requests.get(url) task = json.loads(response.text).get("task", None) print(BRIGHT + " CURRENT STATUS : " + task["status"] + RESET_ALL) if task["status"] == "IN_PROGRESS" or task["status"] == "PENDING": @@ -79,7 +79,7 @@ def sonar_analysis_finished(logpath): status = "BACKGROUND TASK AS FAILED. CHECK SERVER : " + logpath + ".server" break - serverlogurl = urlForChecking.replace("task?id", "logs?taskId") + serverlogurl = url.replace("task?id", "logs?taskId") r = requests.get(serverlogurl, auth=HTTPBasicAuth('admin', 'admin'),timeout=10) writepath = logpath + ".server" @@ -105,15 +105,15 @@ def analyse_log(logpath, toignore=None): return badlines, errors, warnings def get_url_from_log(lines): - urlForChecking = "" + url = "" for line in lines: if "INFO: More about the report processing at" in line: - urlForChecking = line.split("INFO: More about the report processing at")[1].strip() + url = line.split("INFO: More about the report processing at")[1].strip() if "INFO - More about the report processing at" in line: - urlForChecking = line.split("INFO - More about the report processing at")[1].strip() + url = line.split("INFO - More about the report processing at")[1].strip() - return urlForChecking + return url def analyse_log_lines(lines, toignore=None): badlines = []