From e0b06752424bf0b9d7d0eab9270a876170f3340e Mon Sep 17 00:00:00 2001 From: Andrea De Vita Date: Fri, 26 Sep 2025 17:41:47 +0200 Subject: [PATCH 1/6] FIX test_EventStats --- GaudiTutorial/EventStats/CMakeLists.txt | 7 +++++-- test/CMakeLists.txt | 18 ------------------ 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/GaudiTutorial/EventStats/CMakeLists.txt b/GaudiTutorial/EventStats/CMakeLists.txt index 91df01a..ab29bc2 100644 --- a/GaudiTutorial/EventStats/CMakeLists.txt +++ b/GaudiTutorial/EventStats/CMakeLists.txt @@ -17,14 +17,17 @@ See the License for the specific language governing permissions and limitations under the License. ]] file(GLOB _plugin_sources src/components/*.cpp) -gaudi_add_module(EventStatsPlugins + +set(PackageName EventStats) + +gaudi_add_module(${PackageName} SOURCES ${_plugin_sources} LINK Gaudi::GaudiKernel k4FWCore::k4FWCore EDM4HEP::edm4hep ) -install(TARGETS EventStatsPlugins +install(TARGETS ${PackageName} EXPORT ${CMAKE_PROJECT_NAME}Targets RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT bin LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" COMPONENT shlib diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 37b910f..6cff024 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -17,39 +17,21 @@ See the License for the specific language governing permissions and limitations under the License. ]] -function(set_test_env _testname) - set_property(TEST ${_testname} APPEND PROPERTY ENVIRONMENT - "ROOT_INCLUDE_PATH=$<$:$/../include>:$<$:$/../include>:$ENV{ROOT_INCLUDE_PATH}" - ) - set_property(TEST ${_testname} APPEND PROPERTY ENVIRONMENT - "LD_LIBRARY_PATH=${CMAKE_INSTALL_PREFIX}/lib64:${PROJECT_BINARY_DIR}:${PROJECT_BINARY_DIR}/${CMAKE_PROJECT_NAME}:${PROJECT_BINARY_DIR}/genConfDir/${PackageName}:<$:$>:$<$:$>:$<$:$>:$ENV{LD_LIBRARY_PATH}" - ) - set_property(TEST ${_testname} APPEND PROPERTY ENVIRONMENT - "PYTHONPATH=${CMAKE_BINARY_DIR}:${PROJECT_BINARY_DIR}/genConfDir:$ENV{PYTHONPATH}" - ) - set_property(TEST ${_testname} APPEND PROPERTY ENVIRONMENT - "GAUDI_PLUGIN_PATH=${CMAKE_BINARY_DIR}/.plugins:${CMAKE_INSTALL_PREFIX}/lib64:$ENV{GAUDI_PLUGIN_PATH}" - ) - -endfunction() add_test(NAME test_EventStats WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND k4run GaudiTutorial/EventStats/options/runEventStatsSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_eventStats.root) -set_test_env(test_EventStats) add_test(NAME test_MoliereRadius WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND k4run GaudiTutorial/MoliereRadiusFunctional/options/runMoliereRadiusSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_moliereRadius.root) -set_test_env(test_MoliereRadius) add_test(NAME test_RandomNoiseDigitizer WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND k4run GaudiTutorial/RandomNoiseDigitizer/options/runRandomNoiseDigitizerSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_noiseDigitizer.root) -set_test_env(test_MoliereRadius) # For LD_LIBRARY_PATH # ${PROJECT_BINARY_DIR} # The files .components and .confdb are here From 0ddc4b2b4e8675fe7895db848d43eac9dc08a2da Mon Sep 17 00:00:00 2001 From: Andrea De Vita Date: Fri, 26 Sep 2025 18:01:12 +0200 Subject: [PATCH 2/6] USE k4WCore workaround --- test/CMakeLists.txt | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6cff024..2440a13 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -17,13 +17,34 @@ See the License for the specific language governing permissions and limitations under the License. ]] - - +# Function to set the environment variables for tests +function(set_test_env testname) + # ROOT include path + set_property(TEST ${testname} APPEND PROPERTY ENVIRONMENT + "ROOT_INCLUDE_PATH=$<$:$/../include>:$<$:$/../include>:$ENV{ROOT_INCLUDE_PATH}" + ) + + # LD_LIBRARY_PATH: include EventStats build and genConf + set_property(TEST ${testname} APPEND PROPERTY ENVIRONMENT + "LD_LIBRARY_PATH=${PROJECT_BINARY_DIR}:${PROJECT_BINARY_DIR}/${PROJECT_NAME}:${PROJECT_BINARY_DIR}/${PROJECT_NAME}/genConfDir/${PROJECT_NAME}:${PROJECT_BINARY_DIR}/test:${PROJECT_BINARY_DIR}/test/genConfDir:${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats:${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats/genConfDir/EventStats:$<$:$>:$<$:$>:$<$:$>:$ENV{LD_LIBRARY_PATH}" + ) + + # PYTHONPATH: include EventStats genConf + set_property(TEST ${testname} APPEND PROPERTY ENVIRONMENT + "PYTHONPATH=${PROJECT_BINARY_DIR}/test/genConfDir:${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats/genConfDir:$ENV{PYTHONPATH}" + ) + + # GAUDI_PLUGIN_PATH: add EventStats + set_property(TEST ${testname} APPEND PROPERTY ENVIRONMENT + "GAUDI_PLUGIN_PATH=${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats:${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats/genConfDir/EventStats:$ENV{GAUDI_PLUGIN_PATH}" + ) +endfunction() add_test(NAME test_EventStats WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND k4run GaudiTutorial/EventStats/options/runEventStatsSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_eventStats.root) +set_test_env(test_EventStats) add_test(NAME test_MoliereRadius WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} From da2a940b1caa83be7eb9a7e866906aa175a8d89d Mon Sep 17 00:00:00 2001 From: Andrea De Vita Date: Sun, 28 Sep 2025 13:54:00 +0200 Subject: [PATCH 3/6] Minor Fix --- CMakeLists.txt | 3 ++- GaudiTutorial/CMakeLists.txt | 3 +++ test/CMakeLists.txt | 37 ++++++------------------------------ 3 files changed, 11 insertions(+), 32 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f17718a..6a8df6f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -19,7 +19,8 @@ limitations under the License. CMAKE_MINIMUM_REQUIRED(VERSION 3.12) -project(GaudiTutorial LANGUAGES CXX) +project(SoftwareTutorials LANGUAGES CXX) +message(STATUS "PROJECT_NAME = ${PROJECT_NAME}") # please keep this layout for version setting, used by the automatic tagging script set(PACKAGE_VERSION_MAJOR 1) diff --git a/GaudiTutorial/CMakeLists.txt b/GaudiTutorial/CMakeLists.txt index d4028dd..7287530 100644 --- a/GaudiTutorial/CMakeLists.txt +++ b/GaudiTutorial/CMakeLists.txt @@ -16,6 +16,9 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ]] + +project(GaudiTutorial LANGUAGES CXX) + add_subdirectory(EventStats) add_subdirectory(MoliereRadiusFunctional) add_subdirectory(RandomNoiseDigitizer) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 2440a13..88ffd06 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -17,42 +17,17 @@ See the License for the specific language governing permissions and limitations under the License. ]] -# Function to set the environment variables for tests -function(set_test_env testname) - # ROOT include path - set_property(TEST ${testname} APPEND PROPERTY ENVIRONMENT - "ROOT_INCLUDE_PATH=$<$:$/../include>:$<$:$/../include>:$ENV{ROOT_INCLUDE_PATH}" - ) - - # LD_LIBRARY_PATH: include EventStats build and genConf - set_property(TEST ${testname} APPEND PROPERTY ENVIRONMENT - "LD_LIBRARY_PATH=${PROJECT_BINARY_DIR}:${PROJECT_BINARY_DIR}/${PROJECT_NAME}:${PROJECT_BINARY_DIR}/${PROJECT_NAME}/genConfDir/${PROJECT_NAME}:${PROJECT_BINARY_DIR}/test:${PROJECT_BINARY_DIR}/test/genConfDir:${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats:${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats/genConfDir/EventStats:$<$:$>:$<$:$>:$<$:$>:$ENV{LD_LIBRARY_PATH}" - ) - - # PYTHONPATH: include EventStats genConf - set_property(TEST ${testname} APPEND PROPERTY ENVIRONMENT - "PYTHONPATH=${PROJECT_BINARY_DIR}/test/genConfDir:${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats/genConfDir:$ENV{PYTHONPATH}" - ) - - # GAUDI_PLUGIN_PATH: add EventStats - set_property(TEST ${testname} APPEND PROPERTY ENVIRONMENT - "GAUDI_PLUGIN_PATH=${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats:${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats/genConfDir/EventStats:$ENV{GAUDI_PLUGIN_PATH}" - ) -endfunction() - - add_test(NAME test_EventStats WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} COMMAND k4run GaudiTutorial/EventStats/options/runEventStatsSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_eventStats.root) -set_test_env(test_EventStats) -add_test(NAME test_MoliereRadius - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - COMMAND k4run GaudiTutorial/MoliereRadiusFunctional/options/runMoliereRadiusSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_moliereRadius.root) +# add_test(NAME test_MoliereRadius +# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +# COMMAND k4run GaudiTutorial/MoliereRadiusFunctional/options/runMoliereRadiusSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_moliereRadius.root) -add_test(NAME test_RandomNoiseDigitizer - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - COMMAND k4run GaudiTutorial/RandomNoiseDigitizer/options/runRandomNoiseDigitizerSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_noiseDigitizer.root) +# add_test(NAME test_RandomNoiseDigitizer +# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} +# COMMAND k4run GaudiTutorial/RandomNoiseDigitizer/options/runRandomNoiseDigitizerSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_noiseDigitizer.root) # For LD_LIBRARY_PATH # ${PROJECT_BINARY_DIR} # The files .components and .confdb are here From 0b20450c1c6ca4c4b48d1e014df636a8b7c81d4b Mon Sep 17 00:00:00 2001 From: Andrea De Vita Date: Sun, 28 Sep 2025 14:03:09 +0200 Subject: [PATCH 4/6] FIX path --- test/CMakeLists.txt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 88ffd06..e8c5135 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -50,17 +50,21 @@ get_filename_component(CURRENT_DIR_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME) set(test_environment "\ LD_LIBRARY_PATH=\ ${PROJECT_BINARY_DIR}:\ +${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats:\ ${PROJECT_BINARY_DIR}/${PROJECT_NAME}:\ ${CMAKE_CURRENT_BINARY_DIR}:\ ${CMAKE_CURRENT_BINARY_DIR}/genConfDir/${CURRENT_DIR_NAME}:\ $ENV{LD_LIBRARY_PATH};\ \ PYTHONPATH=\ +${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats/genConfDir:\ ${PROJECT_BINARY_DIR}/${PROJECT_NAME}/genConfDir:\ ${CMAKE_CURRENT_BINARY_DIR}/genConfDir:\ $ENV{PYTHONPATH};\ -" -) +") get_property(test_names DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY TESTS) set_tests_properties(${test_names} PROPERTIES ENVIRONMENT "${test_environment}") +message(STATUS "================ Test Environment ================") +message(STATUS "${test_environment}") +message(STATUS "=================================================") \ No newline at end of file From ed9f11d0b52f269359072a6e6787a0af82d20bdc Mon Sep 17 00:00:00 2001 From: Andrea De Vita Date: Sun, 28 Sep 2025 14:12:48 +0200 Subject: [PATCH 5/6] FIX test paths --- GaudiTutorial/CMakeLists.txt | 16 +--------------- test/CMakeLists.txt | 36 ++++++++++++++++++++++++++++-------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/GaudiTutorial/CMakeLists.txt b/GaudiTutorial/CMakeLists.txt index 7287530..345693a 100644 --- a/GaudiTutorial/CMakeLists.txt +++ b/GaudiTutorial/CMakeLists.txt @@ -21,18 +21,4 @@ project(GaudiTutorial LANGUAGES CXX) add_subdirectory(EventStats) add_subdirectory(MoliereRadiusFunctional) -add_subdirectory(RandomNoiseDigitizer) - -execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory - ${PROJECT_SOURCE_DIR}/GaudiTutorial/data) - -set(SIM_FILE ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root) - -if(NOT EXISTS ${SIM_FILE}) - message(STATUS "Downloading simpleCalo_simulation.root ...") - execute_process( - COMMAND wget -O ${SIM_FILE} https://fccsw.web.cern.ch/fccsw/tutorials/DRD6_2025_Ancona/simpleCalo_simulation.root - ) -else() - message(STATUS "File already exists: ${SIM_FILE}, skipping download.") -endif() +add_subdirectory(RandomNoiseDigitizer) \ No newline at end of file diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index e8c5135..2c3200b 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -18,16 +18,16 @@ limitations under the License. ]] add_test(NAME test_EventStats - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - COMMAND k4run GaudiTutorial/EventStats/options/runEventStatsSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_eventStats.root) + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + COMMAND k4run GaudiTutorial/EventStats/options/runEventStatsSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_eventStats.root) -# add_test(NAME test_MoliereRadius -# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} -# COMMAND k4run GaudiTutorial/MoliereRadiusFunctional/options/runMoliereRadiusSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_moliereRadius.root) +add_test(NAME test_MoliereRadius + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + COMMAND k4run GaudiTutorial/MoliereRadiusFunctional/options/runMoliereRadiusSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_moliereRadius.root) -# add_test(NAME test_RandomNoiseDigitizer -# WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} -# COMMAND k4run GaudiTutorial/RandomNoiseDigitizer/options/runRandomNoiseDigitizerSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_noiseDigitizer.root) +add_test(NAME test_RandomNoiseDigitizer + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + COMMAND k4run GaudiTutorial/RandomNoiseDigitizer/options/runRandomNoiseDigitizerSolution.py --IOSvc.Input ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root --IOSvc.Output ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_noiseDigitizer.root) # For LD_LIBRARY_PATH # ${PROJECT_BINARY_DIR} # The files .components and .confdb are here @@ -45,12 +45,30 @@ add_test(NAME test_EventStats # See, for example: # https://github.com/key4hep/k4FWCore/blob/42497b71c23425a3a26648f30a1285a499dcda28/test/k4FWCoreTest/CMakeLists.txt#L71 + +execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory + ${PROJECT_SOURCE_DIR}/GaudiTutorial/data) + +set(SIM_FILE ${PROJECT_SOURCE_DIR}/GaudiTutorial/data/simpleCalo_simulation.root) + +if(NOT EXISTS ${SIM_FILE}) + message(STATUS "Downloading simpleCalo_simulation.root ...") + execute_process( + COMMAND wget -O ${SIM_FILE} https://fccsw.web.cern.ch/fccsw/tutorials/DRD6_2025_Ancona/simpleCalo_simulation.root + ) +else() + message(STATUS "File already exists: ${SIM_FILE}, skipping download.") +endif() + + get_filename_component(CURRENT_DIR_NAME ${CMAKE_CURRENT_SOURCE_DIR} NAME) set(test_environment "\ LD_LIBRARY_PATH=\ ${PROJECT_BINARY_DIR}:\ ${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats:\ +${PROJECT_BINARY_DIR}/GaudiTutorial/MoliereRadiusFunctional:\ +${PROJECT_BINARY_DIR}/GaudiTutorial/RandomNoiseDigitizer:\ ${PROJECT_BINARY_DIR}/${PROJECT_NAME}:\ ${CMAKE_CURRENT_BINARY_DIR}:\ ${CMAKE_CURRENT_BINARY_DIR}/genConfDir/${CURRENT_DIR_NAME}:\ @@ -58,6 +76,8 @@ $ENV{LD_LIBRARY_PATH};\ \ PYTHONPATH=\ ${PROJECT_BINARY_DIR}/GaudiTutorial/EventStats/genConfDir:\ +${PROJECT_BINARY_DIR}/GaudiTutorial/MoliereRadiusFunctional/genConfDir:\ +${PROJECT_BINARY_DIR}/GaudiTutorial/RandomNoiseDigitizer/genConfDir:\ ${PROJECT_BINARY_DIR}/${PROJECT_NAME}/genConfDir:\ ${CMAKE_CURRENT_BINARY_DIR}/genConfDir:\ $ENV{PYTHONPATH};\ From 723c3d2693b98471713e8fc0731c4589964b493e Mon Sep 17 00:00:00 2001 From: Andrea De Vita Date: Sun, 28 Sep 2025 14:18:50 +0200 Subject: [PATCH 6/6] Minor fix --- CMakeLists.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6a8df6f..1949b6f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,6 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.12) project(SoftwareTutorials LANGUAGES CXX) -message(STATUS "PROJECT_NAME = ${PROJECT_NAME}") # please keep this layout for version setting, used by the automatic tagging script set(PACKAGE_VERSION_MAJOR 1)