Geant4 Cross Reference |
1 # - Basic setup for testing Geant4 using CMake 1 # - Basic setup for testing Geant4 using CMake/CTest 2 # 2 # 3 #--------------------------------------------- 3 #----------------------------------------------------------------------- 4 # Integration and unit tests 4 # Integration and unit tests 5 # - "ENABLE_TESTING" means all tests under tes 5 # - "ENABLE_TESTING" means all tests under tests/ 6 option(GEANT4_ENABLE_TESTING "Enable and defin 6 option(GEANT4_ENABLE_TESTING "Enable and define all the tests of the project" OFF) 7 geant4_add_feature(GEANT4_ENABLE_TESTING "Enab 7 geant4_add_feature(GEANT4_ENABLE_TESTING "Enable and define all the tests of the project") 8 mark_as_advanced(GEANT4_ENABLE_TESTING) 8 mark_as_advanced(GEANT4_ENABLE_TESTING) 9 9 >> 10 # - "BUILD_TESTS" means all 'tests' in individual categories. >> 11 option(GEANT4_BUILD_TESTS "Build all the tests of the project" OFF) >> 12 geant4_add_feature(GEANT4_BUILD_TESTS "Build all the tests of the project") >> 13 mark_as_advanced(GEANT4_BUILD_TESTS) >> 14 10 #--------------------------------------------- 15 #----------------------------------------------------------------------- 11 # Configure CTest and relevant Geant4 settings 16 # Configure CTest and relevant Geant4 settings, if required 12 # 17 # 13 if(GEANT4_ENABLE_TESTING) 18 if(GEANT4_ENABLE_TESTING) 14 # - Core CTest 19 # - Core CTest 15 enable_testing() 20 enable_testing() 16 include(CTest) 21 include(CTest) 17 include(G4TestAPI) << 18 22 19 # - Geant4_DIR is needed to locate GeantConf 23 # - Geant4_DIR is needed to locate GeantConfig.cmake file required 20 # for tests and examples that are built as d << 24 # by tests and examples 21 # (as opposed to "build-and-test" type situa << 25 set(Geant4_DIR ${PROJECT_BINARY_DIR} CACHE PATH "Current build directory") 22 set(Geant4_DIR ${PROJECT_BINARY_DIR}) << 23 << 24 # - Base URL for test reference files << 25 set(GEANT4_TEST_REFERENCES_URL "http://cern. << 26 26 27 # - Add datasets to testing environment 27 # - Add datasets to testing environment 28 geant4_get_datasetnames(_dslist) 28 geant4_get_datasetnames(_dslist) 29 foreach(_ds ${_dslist}) 29 foreach(_ds ${_dslist}) 30 geant4_get_dataset_property(${_ds} ENVVAR 30 geant4_get_dataset_property(${_ds} ENVVAR _dsenvvar) 31 geant4_get_dataset_property(${_ds} BUILD_D 31 geant4_get_dataset_property(${_ds} BUILD_DIR _dspath) 32 list(APPEND GEANT4_TEST_ENVIRONMENT ${_dse 32 list(APPEND GEANT4_TEST_ENVIRONMENT ${_dsenvvar}=${_dspath}) 33 endforeach() 33 endforeach() 34 34 35 # - Add TOOLS_FONT_PATH to testing environme << 35 # - Add base URL for test reference files >> 36 set(GEANT4_TEST_REFERENCES_URL "http://cern.ch/geant4-data/stt/references/" CACHE >> 37 STRING "base URL for test reference files") >> 38 mark_as_advanced(GEANT4_TEST_REFERENCES_URL) >> 39 >> 40 # - Add TOOLS_FONT_PATH if freetype enabled 36 if(GEANT4_USE_FREETYPE) 41 if(GEANT4_USE_FREETYPE) 37 list(APPEND GEANT4_TEST_ENVIRONMENT TOOLS_ 42 list(APPEND GEANT4_TEST_ENVIRONMENT TOOLS_FONT_PATH=${PROJECT_SOURCE_DIR}/source/externals/g4tools/fonts) 38 endif() 43 endif() 39 44 40 # - Configure 'G4RunManagerFactory::CreateRu 45 # - Configure 'G4RunManagerFactory::CreateRunManager(G4RunManagerType::Default)' 41 # to use TBB if required << 46 # to use TBB 42 if(GEANT4_BUILD_MULTITHREADED AND GEANT4_USE 47 if(GEANT4_BUILD_MULTITHREADED AND GEANT4_USE_TBB) 43 list(APPEND GEANT4_TEST_ENVIRONMENT G4RUN_ 48 list(APPEND GEANT4_TEST_ENVIRONMENT G4RUN_MANAGER_TYPE=TBB) 44 endif() 49 endif() >> 50 endif() >> 51 >> 52 #----------------------------------------------------------------------- >> 53 # Add Unit Tests if required >> 54 # >> 55 if(GEANT4_BUILD_TESTS) >> 56 file(GLOB_RECURSE files RELATIVE ${PROJECT_SOURCE_DIR} source/CMakeLists.txt) >> 57 foreach( file ${files} ) >> 58 get_filename_component(path ${file} PATH) >> 59 if(path MATCHES "/test$") >> 60 add_subdirectory(${path}) >> 61 endif() >> 62 endforeach() 45 endif() 63 endif()