diff options
Diffstat (limited to 'tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/CoverageTest.java')
-rw-r--r-- | tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/CoverageTest.java | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/CoverageTest.java b/tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/CoverageTest.java index 724a2095a5..56d2e6b92b 100644 --- a/tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/CoverageTest.java +++ b/tools/test/LcovMerger/javatests/com/google/devtools/lcovmerger/CoverageTest.java @@ -22,7 +22,9 @@ import static com.google.devtools.lcovmerger.LcovMergerTestUtils.createLinesExec import static com.google.devtools.lcovmerger.LcovMergerTestUtils.createSourceFile1; import static com.google.devtools.lcovmerger.LcovMergerTestUtils.createSourceFile2; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Iterables; +import java.util.Collection; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -78,4 +80,92 @@ public class CoverageTest { assertTracefile1(Iterables.get(coverage.getAllSourceFiles(), 0)); assertTracefile1(Iterables.get(coverage.getAllSourceFiles(), 1)); } + + @Test + public void testFilterSources() { + Coverage coverage = new Coverage(); + + coverage.add(new SourceFileCoverage("/filterOut/package/file1.c")); + coverage.add(new SourceFileCoverage("/filterOut/package/file2.c")); + SourceFileCoverage validSource1 = new SourceFileCoverage("/valid/package/file3.c"); + coverage.add(validSource1); + SourceFileCoverage validSource2 = new SourceFileCoverage("/valid/package/file4.c"); + coverage.add(validSource2); + Collection<SourceFileCoverage> filteredSources = + Coverage.filterOutMatchingSources(coverage, ImmutableList.of("/filterOut/package/.+")) + .getAllSourceFiles(); + + assertThat(filteredSources).containsExactly(validSource1, validSource2); + } + + @Test + public void testFilterSourcesEmptyResult() { + Coverage coverage = new Coverage(); + + coverage.add(new SourceFileCoverage("/filterOut/package/file1.c")); + coverage.add(new SourceFileCoverage("/filterOut/package/file2.c")); + Collection<SourceFileCoverage> filteredSources = + Coverage.filterOutMatchingSources(coverage, ImmutableList.of("/filterOut/package/.+")) + .getAllSourceFiles(); + + assertThat(filteredSources).isEmpty(); + } + + @Test + public void testFilterSourcesNoMatches() { + Coverage coverage = new Coverage(); + + SourceFileCoverage validSource1 = new SourceFileCoverage("/valid/package/file3.c"); + coverage.add(validSource1); + SourceFileCoverage validSource2 = new SourceFileCoverage("/valid/package/file4.c"); + coverage.add(validSource2); + Collection<SourceFileCoverage> filteredSources = + Coverage.filterOutMatchingSources(coverage, ImmutableList.of("/something/else/.+")) + .getAllSourceFiles(); + + assertThat(filteredSources).containsExactly(validSource1, validSource2); + } + + @Test + public void testFilterSourcesMultipleRegex() { + Coverage coverage = new Coverage(); + + coverage.add(new SourceFileCoverage("/filterOut/package/file1.c")); + coverage.add(new SourceFileCoverage("/filterOut/package/file2.c")); + coverage.add(new SourceFileCoverage("/repo/external/p.c")); + SourceFileCoverage validSource1 = new SourceFileCoverage("/valid/package/file3.c"); + coverage.add(validSource1); + SourceFileCoverage validSource2 = new SourceFileCoverage("/valid/package/file4.c"); + coverage.add(validSource2); + Collection<SourceFileCoverage> filteredSources = + Coverage.filterOutMatchingSources( + coverage, ImmutableList.of("/filterOut/package/.+", ".+external.+")) + .getAllSourceFiles(); + + assertThat(filteredSources).containsExactly(validSource1, validSource2); + } + + @Test + public void testFilterSourcesNoFilter() { + Coverage coverage = new Coverage(); + + SourceFileCoverage validSource1 = new SourceFileCoverage("/valid/package/file3.c"); + coverage.add(validSource1); + SourceFileCoverage validSource2 = new SourceFileCoverage("/valid/package/file4.c"); + coverage.add(validSource2); + Collection<SourceFileCoverage> filteredSources = + Coverage.filterOutMatchingSources(coverage, ImmutableList.of()).getAllSourceFiles(); + + assertThat(filteredSources).containsExactly(validSource1, validSource2); + } + + @Test(expected = IllegalArgumentException.class) + public void testFilterSourcesNullCoverage() { + Coverage.filterOutMatchingSources(null, ImmutableList.of()); + } + + @Test(expected = IllegalArgumentException.class) + public void testFilterSourcesNullRegex() { + Coverage.filterOutMatchingSources(new Coverage(), null); + } } |