diff --git a/cmake/DD4hepBuild.cmake b/cmake/DD4hepBuild.cmake index c893ca3dd0d6831d46b460365dd6c9ff3277738f..c20c62d7bd1120df3222b7f798a4f65aa7939517 100644 --- a/cmake/DD4hepBuild.cmake +++ b/cmake/DD4hepBuild.cmake @@ -1392,7 +1392,7 @@ endmacro( dd4hep_configure_scripts ) # #--------------------------------------------------------------------------------------------------- function ( dd4hep_add_test_reg test_name ) - cmake_parse_arguments(ARG "BUILD_EXEC" "OUTPUT" "COMMAND;EXEC_ARGS;REGEX_PASS;REGEX_PASSED;REGEX_FAIL;REGEX_FAILED;REQUIRES" ${ARGN} ) + cmake_parse_arguments(ARG "BUILD_EXEC" "OUTPUT" "COMMAND;DEPENDS;EXEC_ARGS;REGEX_PASS;REGEX_PASSED;REGEX_FAIL;REGEX_FAILED;REQUIRES" ${ARGN} ) set ( missing ) set ( use_test 1 ) @@ -1444,6 +1444,10 @@ function ( dd4hep_add_test_reg test_name ) if ( NOT "${failed}" STREQUAL "" ) set_tests_properties( t_${test_name} PROPERTIES FAIL_REGULAR_EXPRESSION "${failed}" ) endif() + # Set test dependencies if present + foreach ( _dep ${ARG_DEPENDS} ) + set_tests_properties( t_${test_name} PROPERTIES DEPENDS t_${_dep} ) + endforeach() endif() endfunction() diff --git a/examples/DDDB/CMakeLists.txt b/examples/DDDB/CMakeLists.txt index 99879b78c20b92f7027fdd96c8ff820a567c26bd..f027cada6c96d268b863ca4f617f0ebf3966f6dd 100644 --- a/examples/DDDB/CMakeLists.txt +++ b/examples/DDDB/CMakeLists.txt @@ -48,6 +48,7 @@ if (DD4HEP_USE_XERCESC) COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_DDDB.sh" EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/run_dddb.sh -config DD4hep_ConditionsManagerInstaller + DEPENDS DDDB_extract_LONGTEST REGEX_PASS "\\+ Converted 12852 placements" REGEX_FAIL "EXCEPTION;Exception" ) @@ -57,6 +58,7 @@ if (DD4HEP_USE_XERCESC) COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_DDDB.sh" EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/run_dddb.sh -config DD4hep_ConditionsManagerInstaller + DEPENDS DDDB_extract_LONGTEST REGEX_PASS "\\+ Converted 9353 conditions" REGEX_FAIL "EXCEPTION;Exception" ) @@ -65,8 +67,8 @@ if (DD4HEP_USE_XERCESC) dd4hep_add_test_reg( DDDB_conditions_dump_simple_LONGTEST COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_DDDB.sh" EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/run_dddb.sh - -config DD4hep_ConditionsManagerInstaller - -exec DDDB_ConditionsSummary + -config DD4hep_ConditionsManagerInstaller -exec DDDB_ConditionsSummary + DEPENDS DDDB_extract_LONGTEST REGEX_PASS "\\+ DDDB Total Number of parameters: 13650 " REGEX_FAIL "EXCEPTION;Exception" ) @@ -77,6 +79,7 @@ if (DD4HEP_USE_XERCESC) EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/run_dddb.sh -config DD4hep_ConditionsManagerInstaller -end-plugin -plugin DDDB_DetectorDump -print DEBUG -end-plugin + DEPENDS DDDB_extract_LONGTEST REGEX_PASS "\\+ DDDB: Number of DetElements in the geometry: 6261" REGEX_FAIL "EXCEPTION;Exception" ) @@ -87,6 +90,7 @@ if (DD4HEP_USE_XERCESC) EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/run_dddb.sh -config DD4hep_ConditionsManagerInstaller -plugin DDDB_DetectorVolumeDump -print DEBUG + DEPENDS DDDB_extract_LONGTEST REGEX_PASS "\\+ DDDB: Number of DetElement placements: 6253" REGEX_FAIL "EXCEPTION;Exception" ) @@ -97,6 +101,7 @@ if (DD4HEP_USE_XERCESC) EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/run_dddb.sh -config DD4hep_ConditionsManagerInstaller -plugin DDDB_DetectorConditionKeysDump -print DEBUG + DEPENDS DDDB_extract_LONGTEST REGEX_PASS "\\+ DDDB: Number of DetElement condition keys: 9043" REGEX_FAIL "EXCEPTION;Exception" ) @@ -107,6 +112,7 @@ if (DD4HEP_USE_XERCESC) EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/run_dddb.sh -config DD4hep_ConditionsManagerInstaller -plugin DDDB_DetectorConditionDump -print DEBUG + DEPENDS DDDB_extract_LONGTEST REGEX_PASS "\\+ DDDBConditions Total Number of parameters: 346312 " REGEX_FAIL "EXCEPTION;Exception" ) @@ -117,6 +123,7 @@ if (DD4HEP_USE_XERCESC) EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/run_dddb.sh -config DD4hep_ConditionsManagerInstaller -plugin DDDB_DetectorAlignmentDump -print DEBUG + DEPENDS DDDB_extract_LONGTEST REGEX_PASS "\\+ DDDB: Number of attached alignments: 5408" REGEX_FAIL "EXCEPTION;Exception" ) @@ -127,6 +134,7 @@ if (DD4HEP_USE_XERCESC) EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/run_dddb.sh -config DD4hep_ConditionsManagerInstaller -plugin DDDB_DetElementConditionDump -print DEBUG + DEPENDS DDDB_extract_LONGTEST REGEX_PASS "\\+ DDDB: Total number of DetElement parameters: 13144" ) # @@ -136,6 +144,7 @@ if (DD4HEP_USE_XERCESC) EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/run_dddb.sh -config DD4hep_ConditionsManagerInstaller -plugin DDDB_DerivedCondTest -print DEBUG + DEPENDS DDDB_extract_LONGTEST REGEX_PASS "\\+ DDDB: Total Number of callbacks: 16215" REGEX_FAIL "EXCEPTION;Exception" ) @@ -146,6 +155,7 @@ if (DD4HEP_USE_XERCESC) EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/run_dddb.sh -config DD4hep_ConditionsManagerInstaller -plugin DDDB_DerivedAlignmentsTest -print DEBUG -turns 1 -access 3 + DEPENDS DDDB_extract_LONGTEST REGEX_PASS "\\+ DDDB: AlignmentManager: 9352 conditions \\(S:0,L:9352,C:0,M:0\\) alignments: \\(A:6200,M:0\\) for IOV:epoch\\(0\\)" REGEX_FAIL "EXCEPTION;Exception" ) @@ -156,6 +166,7 @@ if (DD4HEP_USE_XERCESC) EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/run_dddb.sh -config DD4hep_ConditionsManagerInstaller -plugin DDDB_AlignmentsAccessTest -print DEBUG + DEPENDS DDDB_extract_LONGTEST REGEX_PASS "\\+ DDDB: Accessed 5405 alignments from 5405 DetElement objects" REGEX_FAIL "EXCEPTION;Exception" ) @@ -164,6 +175,20 @@ if (DD4HEP_USE_XERCESC) dd4hep_add_test_reg( DDDB_clean_LONGTEST COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_DDDB.sh" EXEC_ARGS ${CMAKE_INSTALL_PREFIX}/bin/extract_dddb.sh -clean + DEPENDS DDDB_extract_LONGTEST + DDDB_alignment_access_LONGTEST + DDDB_alignment_derived_LONGTEST + DDDB_derived_conditions_LONGTEST + DDDB_detelement_conditions_dump_LONGTEST + DDDB_det_catalog_align_LONGTEST + DDDB_det_catalog_data_LONGTEST + DDDB_det_conditions_keys_LONGTEST + DDDB_det_volumes_LONGTEST + DDDB_det_elements_LONGTEST + DDDB_conditions_dump_simple_LONGTEST + DDDB_conditions_LONGTEST + DDDB_load_LONGTEST + DDDB_extract_LONGTEST REGEX_PASS "DDDB Database successfully removed" ) endif() diff --git a/examples/Persistency/CMakeLists.txt b/examples/Persistency/CMakeLists.txt index 8ed335005f02f359f31ac33d7ced28551a020907..eccb0ed23eaa339fc8813acb4daace1135d69be2 100644 --- a/examples/Persistency/CMakeLists.txt +++ b/examples/Persistency/CMakeLists.txt @@ -37,6 +37,7 @@ dd4hep_add_test_reg( Persist_Conditions_Restore COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_ClientTests.sh" EXEC_ARGS geoPluginRun -plugin DD4hep_PersistencyExample_read_cond -input Conditions.root + DEPENDS Persist_Conditions_Save REGEX_PASS "\\+\\+\\+ Read successfully 14 conditions. Result=172" REGEX_FAIL " ERROR ;EXCEPTION;Exception;FAILED" ) @@ -56,6 +57,7 @@ dd4hep_add_test_reg( Persist_MiniTel_Restore_LONGTEST COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_ClientTests.sh" EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader MiniTel_geometry.root + DEPENDS Persist_MiniTel_Save_LONGTEST REGEX_PASS "\\+\\+\\+ Successfully loaded detector description from file" REGEX_FAIL " ERROR ;EXCEPTION;Exception;FAILED" ) @@ -66,6 +68,7 @@ dd4hep_add_test_reg( Persist_MiniTel_Restore_VolMgr1_LONGTEST EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader MiniTel_geometry.root -plugin DD4hepCheckVolumeManager + DEPENDS Persist_MiniTel_Save_LONGTEST REGEX_PASS "\\+\\+\\+ PASSED Checked 10 VolumeManager contexts. Num.Errors: 0" REGEX_FAIL " ERROR ;EXCEPTION;Exception;FAILED" ) @@ -77,6 +80,7 @@ dd4hep_add_test_reg( Persist_MiniTel_Restore_Nominal_LONGTEST EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader MiniTel_geometry.root -plugin DD4hepCheckNominals + DEPENDS Persist_MiniTel_Save_LONGTEST REGEX_PASS "\\+\\+\\+ PASSED Checked 10 DetElements. Num.Errors: 0" ) # @@ -86,6 +90,7 @@ dd4hep_add_test_reg( Persist_MiniTel_Restore_Sensitives_LONGTEST EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader MiniTel_geometry.root -plugin DD4hepCheckSensitives + DEPENDS Persist_MiniTel_Save_LONGTEST REGEX_PASS "\\+\\+\\+ PASSED Checked 10 SensitiveDetector objects. Num.Errors: 0" REGEX_FAIL " ERROR ;EXCEPTION;Exception;FAILED" ) @@ -96,6 +101,7 @@ dd4hep_add_test_reg( Persist_MiniTel_Restore_Segmentations_LONGTEST EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader MiniTel_geometry.root -plugin DD4hepCheckSegmentations + DEPENDS Persist_MiniTel_Save_LONGTEST REGEX_PASS "\\+\\+\\+ PASSED Checked 10 readout segmentations. Num.Errors: 0" REGEX_FAIL " ERROR ;EXCEPTION;Exception;FAILED" ) @@ -106,6 +112,7 @@ dd4hep_add_test_reg( Persist_MiniTel_Restore_Readouts_LONGTEST EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader MiniTel_geometry.root -plugin DD4hepCheckReadouts + DEPENDS Persist_MiniTel_Save_LONGTEST REGEX_PASS "\\+\\+\\+ PASSED Checked 10 readout objects. Num.Errors: 0" REGEX_FAIL " ERROR ;EXCEPTION;Exception;FAILED" ) @@ -125,6 +132,7 @@ dd4hep_add_test_reg( Persist_CLICSiD_Restore_LONGTEST COMMAND "${CMAKE_INSTALL_PREFIX}/bin/run_test_ClientTests.sh" EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader CLICSiD_geometry.root + DEPENDS Persist_CLICSiD_Save_LONGTEST REGEX_PASS "\\+\\+\\+ Successfully loaded detector description from file" REGEX_FAIL " ERROR ;EXCEPTION;Exception;FAILED" ) @@ -135,6 +143,7 @@ dd4hep_add_test_reg( Persist_CLICSiD_Restore_VolMgr1_LONGTEST EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader CLICSiD_geometry.root -plugin DD4hepCheckVolumeManager + DEPENDS Persist_CLICSiD_Save_LONGTEST REGEX_PASS "\\+\\+\\+ PASSED Checked 29270 VolumeManager contexts. Num.Errors: 0" REGEX_FAIL " ERROR ;EXCEPTION;Exception;FAILED" ) @@ -145,6 +154,7 @@ dd4hep_add_test_reg( Persist_CLICSiD_Restore_VolMgr2_LONGTEST EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader CLICSiD_geometry.root -plugin DD4hepVolumeMgrTest SiTrackerBarrel + DEPENDS Persist_CLICSiD_Save_LONGTEST REGEX_PASS "\\+\\+\\+ PASSED: Checked 81306 objects. Num.Errors:0" REGEX_FAIL " ERROR ;EXCEPTION;Exception;FAILED" ) @@ -156,6 +166,7 @@ dd4hep_add_test_reg( Persist_CLICSiD_Restore_Nominal_LONGTEST EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader CLICSiD_geometry.root -plugin DD4hepCheckNominals + DEPENDS Persist_CLICSiD_Save_LONGTEST REGEX_PASS "\\+\\+\\+ FAILED Checked 15946 DetElements. Num.Errors: 50" ) # @@ -165,6 +176,7 @@ dd4hep_add_test_reg( Persist_CLICSiD_Restore_Sensitives_LONGTEST EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader CLICSiD_geometry.root -plugin DD4hepCheckSensitives + DEPENDS Persist_CLICSiD_Save_LONGTEST REGEX_PASS "\\+\\+\\+ PASSED Checked 14 SensitiveDetector objects. Num.Errors: 0" REGEX_FAIL " ERROR ;EXCEPTION;Exception;FAILED" ) @@ -175,6 +187,7 @@ dd4hep_add_test_reg( Persist_CLICSiD_Restore_Segmentations_LONGTEST EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader CLICSiD_geometry.root -plugin DD4hepCheckSegmentations + DEPENDS Persist_CLICSiD_Save_LONGTEST REGEX_PASS "\\+\\+\\+ PASSED Checked 9 readout segmentations. Num.Errors: 0" REGEX_FAIL " ERROR ;EXCEPTION;Exception;FAILED" ) @@ -185,6 +198,7 @@ dd4hep_add_test_reg( Persist_CLICSiD_Restore_Readouts_LONGTEST EXEC_ARGS geoPluginRun -print WARNING -plugin DD4hepRootLoader CLICSiD_geometry.root -plugin DD4hepCheckReadouts + DEPENDS Persist_CLICSiD_Save_LONGTEST REGEX_PASS "\\+\\+\\+ PASSED Checked 14 readout objects. Num.Errors: 0" REGEX_FAIL " ERROR ;EXCEPTION;Exception;FAILED" )