tor/scripts/test/cov-exclude

35 lines
745 B
Perl
Executable File

#!/usr/bin/perl -p -i
use warnings;
use strict;
our $excluding;
# This script is meant to post-process a .gcov file for an input source
# that was annotated with LCOV_EXCL_START, LCOV_EXCL_STOP, and LCOV_EXCL_LINE
# entries. It doesn't understand the LCOV_EXCL_BR* variations.
#
# It replaces unreached reached lines with x:, and reached excluded lines
# with !!!num:.
BEGIN { our $excluding = 0; }
if (m/LCOV_EXCL_START/) {
$excluding = 1;
}
if ($excluding and m/LCOV_EXCL_STOP/) {
$excluding = 0;
}
my $exclude_this = (m/LCOV_EXCL_LINE/);
if ($excluding or $exclude_this) {
s{^\s*\#\#+:}{ x:};
s{^ (\s*)(\d+):}{$1!!!$2:};
}
if (eof and $excluding) {
warn "Runaway LCOV_EXCL_START in $ARGV";
$excluding = 0;
}