aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BranchCoverage.java
diff options
context:
space:
mode:
authorGravatar Irina Iancu <elenairina@google.com>2018-08-01 09:29:01 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-01 09:30:29 -0700
commitf8afad6f22786ba646cbd10a73e5738884cc84b8 (patch)
tree5c651454fa4c9fd49949bcbdaad3f6f39fb04216 /tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BranchCoverage.java
parentf330439fb970cfa17c70fc59c1458bb1c31c9522 (diff)
Add a parser for gcov intermediate file format.
This change comes as a preparation for using gcov for Bazel C++ coverage instead of lcov. See documentation of gcov intermediate format at https://gcc.gnu.org/onlinedocs/gcc/Invoking-Gcov.html#Invoking-Gcov under --intermediate-format. Change-Id: I6cd2df8b3a6611b187a2b0c161b14388413bc670 PiperOrigin-RevId: 206940660
Diffstat (limited to 'tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BranchCoverage.java')
-rw-r--r--tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BranchCoverage.java23
1 files changed, 12 insertions, 11 deletions
diff --git a/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BranchCoverage.java b/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BranchCoverage.java
index 0fbe78311a..bc12dc6098 100644
--- a/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BranchCoverage.java
+++ b/tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BranchCoverage.java
@@ -22,15 +22,14 @@ import com.google.auto.value.AutoValue;
@AutoValue
abstract class BranchCoverage {
- static BranchCoverage create(
- int lineNumber,
- String blockNumber,
- String branchNumber,
- boolean wasExecuted,
- int nrOfExecutions) {
- assert (wasExecuted && nrOfExecutions > 0) || (!wasExecuted && nrOfExecutions == 0);
+ static BranchCoverage create(int lineNumber, int nrOfExecutions) {
return new AutoValue_BranchCoverage(
- lineNumber, blockNumber, branchNumber, wasExecuted, nrOfExecutions);
+ lineNumber, /*blockNumber=*/ "", /*branchNumber=*/ "", nrOfExecutions);
+ }
+
+ static BranchCoverage createWithBlockAndBranch(
+ int lineNumber, String blockNumber, String branchNumber, int nrOfExecutions) {
+ return new AutoValue_BranchCoverage(lineNumber, blockNumber, branchNumber, nrOfExecutions);
}
/**
@@ -44,11 +43,10 @@ abstract class BranchCoverage {
assert first.blockNumber().equals(second.blockNumber());
assert first.branchNumber().equals(second.branchNumber());
- return create(
+ return createWithBlockAndBranch(
first.lineNumber(),
first.blockNumber(),
first.branchNumber(),
- first.wasExecuted() || second.wasExecuted(),
first.nrOfExecutions() + second.nrOfExecutions());
}
@@ -56,6 +54,9 @@ abstract class BranchCoverage {
// The two numbers below should be -1 for non-gcc emitted coverage (e.g. Java).
abstract String blockNumber(); // internal gcc internal ID for the branch
abstract String branchNumber(); // internal gcc internal ID for the branch
- abstract boolean wasExecuted();
abstract int nrOfExecutions();
+
+ boolean wasExecuted() {
+ return nrOfExecutions() > 0;
+ }
}