diff --git a/.travis.yml b/.travis.yml index 221a1f1a300d265db1f8958feba6539a9b7b5b81..bda5c0d75896ffacae6a048ab97ee34229b5e58b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,114 +1,19 @@ # # Configuration # -git: - depth: 1 - -language: c - -compiler: - - clang - - gcc - -os: - - linux -# - osx - -before_install: - - |- - case $TRAVIS_OS_NAME in - linux) - sudo apt -y update - sudo apt -y install python-pip python3-pip python-setuptools python3-setuptools - ;; - esac - -addons: - coverity_scan: - - # GitHub project metadata - # ** specific to your project ** - project: - name: TDengine - version: 2.x - description: TDengine - - # Where email notification of build analysis results will be sent - notification_email: sdsang@taosdata.com - - # Commands to prepare for build_command - # ** likely specific to your build ** - build_command_prepend: cmake .. - - # The command that will be added as an argument to "cov-build" to compile your project for analysis, - # ** likely specific to your build ** - build_command: cmake --build . - - # Pattern to match selecting branches that will run analysis. We recommend leaving this set to 'coverity_scan'. - # Take care in resource usage, and consider the build frequency allowances per - # https://scan.coverity.com/faq#frequency - branch_pattern: coverity_scan - -before_script: - - mkdir debug - - cd debug - -script: - - cmake .. - - cmake --build . || exit $? - - |- - case $TRAVIS_OS_NAME in - linux) - # Color setting - RED='\033[0;31m' - GREEN='\033[1;32m' - GREEN_DARK='\033[0;32m' - GREEN_UNDERLINE='\033[4;32m' - NC='\033[0m' - - sudo make install - - cd ../tests/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 - - pip install --user ../../src/connector/python/linux/python2/ - pip3 install --user ../../src/connector/python/linux/python3/ - - 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 - - ;; - esac - # # Build Matrix # matrix: - os: linux + language: c + + git: + - depth: 1 + + compiler: gcc + env: DESC="linux/gcc build and test" + addons: apt: packages: @@ -120,8 +25,193 @@ matrix: - python3-pip - python3-setuptools -# - os: osx -# addons: -# homebrew: -# - cmake + 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 + + script: + - cmake .. + - make + + after_success: + - |- + case $TRAVIS_OS_NAME in + linux) + cd ${TRAVIS_BUILD_DIR}/debug + 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 + + - os: linux + language: c + compiler: gcc + env: COVERITY_SCAN=true + git: + - depth: 1 + + script: + - echo "this job is for coverity scan" + + addons: + coverity_scan: + + # GitHub project metadata + # ** specific to your project ** + project: + name: sangshuduo/TDengine + version: 2.x + description: sangshuduo/TDengine + + # Where email notification of build analysis results will be sent + notification_email: sangshuduo@gmail.com + + # Commands to prepare for build_command + # ** likely specific to your build ** + build_command_prepend: cmake .. + + # The command that will be added as an argument to "cov-build" to compile your project for analysis, + # ** likely specific to your build ** + build_command: cmake --build . + + # Pattern to match selecting branches that will run analysis. We recommend leaving this set to 'coverity_scan'. + # Take care in resource usage, and consider the build frequency allowances per + # https://scan.coverity.com/faq#frequency + branch_pattern: coverity_scan + + - 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 + - cd debug + + script: + - cmake -DCOVER=true .. + - make + + after_success: + - |- + case $TRAVIS_OS_NAME in + linux) + cd ${TRAVIS_BUILD_DIR}/debug + 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 + + cd ${TRAVIS_BUILD_DIR} + lcov -d . --capture -o coverage.info + lcov -l coverage.info || exit $? + + gem install coveralls-lcov + + # Color setting + RED='\033[0;31m' + GREEN='\033[1;32m' + GREEN_DARK='\033[0;32m' + GREEN_UNDERLINE='\033[4;32m' + NC='\033[0m' + + coveralls-lcov coverage.info + 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 + + bash <(curl -s https://codecov.io/bash) -f coverage.info + if [ "$?" -eq "0" ]; then + echo -e "${GREEN} ## Uploaded to Codecov! ## ${NC} " + else + echo -e "${RED} ## Codecov did not collect coverage report! ## ${NC} " + exit $? + fi + + ;; + esac + + - os: linux + language: c + compiler: clang + env: DESC="linux/clang build" + git: + - depth: 1 + + addons: + apt: + packages: + - build-essential + - cmake + before_script: + - cd ${TRAVIS_BUILD_DIR} + - mkdir debug + - 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 diff --git a/cmake/platform.inc b/cmake/platform.inc index 6087b6f16f61273dd1dcb69dd6aca207335a96a8..2e0e2d6af08fa529f7435b2e39fa4cdb4d293fae 100755 --- a/cmake/platform.inc +++ b/cmake/platform.inc @@ -122,6 +122,12 @@ IF (TD_LINUX_64) link_libraries(/usr/lib/libargp.a) ADD_DEFINITIONS(-D_ALPINE) 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) IF (NOT TD_ARM) EXIT () @@ -138,6 +144,12 @@ IF (TD_LINUX_64) link_library(/usr/lib/libargp.a) ADD_DEFINITIONS(-D_ALPINE) 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) SET(CMAKE_GENERATOR "NMake Makefiles" CACHE INTERNAL "" FORCE) IF (NOT TD_GODLL) diff --git a/tests/pytest/insert/basic.py b/tests/pytest/insert/basic.py index c6dbd76de4c4699f2bde3c864a1ff43e6424cbb8..5ec83fd249d200cf2612b0688b97bb92cb14f75b 100644 --- a/tests/pytest/insert/basic.py +++ b/tests/pytest/insert/basic.py @@ -41,8 +41,8 @@ class TDTestCase: # tdSql.execute('insert into tb values (now - 7m , 10)') # tdSql.execute('insert into tb values (now - 8m , 10)') -# tdSql.query("select * from tb") -# tdSql.checkRows(insertRows) + tdSql.query("select * from tb") + tdSql.checkRows(insertRows) def stop(self): tdSql.close() diff --git a/tests/pytest/simpletest.sh b/tests/pytest/simpletest.sh index 0a905beaa1230adcd8f9e5341e92ac0613bd1d51..bffb3689b2f24136851e736b5b516c4aa96c621c 100755 --- a/tests/pytest/simpletest.sh +++ b/tests/pytest/simpletest.sh @@ -1 +1 @@ -sudo python3 ./test.py -f insert/basic.py +sudo python ./test.py -f insert/basic.py diff --git a/tests/test-all.sh b/tests/test-all.sh new file mode 100755 index 0000000000000000000000000000000000000000..8bd01119c4cee2e836d39ce181ca30941271ed85 --- /dev/null +++ b/tests/test-all.sh @@ -0,0 +1,39 @@ +#!/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 +