From 448ffa1fd28d6214ed196be97263764cb9a7cf74 Mon Sep 17 00:00:00 2001 From: Gautam Korlam Date: Mon, 2 May 2016 14:31:12 -0500 Subject: [PATCH] Use filenames to compute set of files to publish line coverage for --- .../phabricator/BuildResultProcessor.java | 17 ++++++++++++++++- .../phabricator/BuildResultProcessorTest.java | 8 ++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/uber/jenkins/phabricator/BuildResultProcessor.java b/src/main/java/com/uber/jenkins/phabricator/BuildResultProcessor.java index 81b68256..0af6a955 100644 --- a/src/main/java/com/uber/jenkins/phabricator/BuildResultProcessor.java +++ b/src/main/java/com/uber/jenkins/phabricator/BuildResultProcessor.java @@ -35,11 +35,14 @@ import com.uber.jenkins.phabricator.utils.CommonUtils; import com.uber.jenkins.phabricator.utils.Logger; +import org.apache.commons.io.FilenameUtils; + import hudson.FilePath; import hudson.model.AbstractBuild; import hudson.model.Result; import java.io.IOException; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -240,7 +243,19 @@ public void processCoverage(CoverageProvider coverageProvider, Set inclu return; } - lineCoverage.keySet().retainAll(include); + Set includeFileNames = new HashSet(); + for (String file : include) { + includeFileNames.add(FilenameUtils.getBaseName(file)); + } + + Set includedLineCoverage = new HashSet(); + for (String file : lineCoverage.keySet()) { + if (includeFileNames.contains(FilenameUtils.getBaseName(file))) { + includedLineCoverage.add(file); + } + } + + lineCoverage.keySet().retainAll(includedLineCoverage); harbormasterCoverage = new CoverageConverter().convert(lineCoverage); } diff --git a/src/test/java/com/uber/jenkins/phabricator/BuildResultProcessorTest.java b/src/test/java/com/uber/jenkins/phabricator/BuildResultProcessorTest.java index 64651c74..aaf6376b 100644 --- a/src/test/java/com/uber/jenkins/phabricator/BuildResultProcessorTest.java +++ b/src/test/java/com/uber/jenkins/phabricator/BuildResultProcessorTest.java @@ -72,6 +72,14 @@ public void testProcessCoverageWithNoIncludes() throws Exception { assertNull(processor.getCoverage().get("file.go")); } + @Test + public void testProcessCoverageWithNonMatchingPathIncludes() throws Exception { + CoverageProvider provider = new FakeCoverageProvider(TestUtils.getDefaultLineCoverage()); + processor.processCoverage(provider, Sets.newHashSet("somePath/file.go")); + assertNotNull(processor.getCoverage()); + assertEquals("NCUC", processor.getCoverage().get("file.go")); + } + @Test public void testProcessEmptyCoverage() { CoverageProvider provider = new FakeCoverageProvider(null);