coverage.sh 1.5 KB
Newer Older
Z
zhenxiang.li 已提交
1 2
#!/bin/bash

3 4
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/milvus/lib

Z
zhenxiang.li 已提交
5 6 7 8 9 10 11 12 13 14
LCOV_CMD="lcov"
LCOV_GEN_CMD="genhtml"

FILE_INFO_BASE="base.info"
FILE_INFO_MILVUS="server.info"
FILE_INFO_OUTPUT="output.info"
FILE_INFO_OUTPUT_NEW="output_new.info"
DIR_LCOV_OUTPUT="lcov_out"

DIR_GCNO="cmake_build"
S
starlord 已提交
15
DIR_UNITTEST="milvus/unittest"
S
starlord 已提交
16 17

# delete old code coverage info files
S
starlord 已提交
18 19 20 21
rm -f FILE_INFO_BASE
rm -f FILE_INFO_MILVUS
rm -f FILE_INFO_OUTPUT
rm -f FILE_INFO_OUTPUT_NEW
S
starlord 已提交
22 23
rm -rf lcov_out
rm -f FILE_INFO_BASE FILE_INFO_MILVUS FILE_INFO_OUTPUT FILE_INFO_OUTPUT_NEW
Z
update  
zhiru 已提交
24

Z
update  
zhiru 已提交
25
MYSQL_DB_NAME=milvus_`date +%s%N`
Z
update  
zhiru 已提交
26

Z
zhenxiang.li 已提交
27 28 29 30 31 32 33 34
# get baseline
${LCOV_CMD} -c -i -d ${DIR_GCNO} -o "${FILE_INFO_BASE}"
if [ $? -ne 0 ]; then
    echo "gen baseline coverage run failed"
    exit -1
fi

for test in `ls ${DIR_UNITTEST}`; do
Z
update  
zhiru 已提交
35
    echo $test
Z
update  
zhiru 已提交
36
    # run unittest
C
Cai Yudong 已提交
37
    ./${DIR_UNITTEST}/${test}
Z
update  
zhiru 已提交
38 39
    if [ $? -ne 0 ]; then
        echo ${DIR_UNITTEST}/${test} "run failed"
Z
zhenwu 已提交
40
        exit -1
Z
update  
zhiru 已提交
41
    fi
Z
zhenxiang.li 已提交
42 43
done

Z
update  
zhiru 已提交
44 45
mysql_exc "DROP DATABASE IF EXISTS ${MYSQL_DB_NAME};"

S
starlord 已提交
46
# gen code coverage
47
${LCOV_CMD} -d ${DIR_GCNO} -o "${FILE_INFO_MILVUS}" -c
Z
zhenxiang.li 已提交
48 49 50 51 52 53
# merge coverage
${LCOV_CMD} -a ${FILE_INFO_BASE} -a ${FILE_INFO_MILVUS} -o "${FILE_INFO_OUTPUT}"

# remove third party from tracefiles
${LCOV_CMD} -r "${FILE_INFO_OUTPUT}" -o "${FILE_INFO_OUTPUT_NEW}" \
    "/usr/*" \
C
Cai Yudong 已提交
54
    "*/cmake_build/*" \
Z
zhenwu 已提交
55 56
    "*/src/index/thirdparty*" \
    "*/src/grpc*" \
W
wxyu 已提交
57
    "*/thirdparty/*"
Z
zhenxiang.li 已提交
58

Z
zhenwu 已提交
59 60 61 62
if [ $? -ne 0 ]; then
    echo "generate ${FILE_INFO_OUTPUT_NEW} failed"
    exit -2
fi
Z
zhenxiang.li 已提交
63
# gen html report
S
starlord 已提交
64
${LCOV_GEN_CMD} "${FILE_INFO_OUTPUT_NEW}" --output-directory ${DIR_LCOV_OUTPUT}/