diff options
author | Nick Mathewson <nickm@torproject.org> | 2018-05-14 18:04:10 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2018-05-14 18:04:10 -0400 |
commit | db94d7fed246e617fe953751a8f506f9b57c2fda (patch) | |
tree | fc65da46fdff17b98d0779e89968efc95ba94ca1 | |
parent | aab626405c312a33d521c9ca3729552fd9ccca2e (diff) | |
download | tor-db94d7fed246e617fe953751a8f506f9b57c2fda.tar.gz tor-db94d7fed246e617fe953751a8f506f9b57c2fda.zip |
Update cov-diff to handle new gcov, and remove timestamps
The new gcov sometimes emits *s if there is a line containing
multiple basic blocks, and some are not executed. (The gcov
documentation says something weird about this point, so I'm trying
to interpret it into the compilerese that I'm familiar with.)
That's bug 26101.
Also, when we're looking for unique variations in our coverage, we
would like cov-diff to suppress timestamps on the diffs. That's bug
26102.
Both of these are bugfixes on 0.2.5.1-alpha when the cov-diff script
was introduced.
My apologies for the perl.
-rw-r--r-- | changes/bug26101_26102 | 5 | ||||
-rwxr-xr-x | scripts/test/cov-diff | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/changes/bug26101_26102 b/changes/bug26101_26102 new file mode 100644 index 0000000000..bc3bc84b2c --- /dev/null +++ b/changes/bug26101_26102 @@ -0,0 +1,5 @@ + o Minor bugfixes (test coverage tools): + - Update our "cov-diff" script to handle output from the latest + version of gcov, and to remove extraneous timestamp information + from its output. Fixes bugs 26101 and 26102; bugfix on + 0.2.5.1-alpha.
\ No newline at end of file diff --git a/scripts/test/cov-diff b/scripts/test/cov-diff index ed8874d2d3..6179dff63e 100755 --- a/scripts/test/cov-diff +++ b/scripts/test/cov-diff @@ -10,12 +10,12 @@ DIRB="$2" for B in $DIRB/*; do A=$DIRA/`basename $B` if [ -f $A ]; then - perl -pe 's/^\s*\!*\d+:/ 1:/; s/^([^:]+:)[\d\s]+:/$1/; s/^ *-:(Runs|Programs):.*//;' "$A" > "$A.tmp" + perl -pe 's/^\s*\!*\d+(\*?):/ 1$1:/; s/^([^:]+:)[\d\s]+:/$1/; s/^ *-:(Runs|Programs):.*//;' "$A" > "$A.tmp" else cat /dev/null > "$A.tmp" fi - perl -pe 's/^\s*\!*\d+:/ 1:/; s/^([^:]+:)[\d\s]+:/$1/; s/^ *-:(Runs|Programs):.*//;' "$B" > "$B.tmp" - diff -u "$A.tmp" "$B.tmp" + perl -pe 's/^\s*\!*\d+(\*?):/ 1$1:/; s/^([^:]+:)[\d\s]+:/$1/; s/^ *-:(Runs|Programs):.*//;' "$B" > "$B.tmp" + diff -u "$A.tmp" "$B.tmp" |perl -pe 's/^((?:\+\+\+|---)(?:.*tmp))\s+.*/$1/;' rm "$A.tmp" "$B.tmp" done |