summaryrefslogtreecommitdiff
path: root/scripts/coverage
blob: 6afc0697ad16236590be12c375d6063514c47bcb (plain) (blame)
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
#!/bin/sh
set -eu

# build covsrv binary
make -C deps/covsrv

# not super fantastic but most likely good enough
export COVSRV_SOCKET=$(mktemp -u)

# server program should always be killed at the end of a test run
cleanup() {
	./deps/covsrv/build/covsrv quit
}

# kill server program even if user interrupted us or something else exceptional
# happened
trap interrupt INT HUP TERM QUIT EXIT
interrupt () {
	cleanup
	exit 1
}

# start coverage server, should create a unix socket at COVSRV_SOCKET that test
# programs can connect to
./deps/covsrv/build/covsrv &

# run tests, pass any flags like -j to make
make COVERAGEFLAGS="--coverage -DCOVERAGE=1" check "$@"

mkdir -p coverage
lcov --capture --directory . --out coverage/covsrv.info
genhtml coverage/covsrv.info --out coverage

exit 0