Mercurial > hg > freeDiameter
view contrib/nightly_tests/runtests.sh @ 344:0e1318e654bc
Testing CTest script
author | Sebastien Decugis <sdecugis@nict.go.jp> |
---|---|
date | Tue, 29 Jun 2010 15:07:46 +0900 |
parents | |
children | 0a5169e3fa25 |
line wrap: on
line source
#!/bin/bash -x # This script will retrieve the list of tests to run from the freediameter website, # and execute them one by one. ROOTDIR=$HOME/fDtests if [ -d $ROOTDIR ]; then echo "The working directory $ROOTDIR does not exist. Please create or edit the script." exit 1; fi WORKDIR=$ROOTDIR/data # The script requires a local.cmake file to exist and define the following: # CTEST_SITE= # the name of the build slave. # Exemple: SET(CTEST_SITE "Ubuntu-Lucid-64b") if [ ! -e $ROOTDIR/local.cmake ]; then echo "Missing $ROOTDIR/local.cmake file"; exit 1; fi # Now, cleanup any previous data. We start from clean slate. rm -rf $WORKDIR mkdir $WORKDIR # Retrieve the default parameters. wget "http://www.freediameter.net/hg/freeDiameter/raw-file/tip/CTestConfig.cmake" -O $WORKDIR/1_default.cmake if [ ! -e $WORKDIR/1_default.cmake ]; then echo "Error retrieving CTestConfig.cmake file"; exit 1; fi # Retrieve the list of build names wget "http://www.freediameter.net/hg/freeDiameter/raw-file/tip/contrib/nightly_tests/tests.list" -O $WORKDIR/2_tests.list if [ ! -e $WORKDIR/2_tests.list ]; then echo "Error retrieving tests.list file"; exit 1; fi # Now, for each test in the list for t in $(cat $WORKDIR/2_tests.list); do # Create the work environment mkdir $WORKDIR/$t #### Create the script # Project name, ... cp $WORKDIR/1_default.cmake $WORKDIR/$t/CTestScript.cmake # Path name, build configuration, ... cat >> $WORKDIR/$t/CTestScript.cmake << EOF ########################## SET(CTEST_SOURCE_DIRECTORY "$WORKDIR/source") SET(CTEST_BINARY_DIRECTORY "$WORKDIR/$t/build") set(CTEST_CMAKE_GENERATOR "Unix Makefiles") set(CTEST_BUILD_CONFIGURATION "Profiling") set(CTEST_BUILD_OPTIONS "") set(WITH_MEMCHECK FALSE) set(WITH_COVERAGE TRUE) ########################## EOF wget "http://www.freediameter.net/hg/freeDiameter/raw-file/tip/contrib/nightly_tests/$t.conf" -O $WORKDIR/$t/params.conf if [ ! -e $WORKDIR/$t/params.conf ]; then echo "Error retrieving $t.conf file"; continue; fi # The retrieved parameters will overwrite the defaults cat $WORKDIR/$t/params.conf >> $WORKDIR/$t/CTestScript.cmake # Now, the remaining of the script cat >> $WORKDIR/$t/CTestScript.cmake << EOF ####################################################################### ctest_empty_binary_directory(\${CTEST_BINARY_DIRECTORY}) find_program(CTEST_HG_COMMAND NAMES hg) find_program(CTEST_COVERAGE_COMMAND NAMES gcov) find_program(CTEST_MEMORYCHECK_COMMAND NAMES valgrind) # set(CTEST_MEMORYCHECK_SUPPRESSIONS_FILE \${CTEST_SOURCE_DIRECTORY}/tests/valgrind.supp) if(NOT EXISTS "\${CTEST_SOURCE_DIRECTORY}") set(CTEST_CHECKOUT_COMMAND "\${CTEST_HG_COMMAND} clone http://www.freediameter.net/hg/freeDiameter \${CTEST_SOURCE_DIRECTORY}") endif() set(CTEST_UPDATE_COMMAND "\${CTEST_HG_COMMAND}") set(CTEST_CONFIGURE_COMMAND "\${CMAKE_COMMAND} -DCMAKE_BUILD_TYPE:STRING=\${CTEST_BUILD_CONFIGURATION}") set(CTEST_CONFIGURE_COMMAND "\${CTEST_CONFIGURE_COMMAND} -DWITH_TESTING:BOOL=ON \${CTEST_BUILD_OPTIONS}") set(CTEST_CONFIGURE_COMMAND "\${CTEST_CONFIGURE_COMMAND} \\"-G\${CTEST_CMAKE_GENERATOR}\\"") set(CTEST_CONFIGURE_COMMAND "\${CTEST_CONFIGURE_COMMAND} \\"\${CTEST_SOURCE_DIRECTORY}\\"") ctest_start("Nightly") ctest_update() ctest_configure() ctest_build() ctest_test() if (WITH_MEMCHECK AND CTEST_COVERAGE_COMMAND) ctest_coverage() endif (WITH_MEMCHECK AND CTEST_COVERAGE_COMMAND) if (WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND) ctest_memcheck() endif (WITH_MEMCHECK AND CTEST_MEMORYCHECK_COMMAND) # ctest_submit() EOF # Test until here for now... echo "Ready to start $WORKDIR/$t/CTestScript.cmake, abort for now" exit 1; done