From 12c2d6a8d02e6d9836e3b10680ab545a05f13d4b Mon Sep 17 00:00:00 2001 From: mcarton Date: Sun, 2 Oct 2016 15:12:12 +0200 Subject: [PATCH] Add a script to run `kcov` --- util/cov.sh | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 util/cov.sh diff --git a/util/cov.sh b/util/cov.sh new file mode 100755 index 00000000000..76f4dab71f7 --- /dev/null +++ b/util/cov.sh @@ -0,0 +1,47 @@ +#!/usr/bin/bash + +# This run `kcov` on Clippy. The coverage report will be at +# `./target/cov/index.html`. +# `compile-test` is special. `kcov` does not work directly on it so these files +# are compiled manually. + +tests=( + camel_case + cc_seme + consts + dogfood + issue_825 + matches + trim_multiline + used_underscore_binding_macro + versioncheck +) +tmpdir=$(mktemp -d) + +cargo test --no-run --verbose + +for t in "${tests[@]}"; do + kcov \ + --verify \ + --include-path="$(pwd)/src","$(pwd)/clippy_lints/src" \ + "$tmpdir/$t" \ + cargo test --test "$t" +done + +for t in ./tests/compile-fail/*.rs; do + kcov \ + --verify \ + --include-path="$(pwd)/src","$(pwd)/clippy_lints/src" \ + "$tmpdir/compile-fail-$(basename $t)" \ + cargo run -- -L target/debug -L target/debug/deps -Z no-trans "$t" +done + +for t in ./tests/run-pass/*.rs; do + kcov \ + --verify \ + --include-path="$(pwd)/src","$(pwd)/clippy_lints/src" \ + "$tmpdir/run-pass-$(basename $t)" \ + cargo run -- -L target/debug -L target/debug/deps -Z no-trans "$t" +done + +kcov --verify --merge target/cov "$tmpdir"/*