Skip to content
Snippets Groups Projects
Commit 9d07b1f1 authored by Marco Clemencic's avatar Marco Clemencic
Browse files

replaced GAUDI_*_TEST with gaudi_add_test

The QMTest are executed as a single CTest and always succeed,
even if the tests inside fail (limit of the wrapper we use).

The environment is forced and only partially dynamic (to be fixed).
parent f98870fa
No related branches found
No related tags found
No related merge requests found
......@@ -14,23 +14,8 @@ INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${python_cmd} -m compileall ${CMAKE_INSTA
INSTALL(CODE "EXECUTE_PROCESS(COMMAND ${python_cmd} -m compileall ${CMAKE_INSTALL_PREFIX}/scripts)")
#---Tests-------------------------------------------------------------------
set( QMtests
bug_34769 bug_37479 bug_39846 cmdline_conf import_opts
bug_35201 bug_37488 bug_42428 conf_to_str import_py_err
bug_35347 bug_38194 bug_45517 conf_user_autoapply import_py propagate_properties
bug_38206 bug_61144 conf_user_passive_dep override1 purge
bug_39809 case_sensitivity export_oldopts override2 reference)
foreach( test ${QMtests})
GAUDI_QMTEST_TEST(gaudi.${test} ENVIRONMENT
JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/tests/pyjobopts
PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/tests/python )
endforeach()
#---Combined Tests-----------------------------------------------------------
GAUDI_QMTEST_TEST( gaudi.pickle TESTS gaudi.pickle_write gaudi.pickle_read ENVIRONMENT
JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/tests/pyjobopts
PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/tests/python )
GAUDI_QMTEST_TEST( gaudi.bug_36742 TESTS gaudi.bug_36742 gaudi.bug_36742b ENVIRONMENT
JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/tests/pyjobopts
PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/tests/python )
gaudi_add_test(QMTest QMTEST
ENVIRONMENT
JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/tests/pyjobopts:${CMAKE_CURRENT_SOURCE_DIR}/tests
PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/tests/python)
......@@ -10,6 +10,7 @@ find_package(Boost COMPONENTS python)
find_package(CLHEP)
find_package(GSL)
find_package(PythonLibs)
find_package(RELAX)
#---Libraries---------------------------------------------------------------
set( GaudiExamples_srcs AbortEvent/*.cpp
......@@ -67,92 +68,15 @@ gaudi_add_dictionary(GaudiExamples src/POOLIO/dict.h src/POOLIO/dict.xml LINK_L
#---Tests-------------------------------------------------------------------
GAUDI_FRAMEWORK_TEST(Properties options/Properties.opts )
GAUDI_FRAMEWORK_TEST(AlgTools options/AlgTools.opts )
set(QMTests
abort_event
aida2root
aida2rootex
algerraud
algorithm_destructor
algsequencer
algsequencer_pyopts
algtools
algtools2
algtools_pyopts
array_properties
auditors_user_timing
boost_array_properties
bug_30209_namespace_in_sequencer
bug_34121_tool_properties_in_python
bug_35913
bug_38882
bug_41136
colormsg
configurableuser
counterex
counterex_py
countersvcalg
dataondemand
errorlog
event_timeout
ext_props_opts
ext_props_pyopts
extended_properties2
fastcontainers
gaudicommontests
gaudipython_mix
gsltools
histo_ascii_dump
histoex
histoex1
histoex2
histograms
history
histoutilsex
incidentsvc
init_loop_check_off
init_loop_check_on
maps
ntuples
particlepropsvc
properties
qotdalg
randomnumber
selections
signal_handler
statsvcalg
statuscodesvc
stringkey
templatedalg
templatedalg_pyopts
timing
tupleex
tupleex1
tupleex2
tupleex3
tupleex4
tupleex_py )
#----Not supported tests on this platform-----------------------------------------------------------
# datalistener (MonALISA...)
# gaudimt
foreach( test ${QMTests})
GAUDI_QMTEST_TEST(gaudiexamples.${test} )
endforeach()
#---Groups of QMtests-------------------------------------------------------------------------------
GAUDI_QMTEST_TEST(gaudiexamples.poolio TESTS gaudiexamples.pooliowrite gaudiexamples.poolioread
gaudiexamples.pooliocollwrite gaudiexamples.pooliocollread
gaudiexamples.poolioextcollwrite gaudiexamples.poolioextcollread )
GAUDI_QMTEST_TEST(gaudiexamples.evtcol TESTS gaudiexamples.evtcolwrite gaudiexamples.evtcolread
gaudiexamples.evtcolsex_prepare gaudiexamples.evtcolsex_write gaudiexamples.evtcolsex_read)
GAUDI_QMTEST_TEST(gaudiexamples.thist TESTS gaudiexamples.thistwrite gaudiexamples.thistread)
GAUDI_QMTEST_TEST(gaudiexamples.return_codes)
GAUDI_QMTEST_TEST(gaudiexamples.bug)
gaudi_add_test(Properties FRAMEWORK options/Properties.opts ENVIRONMENT JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/options)
gaudi_add_test(AlgTools FRAMEWORK options/AlgTools.opts ENVIRONMENT JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/options)
gaudi_add_test(QMTest QMTEST
ENVIRONMENT
STDOPTS=${CMAKE_CURRENT_SOURCE_DIR}/options
JOBOPTSEARCHPATH=${CMAKE_CURRENT_SOURCE_DIR}/options
GAUDIEXAMPLESROOT=${CMAKE_CURRENT_SOURCE_DIR}
PYTHONPATH=${CMAKE_CURRENT_SOURCE_DIR}/tests/qmtest)
SET(GAUDIEXAMPLES_ENVIRONMENT STDOPTS=${CMAKE_SOURCE_DIR}/GaudiExamples/options
JOBOPTSEARCHPATH+=${CMAKE_SOURCE_DIR}/GaudiExamples/options
......
......@@ -28,6 +28,8 @@ gaudi_add_unit_test(Parsers_test ../tests/src/parsers.cpp
gaudi_add_unit_test(test_headers_build ../tests/src/test_headers_build.cpp
LINK_LIBRARIES GaudiKernel)
set_property(TEST GaudiKernel.PathResolver_test PROPERTY WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests)
#---Dictionaries------------------------------------------------------------
gaudi_add_dictionary(GaudiKernel dict/dictionary.h dict/dictionary.xml LINK_LIBRARIES GaudiKernel)
......@@ -39,9 +41,7 @@ GAUDI_INSTALL_PYTHON_MODULES()
GAUDI_INSTALL_SCRIPTS()
#---Test-----------------------------------------------------------------------
foreach(test dirsearchpath pathresolver serializestl gaudi_time)
GAUDI_QMTEST_TEST(gaudikernel.${test})
endforeach()
gaudi_add_test(QMTest QMTEST ENVIRONMENT GAUDIKERNELROOT=${CMAKE_CURRENT_SOURCE_DIR})
#---Special options
if(HIDE_WARNINGS)
......
......@@ -25,4 +25,4 @@ if(BUILD_TESTS)
endif()
#---Test-----------------------------------------------------------------------
GAUDI_QMTEST_TEST(gaudisvc.gaudisvctest)
gaudi_add_test(QMTest QMTEST ENVIRONMENT GAUDISVCROOT=${CMAKE_CURRENT_SOURCE_DIR})
......@@ -751,56 +751,88 @@ function(gaudi_add_unit_test executable)
LINK_LIBRARIES ${ARG_LINK_LIBRARIES} CppUnit
INCLUDE_DIRS ${ARG_INCLUDE_DIRS} CppUnit)
gaudi_get_package_name(package)
get_target_property(exec_suffix ${executable} SUFFIX)
add_test(${executable} ${env_cmd} -p ${ld_library_path}=. ${CMAKE_BINARY_DIR}/${executable}${exec_suffix})
if(NOT exec_suffix)
set(exec_suffix)
endif()
add_test(${package}.${executable}
${env_cmd}
-p ${ld_library_path}=.
-p ${ld_library_path}=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
-p PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
${executable}${exec_suffix})
#----Installation details-------------------------------------------------------
install(TARGETS ${executable} RUNTIME DESTINATION ${bin})
endif()
endfunction()
#---------------------------------------------------------------------------------------------------
#---GAUDI_FRAMEWORK_TEST( <name> conf1 conf2 ... ENVIRONMENT env=val ...)
#---------------------------------------------------------------------------------------------------
function(GAUDI_FRAMEWORK_TEST name)
if(BUILD_TESTS)
CMAKE_PARSE_ARGUMENTS(ARG "" "" "ENVIRONMENT" ${ARGN})
foreach( optfile ${ARG_UNPARSED_ARGUMENTS} )
if( IS_ABSOLUTE ${optfile})
set( optfiles ${optfiles} ${optfile})
#-------------------------------------------------------------------------------
# gaudi_add_test(<name>
# [FRAMEWORK options1 options2 ...|QMTEST|COMMAND cmd args ...]
# [ENVIRONMENT variable=value ...])
#
#-------------------------------------------------------------------------------
function(gaudi_add_test name)
CMAKE_PARSE_ARGUMENTS(ARG "QMTEST" "" "ENVIRONMENT;FRAMEWORK;COMMAND" ${ARGN})
gaudi_get_package_name(package)
if(ARG_QMTEST)
set(ARG_ENVIRONMENT ${ARG_ENVIRONMENT}
QMTESTLOCALDIR=${CMAKE_CURRENT_SOURCE_DIR}/tests/qmtest
QMTESTRESULTS=${CMAKE_CURRENT_BINARY_DIR}/tests/qmtest/results.qmr
QMTESTRESULTSDIR=${CMAKE_CURRENT_BINARY_DIR}/tests/qmtest)
set(cmdline run_qmtest.py ${package})
elseif(ARG_FRAMEWORK)
foreach(optfile ${ARG_FRAMEWORK})
if(IS_ABSOLUTE ${optfile})
set(optfiles ${optfiles} ${optfile})
else()
set( optfiles ${optfiles} ${CMAKE_CURRENT_SOURCE_DIR}/${optfile})
set(optfiles ${optfiles} ${CMAKE_CURRENT_SOURCE_DIR}/${optfile})
endif()
endforeach()
add_test(${name} ${CMAKE_INSTALL_PREFIX}/scripts/testwrap${ssuffix} ${CMAKE_INSTALL_PREFIX}/setup${ssuffix} "." ${gaudirun_cmd} ${optfiles})
set_property(TEST ${name} PROPERTY ENVIRONMENT
LD_LIBRARY_PATH=${CMAKE_CURRENT_BINARY_DIR}:$ENV{LD_LIBRARY_PATH}
${ARG_ENVIRONMENT})
endif()
endfunction()
set(cmdline ${gaudirun_cmd} ${optfiles})
#---------------------------------------------------------------------------------------------------
#---GAUDI_QMTEST_TEST( <name> TESTS qmtest1 qmtest2 ... ENVIRONMENT env=val ...)
#---------------------------------------------------------------------------------------------------
function(GAUDI_QMTEST_TEST name)
if(BUILD_TESTS)
CMAKE_PARSE_ARGUMENTS(ARG "" "" "TESTS;ENVIRONMENT" ${ARGN})
foreach(arg ${ARG_TESTS})
set(tests ${tests} ${arg})
endforeach()
if( NOT tests )
set(tests ${name})
endif()
find_package(QMTest QUIET)
add_test(${name} ${CMAKE_INSTALL_PREFIX}/scripts/testwrap${ssuffix} ${CMAKE_INSTALL_PREFIX}/setup${ssuffix}
${CMAKE_CURRENT_SOURCE_DIR}/tests/qmtest
qmtest run ${tests})
set_property(TEST ${name} PROPERTY ENVIRONMENT
LD_LIBRARY_PATH=${CMAKE_CURRENT_BINARY_DIR}:$ENV{LD_LIBRARY_PATH}
QMTEST_CLASS_PATH=${CMAKE_SOURCE_DIR}/GaudiPolicy/qmtest_classes
${ARG_ENVIRONMENT})
elseif(ARG_COMMAND)
set(cmdline ${ARG_COMMAND})
else()
message(FATAL_ERROR "Type of test '${name}' not declared")
endif()
endfunction()
foreach(var ${ARG_ENVIRONMENT})
set(extra_env ${extra_env} -s ${var})
endforeach()
# FIXME: the runtime environment is hacked
find_package(RELAX QUIET)
# Boost_LIBRARY_DIR contains 2 entries: optimized and debug
list(GET Boost_LIBRARY_DIRS 0 bld)
list(GET RELAX_LIBRARY_DIRS 0 rld)
add_test(${package}.${name}
${env_cmd}
${extra_env}
-p ${ld_library_path}=.
-p ${ld_library_path}=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
-p PATH=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
-p QMTEST_CLASS_PATH=${CMAKE_SOURCE_DIR}/GaudiPolicy/qmtest_classes
-s GAUDI_QMTEST_HTML_OUTPUT=${CMAKE_BINARY_DIR}/test_results
-p PATH=${CMAKE_INSTALL_PREFIX}/scripts
-p PYTHONPATH=${CMAKE_INSTALL_PREFIX}/python
-p PYTHONPATH=${CMAKE_INSTALL_PREFIX}/python/lib-dynload
-p ${ld_library_path}=${ROOTSYS}/lib
-p ${ld_library_path}=${rld}
-p ${ld_library_path}=${bld}
-p PYTHONPATH=${ROOTSYS}/lib
${cmdline})
endfunction()
#---------------------------------------------------------------------------------------------------
# gaudi_install_headers(dir1 dir2 ...)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment