forked from rust-lang/rust-clippy
-
Notifications
You must be signed in to change notification settings - Fork 0
/
cov.sh
executable file
·37 lines (30 loc) · 1.01 KB
/
cov.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/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=$(find tests/ -maxdepth 1 -name '*.rs' ! -name compile-test.rs -exec basename {} .rs \;)
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"/*