coverage.sh 2.9 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"
G
groot 已提交
15
DIR_UNITTEST="milvus/unittest"
G
groot 已提交
16 17 18 19

# delete old code coverage info files
rm -rf lcov_out
rm -f FILE_INFO_BASE FILE_INFO_MILVUS FILE_INFO_OUTPUT FILE_INFO_OUTPUT_NEW
Z
update  
zhiru 已提交
20
 
Z
update  
zhiru 已提交
21 22 23 24 25
MYSQL_USER_NAME=root
MYSQL_PASSWORD=Fantast1c
MYSQL_HOST='192.168.1.194'
MYSQL_PORT='3306'

Z
update  
zhiru 已提交
26
MYSQL_DB_NAME=milvus_`date +%s%N`
Z
update  
zhiru 已提交
27 28 29 30 31 32 33 34 35 36 37 38 39

function mysql_exc()
{
    cmd=$1
    mysql -h${MYSQL_HOST} -u${MYSQL_USER_NAME} -p${MYSQL_PASSWORD} -e "${cmd}"
    if [ $? -ne 0 ]; then
        echo "mysql $cmd run failed"
    fi
}

mysql_exc "CREATE DATABASE IF NOT EXISTS ${MYSQL_DB_NAME};"
mysql_exc "GRANT ALL PRIVILEGES ON ${MYSQL_DB_NAME}.* TO '${MYSQL_USER_NAME}'@'%';"
mysql_exc "FLUSH PRIVILEGES;"
Z
update  
zhiru 已提交
40
mysql_exc "USE ${MYSQL_DB_NAME};"
Z
zhenxiang.li 已提交
41

Z
update  
zhiru 已提交
42 43 44 45 46
MYSQL_USER_NAME=root
MYSQL_PASSWORD=Fantast1c
MYSQL_HOST='192.168.1.194'
MYSQL_PORT='3306'

Z
update  
zhiru 已提交
47
MYSQL_DB_NAME=milvus_`date +%s%N`
Z
update  
zhiru 已提交
48 49 50 51 52 53 54 55 56 57 58 59 60

function mysql_exc()
{
    cmd=$1
    mysql -h${MYSQL_HOST} -u${MYSQL_USER_NAME} -p${MYSQL_PASSWORD} -e "${cmd}"
    if [ $? -ne 0 ]; then
        echo "mysql $cmd run failed"
    fi
}

mysql_exc "CREATE DATABASE IF NOT EXISTS ${MYSQL_DB_NAME};"
mysql_exc "GRANT ALL PRIVILEGES ON ${MYSQL_DB_NAME}.* TO '${MYSQL_USER_NAME}'@'%';"
mysql_exc "FLUSH PRIVILEGES;"
Z
update  
zhiru 已提交
61
mysql_exc "USE ${MYSQL_DB_NAME};"
Z
update  
zhiru 已提交
62

Z
zhenxiang.li 已提交
63 64 65 66 67 68 69 70
# 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 已提交
71
    echo $test
Z
update  
zhiru 已提交
72 73 74
    case ${test} in
        db_test)
            # set run args for db_test
Z
update  
zhiru 已提交
75
            args="mysql://${MYSQL_USER_NAME}:${MYSQL_PASSWORD}@${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DB_NAME}"
Z
update  
zhiru 已提交
76
            ;;
Z
zhenxiang.li 已提交
77
        *_test)
Z
update  
zhiru 已提交
78
            args=""
Z
update  
zhiru 已提交
79
            ;;
Z
zhenxiang.li 已提交
80
    esac
Z
update  
zhiru 已提交
81 82 83
    # run unittest
    ./${DIR_UNITTEST}/${test} "${args}"
    if [ $? -ne 0 ]; then
G
groot 已提交
84
        echo ${args}
Z
update  
zhiru 已提交
85 86
        echo ${DIR_UNITTEST}/${test} "run failed"
    fi
Z
zhenxiang.li 已提交
87 88
done

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

G
groot 已提交
91
# gen code coverage
92
${LCOV_CMD} -d ${DIR_GCNO} -o "${FILE_INFO_MILVUS}" -c
Z
zhenxiang.li 已提交
93 94 95 96 97 98 99 100
# 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/*" \
    "*/boost/*" \
    "*/cmake_build/*_ep-prefix/*" \
Z
update  
zhiru 已提交
101
    "src/core/cmake_build*" \
102
    "src/core/thirdparty*" \
Y
Yu Kun 已提交
103
    "src/grpc*"\
104
    "src/metrics/MetricBase.h"\
Y
Yu Kun 已提交
105 106 107
    "src/server/Server.cpp"\
    "src/server/DBWrapper.cpp"\
    "src/server/grpc_impl/GrpcMilvusServer.cpp"\
G
groot 已提交
108 109
    "src/utils/easylogging++.h"\
    "src/utils/easylogging++.cc"\
Z
zhenxiang.li 已提交
110 111

# gen html report
Z
update  
zhiru 已提交
112
${LCOV_GEN_CMD} "${FILE_INFO_OUTPUT_NEW}" --output-directory ${DIR_LCOV_OUTPUT}/