Skip to content

Commit

Permalink
Handling line "None" in cpplint #68
Browse files Browse the repository at this point in the history
  • Loading branch information
tomasbjerre committed Apr 24, 2019
1 parent ae13633 commit d9164ce
Show file tree
Hide file tree
Showing 5 changed files with 34,892 additions and 22 deletions.
2 changes: 1 addition & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Changelog of Violations lib.
**Testing**


[5e4a022bbfed587](https://github.com/tomasbjerre/violations-lib/commit/5e4a022bbfed587) Tomas Bjerre *2019-04-23 17:51:54*
[ae13633f9e953aa](https://github.com/tomasbjerre/violations-lib/commit/ae13633f9e953aa) Tomas Bjerre *2019-04-23 17:52:56*


## 1.89
Expand Down
53 changes: 32 additions & 21 deletions src/main/java/se/bjurr/violations/lib/parsers/CppLintParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,41 +11,52 @@

import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;
import se.bjurr.violations.lib.model.SEVERITY;
import se.bjurr.violations.lib.model.Violation;

public class CppLintParser implements ViolationsParser {
private static final Logger LOG = Logger.getLogger(CppLintParser.class.getSimpleName());

@Override
public List<Violation> parseReportOutput(String string) throws Exception {
List<Violation> violations = new ArrayList<>();
List<String> lines = getLines(string);
for (String line : lines) {
List<String> parts =
public List<Violation> parseReportOutput(final String string) throws Exception {
final List<Violation> violations = new ArrayList<>();
final List<String> lines = getLines(string);
for (final String line : lines) {
final List<String> parts =
getParts(line, "\\[([^\\]]*)\\]$", "\\[([^\\]]*)\\]$", "^([^:]*):", "^([^:]*):", "(.*)");
if (parts.isEmpty()) {
continue; // Happens for the line "Done processing cpp/test.cpp"
}
Integer severity = parseInt(parts.get(0));
String rule = parts.get(1);
String filename = parts.get(2);
Integer lineNumber = parseInt(parts.get(3));
String message = parts.get(4);
violations.add( //
violationBuilder() //
.setParser(CPPLINT) //
.setStartLine(lineNumber) //
.setFile(filename) //
.setRule(rule) //
.setSeverity(toSeverity(severity)) //
.setMessage(message) //
.build() //
);
try {
final Integer severity = parseInt(parts.get(0));
final String rule = parts.get(1);
final String filename = parts.get(2);
int lineNumber;
if (parts.get(3).equalsIgnoreCase("None")) {
lineNumber = 0;
} else {
lineNumber = parseInt(parts.get(3));
}
final String message = parts.get(4);
violations.add( //
violationBuilder() //
.setParser(CPPLINT) //
.setStartLine(lineNumber) //
.setFile(filename) //
.setRule(rule) //
.setSeverity(toSeverity(severity)) //
.setMessage(message) //
.build() //
);
} catch (final Exception e) {
LOG.info("Was unable to parse: \"" + line + "\" found parts: " + parts);
}
}
return violations;
}

public SEVERITY toSeverity(Integer severity) {
public SEVERITY toSeverity(final Integer severity) {
if (severity >= 5) {
return ERROR;
}
Expand Down
15 changes: 15 additions & 0 deletions src/test/java/se/bjurr/violations/lib/CppLintTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -119,4 +119,19 @@ public void testThatViolationsCanBeParsedMulti() {
assertThat(violation1.getEndLine()) //
.isEqualTo(5);
}

@Test
public void testThat() {
final String rootFolder = getRootFolder();

final List<Violation> actual =
violationsApi() //
.withPattern(".*cpplint\\.xml$") //
.inFolder(rootFolder) //
.findAll(CPPLINT) //
.violations();

assertThat(actual) //
.hasSize(34711);
}
}
Loading

0 comments on commit d9164ce

Please sign in to comment.