X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/e1ca3c23e6193b55f52918a2e957596d4d6d96ab..aa9d8bfe2bf176fa6b86b7db4acbbaff8ee85292:/buildtools/Cmake/UnitTesting.cmake diff --git a/buildtools/Cmake/UnitTesting.cmake b/buildtools/Cmake/UnitTesting.cmake index c651532bd5..152a2bb5bd 100644 --- a/buildtools/Cmake/UnitTesting.cmake +++ b/buildtools/Cmake/UnitTesting.cmake @@ -1,109 +1,82 @@ +# To add a new tested file, simply add the original file in +# TEST_CFILES and generated file in TEST_UNITS. The rest is automatic. + +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 + src/xbt/xbt_synchro.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 + ${CMAKE_CURRENT_BINARY_DIR}/src/xbt_synchro_unit.c + + ${CMAKE_CURRENT_BINARY_DIR}/src/simgrid_units_main.c +) + + + if(PERL_EXECUTABLE) ADD_CUSTOM_COMMAND( - OUTPUT ${PROJECT_DIRECTORY}/src/cunit_unit.c - ${PROJECT_DIRECTORY}/src/ex_unit.c - ${PROJECT_DIRECTORY}/src/dynar_unit.c - ${PROJECT_DIRECTORY}/src/dict_unit.c - ${PROJECT_DIRECTORY}/src/set_unit.c - ${PROJECT_DIRECTORY}/src/swag_unit.c - ${PROJECT_DIRECTORY}/src/xbt_str_unit.c - ${PROJECT_DIRECTORY}/src/xbt_strbuff_unit.c - ${PROJECT_DIRECTORY}/src/xbt_sha_unit.c - ${PROJECT_DIRECTORY}/src/config_unit.c - ${PROJECT_DIRECTORY}/src/xbt_synchro_unit.c + OUTPUT ${TEST_UNITS} - DEPENDS ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl - ${PROJECT_DIRECTORY}/src/xbt/cunit.c - ${PROJECT_DIRECTORY}/src/xbt/ex.c - ${PROJECT_DIRECTORY}/src/xbt/dynar.c - ${PROJECT_DIRECTORY}/src/xbt/dict.c - ${PROJECT_DIRECTORY}/src/xbt/set.c - ${PROJECT_DIRECTORY}/src/xbt/swag.c - ${PROJECT_DIRECTORY}/src/xbt/xbt_str.c - ${PROJECT_DIRECTORY}/src/xbt/xbt_strbuff.c - ${PROJECT_DIRECTORY}/src/xbt/xbt_sha.c - ${PROJECT_DIRECTORY}/src/xbt/config.c - ${PROJECT_DIRECTORY}/src/xbt/xbt_synchro.c + DEPENDS ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl + ${TEST_CFILES} - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/simgrid_units_main.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/cunit_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/ex_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/dynar_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/dict_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/set_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/swag_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/xbt_str_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/xbt_strbuff_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/xbt_sha_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/config_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f ${PROJECT_DIRECTORY}/src/xbt_synchro_unit.c - - COMMAND chmod a=rwx ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl + COMMAND ${CMAKE_COMMAND} -E remove -f ${TEST_UNITS} - #$(TEST_UNITS): $(TEST_CFILES) - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/cunit.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/ex.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/dynar.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/dict.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/set.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/swag.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/xbt_str.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/xbt_strbuff.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/xbt_sha.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/config.c - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/xbt_synchro.c + COMMAND chmod +x ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl - #@builddir@/simgrid_units_main.c: $(TEST_UNITS) - COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/cunit.c + COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl --root=src/ --outdir=${CMAKE_CURRENT_BINARY_DIR}/src/ ${TEST_CFILES} - WORKING_DIRECTORY ${PROJECT_DIRECTORY}/src + WORKING_DIRECTORY ${PROJECT_DIRECTORY} - COMMENT "Generating *_units files for testall..." + COMMENT "Generating *_units files for testall..." ) - add_custom_target(units_files - DEPENDS ${PROJECT_DIRECTORY}/src/cunit_unit.c - ${PROJECT_DIRECTORY}/src/ex_unit.c - ${PROJECT_DIRECTORY}/src/dynar_unit.c - ${PROJECT_DIRECTORY}/src/dict_unit.c - ${PROJECT_DIRECTORY}/src/set_unit.c - ${PROJECT_DIRECTORY}/src/swag_unit.c - ${PROJECT_DIRECTORY}/src/xbt_str_unit.c - ${PROJECT_DIRECTORY}/src/xbt_strbuff_unit.c - ${PROJECT_DIRECTORY}/src/xbt_sha_unit.c - ${PROJECT_DIRECTORY}/src/config_unit.c - ${PROJECT_DIRECTORY}/src/xbt_synchro_unit.c - ) else(PERL_EXECUTABLE) ADD_CUSTOM_COMMAND( - OUTPUT ${PROJECT_DIRECTORY}/src/cunit_unit.c - ${PROJECT_DIRECTORY}/src/ex_unit.c - ${PROJECT_DIRECTORY}/src/dynar_unit.c - ${PROJECT_DIRECTORY}/src/dict_unit.c - ${PROJECT_DIRECTORY}/src/set_unit.c - ${PROJECT_DIRECTORY}/src/swag_unit.c - ${PROJECT_DIRECTORY}/src/xbt_str_unit.c - ${PROJECT_DIRECTORY}/src/xbt_strbuff_unit.c - ${PROJECT_DIRECTORY}/src/xbt_sha_unit.c - ${PROJECT_DIRECTORY}/src/config_unit.c - ${PROJECT_DIRECTORY}/src/xbt_synchro_unit.c + OUTPUT ${TEST_UNITS} DEPENDS ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl - ${PROJECT_DIRECTORY}/src/xbt/cunit.c - ${PROJECT_DIRECTORY}/src/xbt/ex.c - ${PROJECT_DIRECTORY}/src/xbt/dynar.c - ${PROJECT_DIRECTORY}/src/xbt/dict.c - ${PROJECT_DIRECTORY}/src/xbt/set.c - ${PROJECT_DIRECTORY}/src/xbt/swag.c - ${PROJECT_DIRECTORY}/src/xbt/xbt_str.c - ${PROJECT_DIRECTORY}/src/xbt/xbt_strbuff.c - ${PROJECT_DIRECTORY}/src/xbt/xbt_sha.c - ${PROJECT_DIRECTORY}/src/xbt/config.c - ${PROJECT_DIRECTORY}/src/xbt/xbt_synchro.c + ${TEST_CFILES} - COMMAND ${CMAKE_COMMAND} message "Unit files need to be regenerated, but no Perl installed") + COMMAND ${CMAKE_COMMAND} message WARNING "Unit files need to be regenerated, but no Perl installed") endif(PERL_EXECUTABLE) + + +### Ensure the build of testall + +set_source_files_properties(${TEST_UNITS} PROPERTIES GENERATED true) + +set(EXECUTABLE_OUTPUT_PATH "${CMAKE_CURRENT_BINARY_DIR}/src/") +add_executable(testall ${TEST_UNITS}) + +### Add definitions for compile +if(NOT WIN32) + target_link_libraries(testall gras m) +else(NOT WIN32) + target_link_libraries(testall gras) +endif(NOT WIN32) + +add_dependencies(testall $(TEST_UNITS)) \ No newline at end of file