aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/Coverage.java
diff options
context:
space:
mode:
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.java27
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();
}