diff options
author | Irina Iancu <elenairina@google.com> | 2018-08-01 09:29:01 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-08-01 09:30:29 -0700 |
commit | f8afad6f22786ba646cbd10a73e5738884cc84b8 (patch) | |
tree | 5c651454fa4c9fd49949bcbdaad3f6f39fb04216 /tools/test/LcovMerger/java/com/google/devtools/lcovmerger/BranchCoverage.java | |
parent | f330439fb970cfa17c70fc59c1458bb1c31c9522 (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.java | 23 |
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; + } } |