Use my.cdash.org to store results of unittests, coverage, and valgrind

This commit is contained in:
Soonho Kong 2013-09-03 21:55:40 -07:00
parent 2250c1356f
commit bbbd584b45
7 changed files with 77 additions and 19 deletions

View file

@ -3,7 +3,7 @@ env:
global: global:
- secure: "W8vou0KRJOOboZXP9q+D/9Wl6LlBeVS2T85MHWPz7EwCMQbJq5xWnGzYLE6FmC0iILcZkXyP63vqoYMFo5MJaEQeALGx2RuIiW7XgrD+7Bn4Vfsp6BLT7K9/AJETGGTQnLs8oZJJCXHGtzbc8EPFIZd/ZPPrve4jhEE5ZNhXnRc=" - secure: "W8vou0KRJOOboZXP9q+D/9Wl6LlBeVS2T85MHWPz7EwCMQbJq5xWnGzYLE6FmC0iILcZkXyP63vqoYMFo5MJaEQeALGx2RuIiW7XgrD+7Bn4Vfsp6BLT7K9/AJETGGTQnLs8oZJJCXHGtzbc8EPFIZd/ZPPrve4jhEE5ZNhXnRc="
matrix: matrix:
- CMAKE_CXX_COMPILER=g++ CMAKE_BUILD_TYPE=DEBUG USE_TCMALLOC=TRUE - CMAKE_CXX_COMPILER=g++ CMAKE_BUILD_TYPE=DEBUG USE_TCMALLOC=TRUE MEMCHECK=TRUE PUSH_TO_CDASH=TRUE
- CMAKE_CXX_COMPILER=g++ CMAKE_BUILD_TYPE=DEBUG USE_TCMALLOC=FALSE - CMAKE_CXX_COMPILER=g++ CMAKE_BUILD_TYPE=DEBUG USE_TCMALLOC=FALSE
- CMAKE_CXX_COMPILER=g++ CMAKE_BUILD_TYPE=RELEASE USE_TCMALLOC=TRUE UPLOAD=osx - CMAKE_CXX_COMPILER=g++ CMAKE_BUILD_TYPE=RELEASE USE_TCMALLOC=TRUE UPLOAD=osx
- CMAKE_CXX_COMPILER=g++ CMAKE_BUILD_TYPE=RELEASE USE_TCMALLOC=FALSE UPLOAD=osx_tcmalloc - CMAKE_CXX_COMPILER=g++ CMAKE_BUILD_TYPE=RELEASE USE_TCMALLOC=FALSE UPLOAD=osx_tcmalloc
@ -20,7 +20,14 @@ before_script:
script: script:
- cd build - cd build
- ninja && yes "C" | ctest -T test -VV - ctest -D ExperimentalBuild
- yes "C" | ctest -D ExperimentalTest -VV
- if [[ $MEMCHECK == TRUE ]]; then
ctest -D ExperimentalMemCheck;
fi
- if [[ $PUSH_TO_CDASH == TRUE ]]; then
ctest -D ExperimentalSubmit;
fi
- cd .. - cd ..
after_script: after_script:
@ -43,6 +50,9 @@ install:
brew install mpfr; brew link --overwrite mpfr; brew install mpfr; brew link --overwrite mpfr;
fi fi
- brew install cmake ninja - brew install cmake ninja
- if [[ $MEMCHECK == TRUE ]]; then
brew install valgrind;
fi
- if [[ $USE_TCMALLOC == TRUE ]]; then brew install google-perftools; fi - if [[ $USE_TCMALLOC == TRUE ]]; then brew install google-perftools; fi
- if [[ $UPLOAD ]]; then - if [[ $UPLOAD ]]; then
brew install python; pip install dropbox; brew install python; pip install dropbox;

View file

@ -5,7 +5,7 @@ env:
# DROPBOX_KEY # DROPBOX_KEY
- secure: "H1aUwvee839ZPVievqm8Fwl9hBHx5/JW6+J66+ORYL2IHHPjfOgLKRYU2rcTcbxnZO88NJRGeiI431rEadBU2Ie5aS8WpKM5orvRmdd6bLcCvzqN+hS8JCmCVygQtgpKYYUk8iDWhX9YCgPVs0RlRz3UCjwUpqdkmL+w74lIZMM=" - secure: "H1aUwvee839ZPVievqm8Fwl9hBHx5/JW6+J66+ORYL2IHHPjfOgLKRYU2rcTcbxnZO88NJRGeiI431rEadBU2Ie5aS8WpKM5orvRmdd6bLcCvzqN+hS8JCmCVygQtgpKYYUk8iDWhX9YCgPVs0RlRz3UCjwUpqdkmL+w74lIZMM="
matrix: matrix:
- CMAKE_CXX_COMPILER=g++ CMAKE_BUILD_TYPE=RELEASE UPLOAD=windows DROPBOX=TRUE - CMAKE_CXX_COMPILER=g++ CMAKE_BUILD_TYPE=RELEASE UPLOAD=windows DROPBOX=TRUE PUSH_TO_CDASH=TRUE
- CMAKE_CXX_COMPILER=g++ CMAKE_BUILD_TYPE=DEBUG - CMAKE_CXX_COMPILER=g++ CMAKE_BUILD_TYPE=DEBUG
install: install:
@ -27,7 +27,10 @@ script:
- LEAN_ROOT=`pwd` - LEAN_ROOT=`pwd`
- cd build - cd build
- cmake -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ../src -DCMAKE_TOOLCHAIN_FILE=/tmp/mxe/usr/x86_64-w64-mingw32/share/cmake/mxe-conf.cmake - cmake -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ../src -DCMAKE_TOOLCHAIN_FILE=/tmp/mxe/usr/x86_64-w64-mingw32/share/cmake/mxe-conf.cmake
- make - ctest -D ExperimentalBuild
- if [[ $PUSH_TO_CDASH == TRUE ]]; then
ctest -D ExperimentalSubmit;
fi
- cd .. - cd ..
after_script: after_script:

View file

@ -18,6 +18,8 @@ env:
TRIGGER_BB=TRUE TRIGGER_BB=TRUE
TRIGGER_OSX=TRUE TRIGGER_OSX=TRUE
TRIGGER_WINDOWS=TRUE TRIGGER_WINDOWS=TRUE
MEMCHECK=TRUE
PUSH_TO_CDASH=TRUE
- CMAKE_CXX_COMPILER=g++-4.8 - CMAKE_CXX_COMPILER=g++-4.8
CMAKE_BUILD_TYPE=DOXYGEN CMAKE_BUILD_TYPE=DOXYGEN
BUILD_DOXYGEN=TRUE BUILD_DOXYGEN=TRUE
@ -25,6 +27,7 @@ env:
- CMAKE_CXX_COMPILER=clang++-3.3 - CMAKE_CXX_COMPILER=clang++-3.3
CMAKE_BUILD_TYPE=DEBUG CMAKE_BUILD_TYPE=DEBUG
USE_TCMALLOC=TRUE USE_TCMALLOC=TRUE
PUSH_TO_CDASH=TRUE
- CMAKE_CXX_COMPILER=g++-4.8 - CMAKE_CXX_COMPILER=g++-4.8
CMAKE_BUILD_TYPE=DEBUG CMAKE_BUILD_TYPE=DEBUG
USE_TCMALLOC=TRUE USE_TCMALLOC=TRUE
@ -62,6 +65,9 @@ install:
- until sudo apt-get -qq install libstdc++-4.8-dev; do echo retry; done - until sudo apt-get -qq install libstdc++-4.8-dev; do echo retry; done
- if [[ $CMAKE_CXX_COMPILER == g++-4.8 ]]; then until sudo apt-get -qq install g++-4.8; do echo retry; done fi - if [[ $CMAKE_CXX_COMPILER == g++-4.8 ]]; then until sudo apt-get -qq install g++-4.8; do echo retry; done fi
- if [[ $CMAKE_CXX_COMPILER == clang++-3.3 ]]; then until sudo apt-get -qq install clang-3.3; do echo retry; done fi - if [[ $CMAKE_CXX_COMPILER == clang++-3.3 ]]; then until sudo apt-get -qq install clang-3.3; do echo retry; done fi
- if [[ $MEMCHECK == TRUE ]]; then
sudo apt-get -qq install valgrind;
fi
- if [[ $CMAKE_BUILD_TYPE == TESTCOV ]]; then - if [[ $CMAKE_BUILD_TYPE == TESTCOV ]]; then
wget http://downloads.sourceforge.net/ltp/lcov-1.10.tar.gz; wget http://downloads.sourceforge.net/ltp/lcov-1.10.tar.gz;
tar xvfz lcov-1.10.tar.gz; tar xvfz lcov-1.10.tar.gz;
@ -75,13 +81,22 @@ install:
fi fi
script: script:
- if [[ $CMAKE_BUILD_TYPE == DEBUG || $CMAKE_BUILD_TYPE == RELEASE ]]; then - mkdir -p build
mkdir -p build; - cd build
cd build; - cmake -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} ../src
cmake -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER} ../src; - if [[ $CMAKE_BUILD_TYPE == DEBUG || $CMAKE_BUILD_TYPE == RELEASE || $CMAKE_BUILD_TYPE == TESTCOV ]]; then
make && yes "C" | ctest -T test -VV; ctest -D ExperimentalBuild;
yes "C" | ctest -D ExperimentalTest -VV;
fi fi
- if [[ $CMAKE_BUILD_TYPE == TESTCOV ]]; then
ctest -D ExperimentalCoverage;
- if [[ $MEMCHECK == TRUE ]]; then
ctest -D ExperimentalMemCheck;
fi
- if [[ $PUSH_TO_CDASH == TRUE ]]; then
ctest -D ExperimentalSubmit;
fi
- cd ..
after_script: after_script:
- if [[ $TRIGGER_BB == TRUE ]]; then - if [[ $TRIGGER_BB == TRUE ]]; then
git push -q https://soonhok:${BB_TOKEN}@bitbucket.org/soonhok/lean.git +master; git push -q https://soonhok:${BB_TOKEN}@bitbucket.org/soonhok/lean.git +master;
@ -110,9 +125,6 @@ after_script:
mv /tmp/.travis.temp.yml .travis.yml; mv /tmp/.travis.temp.yml .travis.yml;
git reset --hard HEAD~; git reset --hard HEAD~;
fi fi
- if [[ $CMAKE_BUILD_TYPE == DEBUG ]] || [[ $CMAKE_BUILD_TYPE == RELEASE ]]; then
cd ..;
fi
- if [[ $BUILD_DOXYGEN == TRUE ]]; then - if [[ $BUILD_DOXYGEN == TRUE ]]; then
sudo apt-get -qq install doxygen; sudo apt-get -qq install doxygen;
script/doxygen.sh; script/doxygen.sh;

View file

@ -7,6 +7,10 @@ Mac OS X 10.8.2, g++-4.8
[![Build Status](https://travis-ci.org/soonhokong/lean-windows.png?branch=master)](https://travis-ci.org/soonhokong/lean-windows) [![Build Status](https://travis-ci.org/soonhokong/lean-windows.png?branch=master)](https://travis-ci.org/soonhokong/lean-windows)
Windows, x86_64-w64-mingw32-g++-4.8.1 Windows, x86_64-w64-mingw32-g++-4.8.1
[[Result of Build/UnitTest/Coverage/Dynamic Analysis]][cdash]
[cdash]: http://my.cdash.org/index.php?project=Lean&date=
Requirements Requirements
============ ============
@ -46,15 +50,15 @@ Instructions for installing clang-3.3 (C++11 compatible) on Ubuntu
sudo apt-get dist-upgrade sudo apt-get dist-upgrade
sudo apt-get install clang-3.3 clang-3.3-doc sudo apt-get install clang-3.3 clang-3.3-doc
Note that you [still need][1] to have g++-4.8's C++ runtime library to Note that you [still need][clang_cxx_status] to have g++-4.8's C++
support some C++11 features that we are using. runtime library to support some C++11 features that we are using.
You can specify the C++ compiler to use by using ``-DCMAKE_CXX_COMPILER`` You can specify the C++ compiler to use by using ``-DCMAKE_CXX_COMPILER``
option. For example option. For example
cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_CXX_COMPILER=clang++-3.3 ../../src cmake -DCMAKE_BUILD_TYPE=DEBUG -DCMAKE_CXX_COMPILER=clang++-3.3 ../../src
[1]: http://clang.llvm.org/cxx_status.html [clang_cxx_status]: http://clang.llvm.org/cxx_status.html
Install Packages on Fedora 19 Install Packages on Fedora 19
----------------------------- -----------------------------
@ -117,10 +121,11 @@ Instructions for RELEASE build
Using [CMake][cmake] + [Ninja][ninja] Using [CMake][cmake] + [Ninja][ninja]
------------------------------- -------------------------------
[CMake 2.8.11][cmake] supports [Ninja][ninja] build system using [CMake 2.8.11][cmake] supports [Ninja][ninja] build system using
``-G`` option. [Some people report][1] that using [Ninja][ninja] can ``-G`` option. [Some people report][ninja_work] that using
reduce the build time, esp when a build is incremental. [Ninja][ninja] can reduce the build time, esp when a build is
incremental.
[1]: https://plus.google.com/108996039294665965197/posts/SfhrFAhRyyd [ninja_work]: https://plus.google.com/108996039294665965197/posts/SfhrFAhRyyd
Instructions for DEBUG build Instructions for DEBUG build

View file

@ -6,6 +6,11 @@ set(LEAN_VERSION_MINOR 1)
set(CMAKE_COLOR_MAKEFILE ON) set(CMAKE_COLOR_MAKEFILE ON)
enable_testing() enable_testing()
# Added for CTest
INCLUDE(CTest)
CONFIGURE_FILE(${LEAN_SOURCE_DIR}/CTestCustom.cmake.in
${LEAN_BINARY_DIR}/CTestCustom.cmake @ONLY)
set(LEAN_EXTRA_LINKER_FLAGS "") set(LEAN_EXTRA_LINKER_FLAGS "")
set(LEAN_EXTRA_CXX_FLAGS "") set(LEAN_EXTRA_CXX_FLAGS "")

17
src/CTestConfig.cmake Normal file
View file

@ -0,0 +1,17 @@
## This file should be placed in the root directory of your project.
## Then modify the CMakeLists.txt file in the root directory of your
## project to incorporate the testing dashboard.
##
## # The following are required to submit to the CDash dashboard:
## ENABLE_TESTING()
## INCLUDE(CTest)
set(CTEST_PROJECT_NAME "Lean")
set(CTEST_NIGHTLY_START_TIME "00:00:00 EST")
set(CTEST_DROP_METHOD "http")
set(CTEST_DROP_SITE "my.cdash.org")
set(CTEST_DROP_LOCATION "/submit.php?project=Lean")
set(CTEST_DROP_SITE_CDASH TRUE)
set(UPDATE_COMMAND "git")

6
src/CTestCustom.cmake.in Normal file
View file

@ -0,0 +1,6 @@
# Complete list of options is available at http://cmake.org/Wiki/CMake/Testing_With_CTest
# List of tests to ignore during the MemCheck stage
SET(CTEST_CUSTOM_MEMCHECK_IGNORE ${CTEST_CUSTOM_MEMCHECK_IGNORE} "leantests")
# Regular expression for excluding files from coverage testing
SET(CTEST_CUSTOM_COVERAGE_EXCLUDE ${CTEST_CUSTOM_COVERAGE_EXCLUDE} "tests/*")