Newer
Older
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
38
39
40
41
#!/bin/bash
SRC="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/.."
TMP=$(mktemp -p /tmp dgraph-coverage-XXXXX.txt)
BUILD=$1
if [ -z "$1" ]; then
BUILD=$SRC/build
fi
OUT=$2
if [ -z "$OUT" ]; then
OUT=$SRC/coverage.out
fi
rm -f $OUT
ROCKSDBDIR=$BUILD/rocksdb-4.2
set -e
pushd $SRC &> /dev/null
# build flags needed for rocksdb
export CGO_CFLAGS="-I${ROCKSDBDIR}/include"
export CGO_LDFLAGS="-L${ROCKSDBDIR}"
export LD_LIBRARY_PATH="${ROCKSDBDIR}:${LD_LIBRARY_PATH}"
# create coverage output
echo 'mode: atomic' > $OUT
for PKG in $(go list ./...|grep -v '/vendor/'); do
echo "TESTING: $PKG"
go test -v -covermode=atomic -coverprofile=$TMP $PKG
tail -n +2 $TMP >> $OUT
done
# open in browser if not in a build environment
if [ ! -z "$DISPLAY" ]; then
go tool cover -html=$OUT
fi
popd &> /dev/null