complete-run: add coverage report generation

When `complete-run.pl` is given `--coverage-testing`, try to generate an
html coverage testing report for the run. This requires i3 to be
compiled with coverage testing support.
This commit is contained in:
Tony Crisci 2015-04-01 15:10:27 -04:00
parent ceb0d5c963
commit d2d72acac4
1 changed files with 23 additions and 1 deletions

View File

@ -86,6 +86,16 @@ foreach my $binary (@binaries) {
die "$binary is not an executable" unless -x $binary; die "$binary is not an executable" unless -x $binary;
} }
if ($options{coverage}) {
qx(command -v lcov &> /dev/null);
die "Cannot find lcov needed for coverage testing." if $?;
qx(command -v genhtml &> /dev/null);
die "Cannot find genhtml needed for coverage testing." if $?;
# clean out the counters that may be left over from previous tests.
qx(lcov -d ../ --zerocounters &> /dev/null);
}
qx(Xephyr -help 2>&1); qx(Xephyr -help 2>&1);
die "Xephyr was not found in your path. Please install Xephyr (xserver-xephyr on Debian)." if $?; die "Xephyr was not found in your path. Please install Xephyr (xserver-xephyr on Debian)." if $?;
@ -227,6 +237,17 @@ if ($numtests == 1) {
END { cleanup() } END { cleanup() }
if ($options{coverage}) {
print("\nGenerating test coverage report...\n");
qx(lcov -d ../ -b ../ --capture -o latest/i3-coverage.info);
qx(genhtml -o latest/i3-coverage latest/i3-coverage.info);
if ($?) {
print("Could not generate test coverage html. Did you compile i3 with test coverage support?\n");
} else {
print("Test coverage report generated in latest/i3-coverage\n");
}
}
exit ($aggregator->failed > 0); exit ($aggregator->failed > 0);
# #
@ -391,7 +412,8 @@ available in C<latest/xtrace-for-$test.log>.
=item B<--coverage-testing> =item B<--coverage-testing>
Exits i3 cleanly (instead of kill -9) to make coverage testing work properly. Generates a test coverage report at C<latest/i3-coverage>. Exits i3 cleanly
during tests (instead of kill -9) to make coverage testing work properly.
=item B<--parallel> =item B<--parallel>