diff options
Diffstat (limited to 'tools/test/LcovMerger/java/com/google/devtools/lcovmerger/Coverage.java')
-rw-r--r-- | tools/test/LcovMerger/java/com/google/devtools/lcovmerger/Coverage.java | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/Coverage.java b/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/Coverage.java index 75eaa420cc..42e5be5ae1 100644 --- a/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/Coverage.java +++ b/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/Coverage.java @@ -15,6 +15,7 @@ package com.google.devtools.lcovmerger; import java.util.Collection; +import java.util.List; import java.util.TreeMap; class Coverage { @@ -45,6 +46,32 @@ class Coverage { return merged; } + static Coverage filterOutMatchingSources(Coverage coverage, List<String> regexes) + throws IllegalArgumentException { + if (coverage == null || regexes == null) { + throw new IllegalArgumentException("Coverage and regex should not be null."); + } + if (regexes.isEmpty()) { + return coverage; + } + Coverage filteredCoverage = new Coverage(); + for (SourceFileCoverage source : coverage.getAllSourceFiles()) { + if (!matchesAnyRegex(source.sourceFileName(), regexes)) { + filteredCoverage.add(source); + } + } + return filteredCoverage; + } + + private static boolean matchesAnyRegex(String input, List<String> regexes) { + for (String regex : regexes) { + if (input.matches(regex)) { + return true; + } + } + return false; + } + boolean isEmpty() { return sourceFiles.isEmpty(); } |