X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/ba5e8b528ff29715f5a9008137e117a9fbcc24b0..784dd701843ed092f51ac04a2958e81ab0a24bb9:/tools/cmake/UnitTesting.cmake diff --git a/tools/cmake/UnitTesting.cmake b/tools/cmake/UnitTesting.cmake index 2435bf64ef..16701f711a 100644 --- a/tools/cmake/UnitTesting.cmake +++ b/tools/cmake/UnitTesting.cmake @@ -1,71 +1,50 @@ -# To add a new tested file, simply add the original file in -# TEST_CFILES and generated file in TEST_UNITS. The rest is automatic. +# This file is in charge of the unit testing in SimGrid. +# See http://simgrid.gforge.inria.fr/simgrid/3.13/doc/inside_tests.html#inside_tests_add_units -set(TEST_CFILES - src/xbt/cunit.c - src/xbt/ex.c - src/xbt/dynar.c - src/xbt/dict.c - src/xbt/set.c - src/xbt/swag.c - src/xbt/xbt_str.c - src/xbt/xbt_strbuff.c - src/xbt/xbt_sha.c - src/xbt/config.c - ) -set(TEST_UNITS - ${CMAKE_CURRENT_BINARY_DIR}/src/cunit_unit.c - ${CMAKE_CURRENT_BINARY_DIR}/src/ex_unit.c - ${CMAKE_CURRENT_BINARY_DIR}/src/dynar_unit.c - ${CMAKE_CURRENT_BINARY_DIR}/src/dict_unit.c - ${CMAKE_CURRENT_BINARY_DIR}/src/set_unit.c - ${CMAKE_CURRENT_BINARY_DIR}/src/swag_unit.c - ${CMAKE_CURRENT_BINARY_DIR}/src/xbt_str_unit.c - ${CMAKE_CURRENT_BINARY_DIR}/src/xbt_strbuff_unit.c - ${CMAKE_CURRENT_BINARY_DIR}/src/xbt_sha_unit.c - ${CMAKE_CURRENT_BINARY_DIR}/src/config_unit.c +# To register a file containing unit tests, simply add it to +# FILES_CONTAINING_UNITTESTS and have a pleasant day. - ${CMAKE_CURRENT_BINARY_DIR}/src/simgrid_units_main.c - ) +set(FILES_CONTAINING_UNITTESTS + src/xbt/cunit.cpp + src/xbt/ex.cpp + src/xbt/dynar.cpp + src/xbt/dict.cpp + src/xbt/swag.c + src/xbt/xbt_str.cpp + src/xbt/config.cpp +) -if(HAVE_MC) - set(TEST_CFILES ${TEST_CFILES} +if(SIMGRID_HAVE_MC) + set(FILES_CONTAINING_UNITTESTS ${FILES_CONTAINING_UNITTESTS} src/mc/PageStore.cpp src/mc/mc_snapshot.cpp - ) - set(TEST_UNITS ${TEST_UNITS} - ${CMAKE_CURRENT_BINARY_DIR}/src/PageStore_unit.cpp - ${CMAKE_CURRENT_BINARY_DIR}/src/mc_snapshot_unit.cpp - ) + ) endif() -ADD_CUSTOM_COMMAND( - OUTPUT ${TEST_UNITS} - - DEPENDS ${CMAKE_HOME_DIRECTORY}/tools/sg_unit_extractor.pl - ${TEST_CFILES} - - COMMAND ${CMAKE_COMMAND} -E remove -f ${TEST_UNITS} +#### Nothing to change below this line to add a new tested file +################################################################ - COMMAND chmod +x ${CMAKE_HOME_DIRECTORY}/tools/sg_unit_extractor.pl +foreach(file ${FILES_CONTAINING_UNITTESTS}) + get_filename_component(basename ${file} NAME_WE) + get_filename_component(ext ${file} EXT) + set(EXTRACTED_TEST_SOURCE_FILES ${EXTRACTED_TEST_SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/src/${basename}_unit${ext}) +endforeach() + +set(EXTRACTED_TEST_SOURCE_FILES ${EXTRACTED_TEST_SOURCE_FILES} ${CMAKE_CURRENT_BINARY_DIR}/src/simgrid_units_main.c) - COMMAND ${CMAKE_HOME_DIRECTORY}/tools/sg_unit_extractor.pl --root=src/ --outdir=${CMAKE_CURRENT_BINARY_DIR}/src/ ${TEST_CFILES} - - WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY} +set_source_files_properties(${EXTRACTED_TEST_SOURCE_FILES} PROPERTIES GENERATED true) +ADD_CUSTOM_COMMAND( + OUTPUT ${EXTRACTED_TEST_SOURCE_FILES} + DEPENDS ${CMAKE_HOME_DIRECTORY}/tools/sg_unit_extractor.pl ${FILES_CONTAINING_UNITTESTS} COMMENT "Generating *_units files for testall..." - ) -### Ensure the build of testall - -set_source_files_properties(${TEST_UNITS} PROPERTIES GENERATED true) + WORKING_DIRECTORY ${CMAKE_HOME_DIRECTORY} + COMMAND ${CMAKE_COMMAND} -E remove -f ${EXTRACTED_TEST_SOURCE_FILES} + COMMAND chmod +x ${CMAKE_HOME_DIRECTORY}/tools/sg_unit_extractor.pl + COMMAND ${CMAKE_HOME_DIRECTORY}/tools/sg_unit_extractor.pl --root=src/ --outdir=${CMAKE_CURRENT_BINARY_DIR}/src/ ${FILES_CONTAINING_UNITTESTS} +) -set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}/src/") -add_executable(testall ${TEST_UNITS}) +add_executable (testall ${EXTRACTED_TEST_SOURCE_FILES}) +target_link_libraries(testall simgrid) -### Add definitions for compile -if(NOT WIN32) - target_link_libraries(testall simgrid m) -else() - target_link_libraries(testall simgrid) -endif()