@Test public void file_with_branches() throws Exception { addFileToFs(fileWithBranches); GenericCoverageReportParser parser = new GenericCoverageReportParser(); parser.parse(new File(this.getClass().getResource("coverage.xml").toURI()), context); assertThat(parser.numberOfMatchedFiles()).isEqualTo(1); assertThat(context.lineHits(fileWithBranches.key(), 3)).isEqualTo(1); assertThat(context.lineHits(fileWithBranches.key(), 4)).isEqualTo(1); assertThat(context.conditions(fileWithBranches.key(), 3)).isEqualTo(8); assertThat(context.conditions(fileWithBranches.key(), 4)).isEqualTo(2); assertThat(context.coveredConditions(fileWithBranches.key(), 3)).isEqualTo(5); assertThat(context.coveredConditions(fileWithBranches.key(), 4)).isEqualTo(0); }
@Test public void testLineHitAndConditions() throws IOException { File coverage = new File(baseDir, "src/foo.xoo.overallcoverage"); FileUtils.write(coverage, "1:3:4:2"); InputFile inputFile = new TestInputFileBuilder("foo", "src/foo.xoo").setLanguage("xoo").setModuleBaseDir(baseDir.toPath()).setLines(10).build(); context.fileSystem().add(inputFile); sensor.execute(context); assertThat(context.lineHits("foo:src/foo.xoo", 1)).isEqualTo(3); assertThat(context.conditions("foo:src/foo.xoo", 1)).isEqualTo(4); assertThat(context.coveredConditions("foo:src/foo.xoo", 1)).isEqualTo(2); } }
@Test public void testLineHitAndConditions() throws IOException { File coverage = new File(baseDir, "src/foo.xoo.itcoverage"); FileUtils.write(coverage, "1:3:4:2"); InputFile inputFile = new TestInputFileBuilder("foo", "src/foo.xoo").setModuleBaseDir(baseDir.toPath()).setLanguage("xoo").setLines(10).build(); context.fileSystem().add(inputFile); sensor.execute(context); assertThat(context.lineHits("foo:src/foo.xoo", 1)).isEqualTo(3); assertThat(context.conditions("foo:src/foo.xoo", 1)).isEqualTo(4); assertThat(context.coveredConditions("foo:src/foo.xoo", 1)).isEqualTo(2); } }
@Test public void testLineHitAndConditions() throws IOException { File coverage = new File(baseDir, "src/foo.xoo.coverage"); FileUtils.write(coverage, "1:3:4:2"); InputFile inputFile = new TestInputFileBuilder("foo", "src/foo.xoo").setLanguage("xoo").setModuleBaseDir(baseDir.toPath()).setLines(10).build(); context.fileSystem().add(inputFile); sensor.execute(context); assertThat(context.lineHits("foo:src/foo.xoo", 1)).isEqualTo(3); assertThat(context.conditions("foo:src/foo.xoo", 1)).isEqualTo(4); assertThat(context.coveredConditions("foo:src/foo.xoo", 1)).isEqualTo(2); } }
@Test public void testConditions() { assertThat(tester.conditions("foo:src/Foo.java", 1)).isNull(); assertThat(tester.coveredConditions("foo:src/Foo.java", 1)).isNull(); tester.newCoverage() .onFile(new TestInputFileBuilder("foo", "src/Foo.java") .initMetadata("annot dsf fds foo bar\nasd\nasdas\nasdfas") .build()) .conditions(1, 4, 2) .save(); assertThat(tester.conditions("foo:src/Foo.java", 1)).isEqualTo(4); assertThat(tester.coveredConditions("foo:src/Foo.java", 1)).isEqualTo(2); }
public void multipleCoverage() { tester.newCoverage() .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar\nasdas").build()) .lineHits(1, 2) .conditions(3, 4, 2) .save(); tester.newCoverage() .onFile(new TestInputFileBuilder("foo", "src/Foo.java").initMetadata("annot dsf fds foo bar\nasdas").build()) .lineHits(1, 2) .conditions(3, 4, 3) .save(); assertThat(tester.lineHits("foo:src/Foo.java", 1)).isEqualTo(4); assertThat(tester.conditions("foo:src/Foo.java", 3)).isEqualTo(4); assertThat(tester.coveredConditions("foo:src/Foo.java", 3)).isEqualTo(3); }
@Test void upload_reports() throws IOException { Path baseDir = COVERAGE_DIR.toAbsolutePath(); SensorContextTester context = SensorContextTester.create(baseDir); context.setSettings(new MapSettings()); context.settings().setProperty("sonar.go.coverage.reportPaths", "coverage.relative.out"); Path goFilePath = baseDir.resolve("cover.go"); String content = new String(Files.readAllBytes(goFilePath), UTF_8); context.fileSystem().add(TestInputFileBuilder.create("moduleKey", baseDir.toFile(), goFilePath.toFile()) .setLanguage("go") .setType(InputFile.Type.MAIN) .initMetadata(content) .setContents(content) .build()); GoPathContext goContext = new GoPathContext(File.separatorChar, File.pathSeparator, baseDir.toString()); GoCoverageReport.saveCoverageReports(context, goContext); String fileKey = "moduleKey:cover.go"; assertThat(context.lineHits(fileKey, 3)).isNull(); assertThat(context.lineHits(fileKey, 4)).isEqualTo(1); assertThat(context.lineHits(fileKey, 5)).isEqualTo(2); assertThat(context.conditions(fileKey, 5)).isNull(); assertThat(context.coveredConditions(fileKey, 5)).isNull(); assertThat(context.lineHits(fileKey, 6)).isEqualTo(0); assertThat(context.lineHits(fileKey, 7)).isEqualTo(0); assertThat(context.lineHits(fileKey, 8)).isNull(); }
@Test void coverage_fuzzy_inputfile() throws Exception { Path baseDir = COVERAGE_DIR.toAbsolutePath(); SensorContextTester context = SensorContextTester.create(baseDir); context.setSettings(new MapSettings()); context.settings().setProperty("sonar.go.coverage.reportPaths", "coverage.fuzzy.out"); Path goFilePath = baseDir.resolve("cover.go"); String content = new String(Files.readAllBytes(goFilePath), UTF_8); context.fileSystem().add(TestInputFileBuilder.create("moduleKey", baseDir.toFile(), goFilePath.toFile()) .setLanguage("go") .setType(InputFile.Type.MAIN) .initMetadata(content) .setContents(content) .build()); GoPathContext goContext = new GoPathContext(File.separatorChar, File.pathSeparator, ""); GoCoverageReport.saveCoverageReports(context, goContext); String fileKey = "moduleKey:cover.go"; assertThat(context.lineHits(fileKey, 3)).isNull(); assertThat(context.lineHits(fileKey, 4)).isEqualTo(1); assertThat(context.lineHits(fileKey, 5)).isEqualTo(2); assertThat(context.conditions(fileKey, 5)).isNull(); assertThat(context.coveredConditions(fileKey, 5)).isNull(); assertThat(context.lineHits(fileKey, 6)).isEqualTo(0); assertThat(context.lineHits(fileKey, 7)).isEqualTo(0); assertThat(context.lineHits(fileKey, 8)).isNull(); String ignoredFileLog = "File 'doesntexists.go' is not included in the project, ignoring coverage"; assertThat(logTester.logs(LoggerLevel.WARN)).contains(ignoredFileLog); }