summaryrefslogtreecommitdiff
path: root/scripts/coverage
blob: 1c4a279637a63e9339a553dd3040d3386126ed2e (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

# 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
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

cleanup
exit 0