summaryrefslogtreecommitdiff
path: root/fuzz/view-coverage.sh
diff options
context:
space:
mode:
Diffstat (limited to 'fuzz/view-coverage.sh')
-rwxr-xr-xfuzz/view-coverage.sh28
1 files changed, 28 insertions, 0 deletions
diff --git a/fuzz/view-coverage.sh b/fuzz/view-coverage.sh
new file mode 100755
index 0000000000..9461ba6468
--- /dev/null
+++ b/fuzz/view-coverage.sh
@@ -0,0 +1,28 @@
+#!/bin/bash -eu
+#
+# (C)2017 Tim Ruehsen tim.ruehsen@gmx.de
+#
+# View the coverage report for one or more fuzzers.
+
+# 1. execute 'make coverage' in the fuzz/ directory
+# 2. execute './view-coverage.sh <fuzz target(s)>
+
+# Example with single fuzzer:
+# ./view-coverage.sh gnutls_client_fuzzer
+
+# Example with two fuzzers:
+# ./view-coverage.sh gnutls_base64_decoder_fuzzer gnutls_base64_encoder_fuzzer
+
+if test -z "$1"; then
+ echo "Usage: $0 <fuzz target(s)>"
+ echo "Example: $0 gnutls_client_fuzzer"
+ exit 1
+fi
+
+LCOV_INFO=coverage.info
+lcov --zerocounters --directory ../lib/
+lcov --capture --initial --directory ../lib/.libs --directory . --output-file $LCOV_INFO
+make check TESTS="$*" CFLAGS="$(CFLAGS) --coverage" LDFLAGS="$(LDFLAGS) --coverage"
+lcov --capture --directory ../lib/.libs --output-file $LCOV_INFO
+genhtml --prefix . --ignore-errors source $LCOV_INFO --legend --title "$*" --output-directory=lcov
+xdg-open lcov/index.html