未验证 提交 84e0df6b 编写于 作者: S slguan 提交者: GitHub

Merge pull request #1621 from taosdata/add-test-coverage-support

Add test coverage support
# #
# Configuration # Configuration
# #
git: #
depth: 1 # Build Matrix
#
matrix:
- os: linux
language: c
language: c git:
- depth: 1
compiler: compiler: gcc
- clang env: DESC="linux/gcc build and test"
- gcc
os: addons:
- linux apt:
# - osx packages:
- build-essential
- cmake
- net-tools
- python-pip
- python-setuptools
- python3-pip
- python3-setuptools
before_install:
- sudo apt update -y -qq
- sudo apt install -y net-tools python-pip python-setuptools python3-pip python3-setuptools
before_script:
- cd ${TRAVIS_BUILD_DIR}
- mkdir debug
- cd debug
before_install: script:
- cmake ..
- make
after_success:
- |- - |-
case $TRAVIS_OS_NAME in case $TRAVIS_OS_NAME in
linux) linux)
sudo apt -y update cd ${TRAVIS_BUILD_DIR}/debug
sudo apt -y install python-pip python3-pip python-setuptools python3-setuptools sudo make install || exit $?
pip install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python2/
pip3 install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python3/
cd ${TRAVIS_BUILD_DIR}/tests
bash ./test-all.sh
if [ "$?" -ne "0" ]; then
exit $?
fi
;; ;;
esac esac
addons: - os: linux
language: c
compiler: gcc
env: COVERITY_SCAN=true
git:
- depth: 1
script:
- echo "this job is for coverity scan"
addons:
coverity_scan: coverity_scan:
# GitHub project metadata # GitHub project metadata
# ** specific to your project ** # ** specific to your project **
project: project:
name: TDengine name: sangshuduo/TDengine
version: 2.x version: 2.x
description: TDengine description: sangshuduo/TDengine
# Where email notification of build analysis results will be sent # Where email notification of build analysis results will be sent
notification_email: sdsang@taosdata.com notification_email: sangshuduo@gmail.com
# Commands to prepare for build_command # Commands to prepare for build_command
# ** likely specific to your build ** # ** likely specific to your build **
...@@ -49,79 +94,124 @@ addons: ...@@ -49,79 +94,124 @@ addons:
# https://scan.coverity.com/faq#frequency # https://scan.coverity.com/faq#frequency
branch_pattern: coverity_scan branch_pattern: coverity_scan
before_script: - os: linux
language: c
compiler: gcc
env: ENV_COVER=true
git:
- depth: 1
addons:
apt:
packages:
- build-essential
- cmake
- net-tools
- python-pip
- python-setuptools
- python3-pip
- python3-setuptools
- lcov
before_install:
- sudo apt update -y -qq
- sudo apt install -y net-tools python-pip python-setuptools python3-pip python3-setuptools lcov
before_script:
- cd ${TRAVIS_BUILD_DIR}
- mkdir debug - mkdir debug
- cd debug - cd debug
script: script:
- cmake .. - cmake -DCOVER=true ..
- cmake --build . || exit $? - make
after_success:
- |- - |-
case $TRAVIS_OS_NAME in case $TRAVIS_OS_NAME in
linux) linux)
# Color setting cd ${TRAVIS_BUILD_DIR}/debug
RED='\033[0;31m' sudo make install || exit $?
GREEN='\033[1;32m'
GREEN_DARK='\033[0;32m'
GREEN_UNDERLINE='\033[4;32m'
NC='\033[0m'
sudo make install pip install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python2/
pip3 install --user ${TRAVIS_BUILD_DIR}/src/connector/python/linux/python3/
cd ../tests/script cd ${TRAVIS_BUILD_DIR}/tests
sudo ./test.sh 2>&1 | grep 'success\|failed' | tee out.txt
total_success=`grep success out.txt | wc -l` bash ./test-all.sh
if [ "$total_success" -gt "0" ]; then if [ "$?" -ne "0" ]; then
total_success=`expr $total_success - 1` exit $?
echo -e "${GREEN} ### Total $total_success TSIM case(s) succeed! ### ${NC}"
fi fi
total_failed=`grep failed out.txt | wc -l` cd ${TRAVIS_BUILD_DIR}
if [ "$total_failed" -ne "0" ]; then lcov -d . --capture -o coverage.info
echo -e "${RED} ### Total $total_failed TSIM case(s) failed! ### ${NC}" lcov -l coverage.info || exit $?
exit $total_failed
fi
pip install --user ../../src/connector/python/linux/python2/ gem install coveralls-lcov
pip3 install --user ../../src/connector/python/linux/python3/
cd ../pytest # Color setting
sudo ./simpletest.sh 2>&1 | grep 'successfully executed\|failed' | tee pytest-out.txt RED='\033[0;31m'
total_py_success=`grep 'successfully executed' pytest-out.txt | wc -l` GREEN='\033[1;32m'
GREEN_DARK='\033[0;32m'
GREEN_UNDERLINE='\033[4;32m'
NC='\033[0m'
if [ "$total_py_success" -gt "0" ]; then coveralls-lcov coverage.info
echo -e "${GREEN} ### Total $total_py_success python case(s) succeed! ### ${NC}" if [ "$?" -eq "0" ]; then
echo -e "${GREEN} ## Uploaded to Coveralls.io! ## ${NC}"
else
echo -e "${RED} ## Coveralls.io not collect coverage report! ## ${NC} "
exit $?
fi fi
total_py_failed=`grep 'failed' pytest-out.txt | wc -l` bash <(curl -s https://codecov.io/bash) -f coverage.info
if [ "$total_py_failed" -ne "0" ]; then if [ "$?" -eq "0" ]; then
echo -e "${RED} ### Total $total_py_failed python case(s) failed! ### ${NC}" echo -e "${GREEN} ## Uploaded to Codecov! ## ${NC} "
exit $total_py_failed else
echo -e "${RED} ## Codecov did not collect coverage report! ## ${NC} "
exit $?
fi fi
;; ;;
esac esac
#
# Build Matrix
#
matrix:
- os: linux - os: linux
language: c
compiler: clang
env: DESC="linux/clang build"
git:
- depth: 1
addons: addons:
apt: apt:
packages: packages:
- build-essential - build-essential
- cmake - cmake
- net-tools
- python-pip
- python-setuptools
- python3-pip
- python3-setuptools
# - os: osx before_script:
# addons: - cd ${TRAVIS_BUILD_DIR}
# homebrew: - mkdir debug
# - cmake - cd debug
script:
- cmake ..
- make
# - os: osx
# language: c
# compiler: clang
# env: DESC="mac/clang build"
# git:
# - depth: 1
# addons:
# homebrew:
# - cmake
#
# script:
# - cd ${TRAVIS_BUILD_DIR}
# - mkdir debug
# - cd debug
# - cmake ..
# - make
...@@ -122,6 +122,12 @@ IF (TD_LINUX_64) ...@@ -122,6 +122,12 @@ IF (TD_LINUX_64)
link_libraries(/usr/lib/libargp.a) link_libraries(/usr/lib/libargp.a)
ADD_DEFINITIONS(-D_ALPINE) ADD_DEFINITIONS(-D_ALPINE)
ENDIF () ENDIF ()
IF (${COVER} MATCHES "true")
MESSAGE(STATUS "Test coverage mode, add extra flags")
SET(GCC_COVERAGE_COMPILE_FLAGS "-fprofile-arcs -ftest-coverage")
SET(GCC_COVERAGE_LINK_FLAGS "-lgcov --coverage")
SET(COMMON_FLAGS "${COMMON_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}")
ENDIF ()
ELSEIF (TD_LINUX_32) ELSEIF (TD_LINUX_32)
IF (NOT TD_ARM) IF (NOT TD_ARM)
EXIT () EXIT ()
...@@ -138,6 +144,12 @@ IF (TD_LINUX_64) ...@@ -138,6 +144,12 @@ IF (TD_LINUX_64)
link_library(/usr/lib/libargp.a) link_library(/usr/lib/libargp.a)
ADD_DEFINITIONS(-D_ALPINE) ADD_DEFINITIONS(-D_ALPINE)
ENDIF () ENDIF ()
IF (${COVER} MATCHES "true")
MESSAGE(STATUS "Test coverage mode, add extra flags")
SET(GCC_COVERAGE_COMPILE_FLAGS "-fprofile-arcs -ftest-coverage")
SET(GCC_COVERAGE_LINK_FLAGS "-lgcov --coverage")
SET(COMMON_FLAGS "${COMMON_FLAGS} ${GCC_COVERAGE_COMPILE_FLAGS} ${GCC_COVERAGE_LINK_FLAGS}")
ENDIF ()
ELSEIF (TD_WINDOWS_64) ELSEIF (TD_WINDOWS_64)
SET(CMAKE_GENERATOR "NMake Makefiles" CACHE INTERNAL "" FORCE) SET(CMAKE_GENERATOR "NMake Makefiles" CACHE INTERNAL "" FORCE)
IF (NOT TD_GODLL) IF (NOT TD_GODLL)
......
...@@ -41,8 +41,8 @@ class TDTestCase: ...@@ -41,8 +41,8 @@ class TDTestCase:
# tdSql.execute('insert into tb values (now - 7m , 10)') # tdSql.execute('insert into tb values (now - 7m , 10)')
# tdSql.execute('insert into tb values (now - 8m , 10)') # tdSql.execute('insert into tb values (now - 8m , 10)')
# tdSql.query("select * from tb") tdSql.query("select * from tb")
# tdSql.checkRows(insertRows) tdSql.checkRows(insertRows)
def stop(self): def stop(self):
tdSql.close() tdSql.close()
......
sudo python3 ./test.py -f insert/basic.py sudo python ./test.py -f insert/basic.py
#!/bin/bash
# Color setting
RED='\033[0;31m'
GREEN='\033[1;32m'
GREEN_DARK='\033[0;32m'
GREEN_UNDERLINE='\033[4;32m'
NC='\033[0m'
cd script
sudo ./test.sh 2>&1 | grep 'success\|failed' | tee out.txt
total_success=`grep success out.txt | wc -l`
if [ "$total_success" -gt "0" ]; then
total_success=`expr $total_success - 1`
echo -e "${GREEN} ### Total $total_success TSIM case(s) succeed! ### ${NC}"
fi
total_failed=`grep failed out.txt | wc -l`
if [ "$total_failed" -ne "0" ]; then
echo -e "${RED} ### Total $total_failed TSIM case(s) failed! ### ${NC}"
exit $total_failed
fi
cd ../pytest
sudo ./simpletest.sh 2>&1 | grep 'successfully executed\|failed' | tee pytest-out.txt
total_py_success=`grep 'successfully executed' pytest-out.txt | wc -l`
if [ "$total_py_success" -gt "0" ]; then
echo -e "${GREEN} ### Total $total_py_success python case(s) succeed! ### ${NC}"
fi
total_py_failed=`grep 'failed' pytest-out.txt | wc -l`
if [ "$total_py_failed" -ne "0" ]; then
echo -e "${RED} ### Total $total_py_failed python case(s) failed! ### ${NC}"
exit $total_py_failed
fi
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册