Adding ctest script for nightly testing
This commit is contained in:
parent
387fff0a0c
commit
9d874fe9c1
21
ValgrindSuppresionFile
Normal file
21
ValgrindSuppresionFile
Normal file
|
@ -0,0 +1,21 @@
|
|||
# ACML supressions
|
||||
{
|
||||
IdentifyCPUCond
|
||||
Memcheck:Cond
|
||||
...
|
||||
fun:acmlcpuid2
|
||||
...
|
||||
}
|
||||
{
|
||||
IdentifyCPUValue
|
||||
Memcheck:Value8
|
||||
...
|
||||
fun:acmlcpuid_once
|
||||
fun:acmlcpuid2
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
@ -9,10 +9,10 @@ ENDMACRO ()
|
|||
|
||||
# Macro to configure CUDA
|
||||
MACRO ( CONFIGURE_CUDA )
|
||||
SET(CUDA_FLAGS ${CUDA_NVCC_FLAGS})
|
||||
SET( CUDA_FIND_QUIETLY 1)
|
||||
CHECK_ENABLE_FLAG( USE_CUDA 0 )
|
||||
IF(USE_CUDA)
|
||||
IF( USE_CUDA )
|
||||
SET( CUDA_FLAGS ${CUDA_NVCC_FLAGS} )
|
||||
SET( CUDA_FIND_QUIETLY 1 )
|
||||
INCLUDE ( FindCUDA )
|
||||
IF ( NOT CUDA_FOUND )
|
||||
MESSAGE ( FATAL_ERROR "CUDA not found" )
|
||||
|
@ -20,27 +20,27 @@ MACRO ( CONFIGURE_CUDA )
|
|||
SET(CUDA_NVCC_FLAGS ${CUDA_FLAGS})
|
||||
IF(NOT CUDA_NVCC_FLAGS)
|
||||
# Set minimum requirements
|
||||
SET(CUDA_NVCC_FLAGS "-arch=sm_20")
|
||||
SET( CUDA_NVCC_FLAGS "-arch=sm_20" )
|
||||
ELSE()
|
||||
STRING(REPLACE " " ";" CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS})
|
||||
STRING( REPLACE " " ";" CUDA_NVCC_FLAGS ${CUDA_NVCC_FLAGS} )
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF ( NOT USE_CUDA )
|
||||
MESSAGE ( "Not using CUDA" )
|
||||
MESSAGE( "Not using CUDA" )
|
||||
ELSE ()
|
||||
INCLUDE_DIRECTORIES ( ${CUDA_INCLUDE_DIRS} )
|
||||
ADD_DEFINITIONS ( "-D USE_CUDA" )
|
||||
MESSAGE ( "Using CUDA " ${CUDA_VERSION} )
|
||||
MESSAGE ( " CUDA_LIBRARIES = " ${CUDA_LIBRARIES} )
|
||||
MESSAGE ( " CUDA_INCLUDE = " ${CUDA_INCLUDE_DIRS} )
|
||||
MESSAGE ( " CUDA_NVCC_FLAGS = " ${CUDA_NVCC_FLAGS} )
|
||||
MESSAGE ( " CUDA_TOOLKIT_ROOT = " ${CUDA_TOOLKIT_ROOT_DIR} )
|
||||
SET (EXTERNAL_LIBS ${EXTERNAL_LIBS} ${CUDA_LIBRARIES} )
|
||||
ENDIF ()
|
||||
ENDMACRO ()
|
||||
MESSAGE( "Using CUDA ${CUDA_VERSION}" )
|
||||
MESSAGE( " CUDA_LIBRARIES = ${CUDA_LIBRARIES}" )
|
||||
MESSAGE( " CUDA_INCLUDE = ${CUDA_INCLUDE_DIRS}" )
|
||||
MESSAGE( " CUDA_NVCC_FLAGS = ${CUDA_NVCC_FLAGS}" )
|
||||
MESSAGE( " CUDA_TOOLKIT_ROOT = ${CUDA_TOOLKIT_ROOT_DIR}" )
|
||||
SET( EXTERNAL_LIBS ${EXTERNAL_LIBS} ${CUDA_LIBRARIES} )
|
||||
ENDIF()
|
||||
ENDMACRO()
|
||||
|
||||
|
||||
# Macro to configure CUDA
|
||||
# Macro to configure MIC
|
||||
MACRO ( CONFIGURE_MIC )
|
||||
CHECK_ENABLE_FLAG( USE_MIC 0 )
|
||||
ADD_DEFINITIONS ( "-D USE_MIC" )
|
||||
|
|
170
ctest_script.cmake
Normal file
170
ctest_script.cmake
Normal file
|
@ -0,0 +1,170 @@
|
|||
# ctest script for building, running, and submitting the test results
|
||||
# Usage: ctest -s script,build
|
||||
# build = debug / optimized / valgrind
|
||||
# Note: this test will use use the number of processors defined in the variable N_PROCS,
|
||||
# the enviornmental variable N_PROCS, or the number of processors availible (if not specified)
|
||||
|
||||
# Set platform specific variables
|
||||
SITE_NAME( HOSTNAME )
|
||||
IF( ${HOSTNAME} STREQUAL "lap0086227" )
|
||||
|
||||
ELSEIF( ${HOSTNAME} MATCHES "vayu" )
|
||||
SET( COVERAGE_COMMAND /usr/bin/gcov-4.6 )
|
||||
SET( VALGRIND_COMMAND /usr/bin/valgrind )
|
||||
SET( CUDA_FLAGS "--use_fast_math -Xptxas=-v -arch=sm_20" )
|
||||
SET( CUDA_HOST_COMPILER "/usr/bin/g++" )
|
||||
SET(CTEST_CMAKE_GENERATOR "Unix Makefiles")
|
||||
ELSE()
|
||||
MESSAGE( FATAL_ERROR "Unknown host: ${HOSTNAME}" )
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Get the source directory based on the current directory
|
||||
SET( LBPM_DIR "${CMAKE_CURRENT_LIST_DIR}" )
|
||||
|
||||
|
||||
# Check that we specified the build type to run
|
||||
IF( NOT CTEST_SCRIPT_ARG )
|
||||
MESSAGE(FATAL_ERROR "No build specified: ctest -S /path/to/script,build (debug/optimized/valgrind")
|
||||
ELSEIF( ${CTEST_SCRIPT_ARG} STREQUAL "debug" )
|
||||
SET( CTEST_BUILD_NAME "LBPM-WIA-debug" )
|
||||
SET( CMAKE_BUILD_TYPE "Debug" )
|
||||
SET( CTEST_COVERAGE_COMMAND ${COVERAGE_COMMAND} )
|
||||
SET( ENABLE_GCOV "true" )
|
||||
SET( USE_VALGRIND FALSE )
|
||||
SET( USE_CUDA "false" )
|
||||
ELSEIF( ${CTEST_SCRIPT_ARG} STREQUAL "debug-cuda" )
|
||||
SET( CTEST_BUILD_NAME "LBPM-WIA-debug-cuda" )
|
||||
SET( CMAKE_BUILD_TYPE "Debug" )
|
||||
SET( CTEST_COVERAGE_COMMAND ${COVERAGE_COMMAND} )
|
||||
SET( ENABLE_GCOV "true" )
|
||||
SET( USE_VALGRIND FALSE )
|
||||
SET( USE_CUDA "true" )
|
||||
ELSEIF( (${CTEST_SCRIPT_ARG} STREQUAL "optimized") OR (${CTEST_SCRIPT_ARG} STREQUAL "opt") )
|
||||
SET( CTEST_BUILD_NAME "LBPM-WIA-opt" )
|
||||
SET( CMAKE_BUILD_TYPE "Release" )
|
||||
SET( CTEST_COVERAGE_COMMAND )
|
||||
SET( ENABLE_GCOV "false" )
|
||||
SET( USE_VALGRIND FALSE )
|
||||
SET( USE_CUDA "false" )
|
||||
ELSEIF( (${CTEST_SCRIPT_ARG} STREQUAL "optimized-cuda") OR (${CTEST_SCRIPT_ARG} STREQUAL "opt-cuda") )
|
||||
SET( CTEST_BUILD_NAME "LBPM-WIA-opt-cuda" )
|
||||
SET( CMAKE_BUILD_TYPE "Release" )
|
||||
SET( CTEST_COVERAGE_COMMAND )
|
||||
SET( ENABLE_GCOV "false" )
|
||||
SET( USE_VALGRIND FALSE )
|
||||
SET( USE_CUDA "true" )
|
||||
ELSEIF( ${CTEST_SCRIPT_ARG} STREQUAL "valgrind" )
|
||||
SET( CTEST_BUILD_NAME "LBPM-WIA-valgrind" )
|
||||
SET( CMAKE_BUILD_TYPE "Debug" )
|
||||
SET( CTEST_COVERAGE_COMMAND )
|
||||
SET( ENABLE_GCOV "false" )
|
||||
SET( USE_VALGRIND TRUE )
|
||||
SET( USE_CUDA "false" )
|
||||
ELSEIF( ${CTEST_SCRIPT_ARG} STREQUAL "valgrind-cuda" )
|
||||
SET( CTEST_BUILD_NAME "LBPM-WIA-valgrind-cuda" )
|
||||
SET( CMAKE_BUILD_TYPE "Debug" )
|
||||
SET( CTEST_COVERAGE_COMMAND )
|
||||
SET( ENABLE_GCOV "false" )
|
||||
SET( USE_VALGRIND TRUE )
|
||||
SET( USE_CUDA "true" )
|
||||
ELSE()
|
||||
MESSAGE(FATAL_ERROR "Invalid build (${CTEST_SCRIPT_ARG}): ctest -S /path/to/script,build (debug/opt/valgrind")
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Set the number of processors
|
||||
IF( NOT DEFINED N_PROCS )
|
||||
SET( N_PROCS $ENV{N_PROCS} )
|
||||
ENDIF()
|
||||
IF( NOT DEFINED N_PROCS )
|
||||
SET(N_PROCS 1)
|
||||
# Linux:
|
||||
SET(cpuinfo_file "/proc/cpuinfo")
|
||||
IF(EXISTS "${cpuinfo_file}")
|
||||
FILE(STRINGS "${cpuinfo_file}" procs REGEX "^processor.: [0-9]+$")
|
||||
list(LENGTH procs N_PROCS)
|
||||
ENDIF()
|
||||
# Mac:
|
||||
IF(APPLE)
|
||||
find_program(cmd_sys_pro "system_profiler")
|
||||
if(cmd_sys_pro)
|
||||
execute_process(COMMAND ${cmd_sys_pro} OUTPUT_VARIABLE info)
|
||||
STRING(REGEX REPLACE "^.*Total Number Of Cores: ([0-9]+).*$" "\\1" N_PROCS "${info}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
# Windows:
|
||||
IF(WIN32)
|
||||
SET(N_PROCS "$ENV{NUMBER_OF_PROCESSORS}")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Set basic variables
|
||||
SET( CTEST_PROJECT_NAME "LBPM-WIA" )
|
||||
SET( CTEST_SOURCE_DIRECTORY "${LBPM_DIR}" )
|
||||
SET( CTEST_BINARY_DIRECTORY "." )
|
||||
SET( CTEST_DASHBOARD "Nightly" )
|
||||
SET( CTEST_TEST_TIMEOUT 300 )
|
||||
SET( CTEST_CUSTOM_MAXIMUM_NUMBER_OF_ERRORS 500 )
|
||||
SET( CTEST_CUSTOM_MAXIMUM_NUMBER_OF_WARNINGS 500 )
|
||||
SET( NIGHTLY_START_TIME "18:00:00 EST" )
|
||||
SET( CTEST_NIGHTLY_START_TIME "22:00:00 EST" )
|
||||
SET( CTEST_COMMAND "\"${CTEST_EXECUTABLE_NAME}\" -D ${CTEST_DASHBOARD}" )
|
||||
SET( CTEST_BUILD_COMMAND "make -i -j ${N_PROCS} install" )
|
||||
|
||||
|
||||
# Set valgrind options
|
||||
#SET (VALGRIND_COMMAND_OPTIONS "--tool=memcheck --leak-check=yes --track-fds=yes --num-callers=50 --show-reachable=yes --track-origins=yes --malloc-fill=0xff --free-fill=0xfe --suppressions=${LBPM_DIR}/ValgrindSuppresionFile" )
|
||||
SET( VALGRIND_COMMAND_OPTIONS "--tool=memcheck --leak-check=yes --track-fds=yes --num-callers=50 --show-reachable=yes --suppressions=${LBPM_DIR}/ValgrindSuppresionFile" )
|
||||
IF ( USE_VALGRIND )
|
||||
SET( MEMORYCHECK_COMMAND ${VALGRIND_COMMAND} )
|
||||
SET( MEMORYCHECKCOMMAND ${VALGRIND_COMMAND} )
|
||||
SET( CTEST_MEMORYCHECK_COMMAND ${VALGRIND_COMMAND} )
|
||||
SET( CTEST_MEMORYCHECKCOMMAND ${VALGRIND_COMMAND} )
|
||||
SET( CTEST_MEMORYCHECK_COMMAND_OPTIONS ${VALGRIND_COMMAND_OPTIONS} )
|
||||
SET( CTEST_MEMORYCHECKCOMMAND_OPTIONS ${VALGRIND_COMMAND_OPTIONS} )
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Clear the binary directory and create an initial cache
|
||||
CTEST_EMPTY_BINARY_DIRECTORY (${CTEST_BINARY_DIRECTORY})
|
||||
FILE(WRITE "${CTEST_BINARY_DIRECTORY}/CMakeCache.txt" "CTEST_TEST_CTEST:BOOL=1")
|
||||
|
||||
|
||||
# Configure and run the tests
|
||||
SET( CTEST_SITE ${HOSTNAME} )
|
||||
CTEST_START("${CTEST_DASHBOARD}")
|
||||
CTEST_UPDATE()
|
||||
CTEST_CONFIGURE(
|
||||
BUILD ${CTEST_BINARY_DIRECTORY}
|
||||
SOURCE ${CTEST_SOURCE_DIRECTORY}
|
||||
OPTIONS "-DCMAKE_C_COMPILER:PATH=mpicc;-DCMAKE_CXX_COMPILER:PATH=mpicxx;-DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE};-DUSE_CUDA:BOOL=${USE_CUDA};-DCUDA_NVCC_FLAGS='${CUDA_FLAGS}';-DCUDA_HOST_COMPILER=${CUDA_HOST_COMPILER};-DLDLIBS:STRING=\"${LDLIBS}\";-DENABLE_GCOV:BOOL=${ENABLE_GCOV}"
|
||||
)
|
||||
CTEST_BUILD()
|
||||
IF ( USE_VALGRIND_MATLAB )
|
||||
CTEST_TEST( INCLUDE MATLAB--test_hello_world PARALLEL_LEVEL ${N_PROCS} )
|
||||
ELSEIF ( USE_VALGRIND )
|
||||
CTEST_MEMCHECK( EXCLUDE procs PARALLEL_LEVEL ${N_PROCS} )
|
||||
ELSE()
|
||||
# CTEST_TEST( EXCLUDE WEEKLY PARALLEL_LEVEL ${N_PROCS} )
|
||||
CTEST_TEST( PARALLEL_LEVEL ${N_PROCS} )
|
||||
ENDIF()
|
||||
IF( CTEST_COVERAGE_COMMAND )
|
||||
CTEST_COVERAGE()
|
||||
ENDIF()
|
||||
|
||||
|
||||
# Submit the results to oblivion
|
||||
SET( CTEST_DROP_METHOD "http" )
|
||||
SET( CTEST_DROP_SITE "oblivion.engr.colostate.edu" )
|
||||
SET( CTEST_DROP_LOCATION "/CDash/submit.php?project=LBPM-WIA" )
|
||||
SET( CTEST_DROP_SITE_CDASH TRUE )
|
||||
SET( DROP_SITE_CDASH TRUE )
|
||||
CTEST_SUBMIT()
|
||||
|
||||
|
||||
# Clean up
|
||||
# exec_program("make distclean")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user