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
LCOV_CMD="lcov"
LCOV_GEN_CMD="genhtml"

8 9 10 11 12
BASE_INFO="milvus_base.info"
TEST_INFO="milvus_test.info"
TOTAL_INFO="milvus_total.info"
OUTPUT_INFO="milvus_output.info"
LCOV_OUTPUT_DIR="lcov_out"
Z
zhenxiang.li 已提交
13

14 15
GCNO_DIR="cmake_build"
UNITTEST_DIR="milvus/unittest"
S
starlord 已提交
16 17

# delete old code coverage info files
18 19
rm -rf ${LCOV_OUTPUT_DIR}
rm -f ${BASE_INFO} ${TEST_INFO} ${TOTAL_INFO} ${OUTPUT_INFO}
Z
update  
zhiru 已提交
20

Z
zhenxiang.li 已提交
21
# get baseline
22
${LCOV_CMD} -c -i -d ${GCNO_DIR} -o "${BASE_INFO}"
Z
zhenxiang.li 已提交
23
if [ $? -ne 0 ]; then
24 25
    echo "generate ${BASE_INFO} failed"
    exit 1
Z
zhenxiang.li 已提交
26 27
fi

28 29 30
# run unittest
for test in `ls ${UNITTEST_DIR}`; do
    echo $test "running..."
Z
update  
zhiru 已提交
31
    # run unittest
32
    ./${UNITTEST_DIR}/${test}
Z
update  
zhiru 已提交
33
    if [ $? -ne 0 ]; then
34 35
        echo ${UNITTEST_DIR}/${test} "run failed"
        exit 1
Z
update  
zhiru 已提交
36
    fi
Z
zhenxiang.li 已提交
37 38
done

S
starlord 已提交
39
# gen code coverage
40 41 42 43 44 45
${LCOV_CMD} -c -d ${GCNO_DIR} -o "${TEST_INFO}"
if [ $? -ne 0 ]; then
    echo "generate ${TEST_INFO} failed"
    exit 1
fi

Z
zhenxiang.li 已提交
46
# merge coverage
47 48 49 50 51
${LCOV_CMD} -a ${BASE_INFO} -a ${TEST_INFO} -o "${TOTAL_INFO}"
if [ $? -ne 0 ]; then
    echo "generate ${TOTAL_INFO} failed"
    exit 1
fi
Z
zhenxiang.li 已提交
52 53

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

Z
zhenwu 已提交
61
if [ $? -ne 0 ]; then
62 63
    echo "generate ${OUTPUT_INFO} failed"
    exit 1
Z
zhenwu 已提交
64
fi
65

Z
zhenxiang.li 已提交
66
# gen html report
67
${LCOV_GEN_CMD} "${OUTPUT_INFO}" --output-directory ${LCOV_OUTPUT_DIR}