diff --git a/.circleci/config.yml b/.circleci/config.yml index 907ce546a..21c150eec 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -9,6 +9,8 @@ jobs: test: docker: - image: ossrs/srs:dev + fixes: + - "src/::trunk/src" steps: - checkout - run: cd trunk && ./configure --gcov && make && ./objs/srs_utest && bash auto/coverage.sh diff --git a/trunk/auto/coverage.sh b/trunk/auto/coverage.sh index 79eef9dfe..7ec4748e5 100644 --- a/trunk/auto/coverage.sh +++ b/trunk/auto/coverage.sh @@ -1,25 +1,25 @@ #!/bin/bash # In .circleci/config.yml, generate *.gcno with -# ./configure --gcov --without-research --without-librtmp +# ./configure --gcov --without-research --without-librtmp && make # and generate *.gcda by # ./objs/srs_utest +# Workdir is objs/cover. +mkdir -p objs/cover && cd objs/cover +ret=$?; if [[ $ret -ne 0 ]]; then echo "Enter workdir failed, ret=$ret"; exit $ret; fi + # Collect all *.gcno and *.gcda to objs/cover. -(mkdir -p objs/cover && cd objs/cover && -cp -R ../../src . && -for file in `find ../src -name "*.gcno"`; do cp $file .; done && -for file in `find ../src -name "*.gcda"`; do cp $file .; done) +(rm -rf src && cp -R ../../src . && cp -R ../src .) ret=$?; if [[ $ret -ne 0 ]]; then echo "Collect *.gcno and *.gcda failed, ret=$ret"; exit $ret; fi -# Generate *.gcov to objs/cover +# Generate *.gcov for coverage. for file in `find src -name "*.cpp"`; do - (mkdir -p objs/cover && cd objs/cover && gcov ../../$file -o .) + gcov $file -o `dirname $file` ret=$?; if [[ $ret -ne 0 ]]; then echo "Collect $file failed, ret=$ret"; exit $ret; fi done # Upload report with *.gcov export CODECOV_TOKEN="493bba46-c468-4e73-8b45-8cdd8ff62d96" && -mkdir -p objs/cover && cd objs/cover && bash <(curl -s https://codecov.io/bash) exit 0