Skip to content

Commit cfe9555

Browse files
authored
Merge pull request #31 from naver/ksmail13/fix/path-normalize
#30 file path normalize
2 parents 7b61217 + fe2f744 commit cfe9555

File tree

25 files changed

+213
-70
lines changed

25 files changed

+213
-70
lines changed

.github/workflows/maven.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ name: cover-checker test and get coverage
44
on:
55
pull_request:
66
branches: [ master ]
7-
types: [opened, synchronize, reopened, edited, ready_for_review, review_requested]
7+
types: [opened, synchronize, reopened, edited, ready_for_review]
88

99
jobs:
1010
test-linux:
@@ -21,7 +21,7 @@ jobs:
2121
shell: bash
2222
env:
2323
ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
24-
run: java -jar ./cover-checker-console/target/cover-checker-console-1.4.1-jar-with-dependencies.jar -c ./cover-checker-cobertura/target/site/jacoco -c ./cover-checker-console/target/site/jacoco -c ./cover-checker-core/target/site/jacoco/ -c ./cover-checker-github/target/site/jacoco -c ./cover-checker-jacoco/target/site/jacoco -t 80 -r $GITHUB_REPOSITORY -g $ACCESS_TOKEN -p $(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')
24+
run: java -jar ./cover-checker-console/target/cover-checker-console-1.4.2-jar-with-dependencies.jar -c ./cover-checker-cobertura/target/site/jacoco -c ./cover-checker-console/target/site/jacoco -c ./cover-checker-core/target/site/jacoco/ -c ./cover-checker-github/target/site/jacoco -c ./cover-checker-jacoco/target/site/jacoco -t 80 -r $GITHUB_REPOSITORY -g $ACCESS_TOKEN -p $(echo $GITHUB_REF | awk 'BEGIN { FS = "/" } ; { print $3 }')
2525
test-macos:
2626
runs-on: macos-latest
2727
steps:

cover-checker-cobertura/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>coverchecker</artifactId>
77
<groupId>com.naver.nid</groupId>
8-
<version>1.4.1</version>
8+
<version>1.4.2</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

cover-checker-cobertura/src/main/java/com/naver/nid/cover/cobertura/CoberturaCoverageReportHandler.java

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,13 @@
1919
import com.naver.nid.cover.parser.coverage.model.CoverageStatus;
2020
import com.naver.nid.cover.parser.coverage.model.FileCoverageReport;
2121
import com.naver.nid.cover.parser.coverage.model.LineCoverageReport;
22+
import com.naver.nid.cover.util.PathUtils;
2223
import lombok.extern.slf4j.Slf4j;
2324
import org.xml.sax.Attributes;
2425

2526
import java.math.BigInteger;
27+
import java.nio.file.Path;
28+
import java.nio.file.Paths;
2629
import java.util.ArrayList;
2730
import java.util.HashMap;
2831
import java.util.List;
@@ -46,7 +49,8 @@ public class CoberturaCoverageReportHandler extends CoverageReportXmlHandler {
4649

4750
private boolean isNowMethod; // 현재 메소드 내부인지
4851

49-
private Map<String, FileCoverageReport> reports = new HashMap<>();
52+
private final Map<Path, FileCoverageReport> reports = new HashMap<>();
53+
5054
private List<LineCoverageReport> lineReports;
5155
private FileCoverageReport current;
5256

@@ -107,18 +111,18 @@ private CoverageStatus getCoverageStatus(Attributes attributes) {
107111
* @param attributes xml attribute
108112
*/
109113
private void initClass(Attributes attributes) {
110-
String fileName = attributes.getValue(ATTR_FILENAME);
114+
Path filePath = Paths.get(PathUtils.generalizeSeparator(attributes.getValue(ATTR_FILENAME)));
111115
if(log.isDebugEnabled()) {
112-
log.debug("parse class {}({})", attributes.getValue("name"), fileName);
116+
log.debug("parse class {}({})", attributes.getValue("name"), filePath);
113117
}
114-
if (reports.containsKey(fileName)) {
115-
current = reports.get(fileName);
118+
if (reports.containsKey(filePath)) {
119+
current = reports.get(filePath);
116120
lineReports = current.getLineCoverageReportList();
117121
} else {
118122
current = new FileCoverageReport();
119123
lineReports = new ArrayList<>();
120-
121-
current.setFileName(fileName);
124+
String fileName = filePath.getFileName().toString();
125+
current.setFileName(filePath);
122126
current.setType(fileName.substring(fileName.lastIndexOf('.') + 1));
123127
current.setLineCoverageReportList(lineReports);
124128
}

cover-checker-cobertura/src/test/java/com/naver/nid/cover/cobertura/CoberturaXmlReportParserTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ public void parseCobertura() {
2020
List<FileCoverageReport> parsed = parser.parse(getClass().getClassLoader().getResource("reports/coverage.xml"));
2121
assertEquals(1, parsed.size());
2222
assertSame(CoverageStatus.COVERED, parsed.stream()
23-
.filter(r -> r.getFileName().contains("CoberturaReportHandler"))
23+
.filter(r -> r.getFileName().endsWith("CoberturaReportHandler.java"))
2424
.findFirst().flatMap(r -> r.getLineCoverageReportList().stream()
2525
.filter(lr -> lr.getLineNum() == 68).findFirst()).orElseThrow(AssertionError::new).getStatus());
2626

cover-checker-console/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>coverchecker</artifactId>
77
<groupId>com.naver.nid</groupId>
8-
<version>1.4.1</version>
8+
<version>1.4.2</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

@@ -81,7 +81,7 @@
8181
</addDefaultImplementationEntries>
8282
</manifest>
8383
</archive>
84-
<finalName>${artifactId}</finalName>
84+
<finalName>${project.artifactId}</finalName>
8585
</configuration>
8686
</plugin>
8787
</plugins>

cover-checker-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<parent>
66
<artifactId>coverchecker</artifactId>
77
<groupId>com.naver.nid</groupId>
8-
<version>1.4.1</version>
8+
<version>1.4.2</version>
99
</parent>
1010
<modelVersion>4.0.0</modelVersion>
1111

cover-checker-core/src/main/java/com/naver/nid/cover/checker/NewCoverageChecker.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import org.slf4j.Logger;
2727
import org.slf4j.LoggerFactory;
2828

29+
import java.nio.file.Path;
2930
import java.util.*;
3031
import java.util.stream.Collectors;
3132
import java.util.stream.Stream;
@@ -50,7 +51,7 @@ public class NewCoverageChecker {
5051
* @return 전체 커버리지, 파일 별 커버리지
5152
*/
5253
public NewCoverageCheckReport check(List<FileCoverageReport> coverage, List<Diff> diff, int threshold, int fileThreshold) {
53-
Map<String, List<Line>> diffMap = diff.stream()
54+
Map<Path, List<Line>> diffMap = diff.stream()
5455
.filter(Objects::nonNull)
5556
.peek(d -> logger.debug("diff file {}", d.getFileName()))
5657
.filter(d -> !d.getFileName().startsWith("src/test"))
@@ -63,7 +64,7 @@ public NewCoverageCheckReport check(List<FileCoverageReport> coverage, List<Diff
6364
.collect(Collectors.toList())
6465
, (u1, u2) -> Stream.concat(u1.stream(), u2.stream()).collect(Collectors.toList())));
6566

66-
Map<String, List<LineCoverageReport>> coverageMap = coverage.stream()
67+
Map<Path, List<LineCoverageReport>> coverageMap = coverage.stream()
6768
.peek(r -> logger.debug("file coverage {}", r.getFileName()))
6869
.collect(Collectors.toMap(FileCoverageReport::getFileName
6970
, FileCoverageReport::getLineCoverageReportList
@@ -84,14 +85,14 @@ public NewCoverageCheckReport check(List<FileCoverageReport> coverage, List<Diff
8485
* @param newCodeLines add line of code for each files
8586
* @return new line of code coverage result
8687
*/
87-
private NewCoverageCheckReport combine(Map<String, List<LineCoverageReport>> coverageReport, Map<String, List<Line>> newCodeLines) {
88+
private NewCoverageCheckReport combine(Map<Path, List<LineCoverageReport>> coverageReport, Map<Path, List<Line>> newCodeLines) {
8889
int totalAddLineCount = 0;
8990
int coveredLineCount = 0;
9091

91-
Set<String> files = new HashSet<>(coverageReport.keySet());
92+
Set<Path> files = new HashSet<>(coverageReport.keySet());
9293

9394
List<NewCoveredFile> coveredFileList = new ArrayList<>();
94-
for (String file : files) {
95+
for (Path file : files) {
9596
// TODO 다른 모듈의 동일 패키지 동일 파일 이름일 경우에 대한 처리 필요
9697

9798
// 코드 커버리지의 끝 경로가 같은 경우에 대해 검색

cover-checker-core/src/main/java/com/naver/nid/cover/checker/model/NewCoveredFile.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,16 @@
1818
import lombok.Builder;
1919
import lombok.Data;
2020

21+
import java.nio.file.Path;
22+
2123
import static com.naver.nid.cover.checker.model.ResultIcon.CHECK_FILE_FAIL;
2224
import static com.naver.nid.cover.checker.model.ResultIcon.CHECK_FILE_PASS;
2325

2426
@Data
2527
@Builder
2628
public class NewCoveredFile {
2729

28-
private String name;
30+
private Path name;
2931
private int addedLine;
3032
private int addedCoverLine;
3133
private int threshold;

cover-checker-core/src/main/java/com/naver/nid/cover/parser/coverage/model/FileCoverageReport.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,15 @@
1919
import lombok.Data;
2020
import lombok.NoArgsConstructor;
2121

22+
import java.nio.file.Path;
2223
import java.util.List;
2324
import java.util.stream.Collectors;
2425

2526
@Data
2627
@AllArgsConstructor
2728
@NoArgsConstructor
2829
public class FileCoverageReport {
29-
private String fileName;
30+
private Path fileName;
3031
private String type;
3132
private List<LineCoverageReport> lineCoverageReportList;
3233

cover-checker-core/src/main/java/com/naver/nid/cover/parser/diff/DiffMapper.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,11 @@
1717

1818
import com.naver.nid.cover.parser.diff.exception.ParseException;
1919
import com.naver.nid.cover.parser.diff.model.*;
20+
import com.naver.nid.cover.util.PathUtils;
2021
import lombok.extern.slf4j.Slf4j;
2122

23+
import java.nio.file.Path;
24+
import java.nio.file.Paths;
2225
import java.util.ArrayList;
2326
import java.util.Collections;
2427
import java.util.List;
@@ -49,7 +52,7 @@ public Diff apply(RawDiff rawDiff) {
4952
Diff diff = new Diff();
5053

5154
// set file name
52-
Optional<String> fileName = Optional.ofNullable(rawDiff.getFileName()).map(this::removeNewFilePrefix);
55+
Optional<Path> fileName = Optional.ofNullable(rawDiff.getFileName()).map(this::removeNewFilePrefix);
5356
log.info("parse diff / {}", fileName);
5457

5558
if (!fileName.isPresent()) {
@@ -98,11 +101,11 @@ private boolean isEof(String line) {
98101
return line.contains("\\ No newline at end of file");
99102
}
100103

101-
private String removeNewFilePrefix(String path) {
104+
private Path removeNewFilePrefix(String path) {
102105
if (path.startsWith("b/")) {
103106
path = path.replaceFirst("b/", "");
104107
}
105-
return path;
108+
return Paths.get(PathUtils.generalizeSeparator(path));
106109
}
107110

108111
private Optional<List<DiffSection>> getDiffSectionListFromRawDiff(RawDiff rawDiff) {

0 commit comments

Comments
 (0)