Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
always regenerate the unit tests when possible, even if not in maintainer_mode
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 12 Nov 2010 15:22:06 +0000 (15:22 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Fri, 12 Nov 2010 15:22:06 +0000 (15:22 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8533 48e7efb5-ca39-0410-a469-dd3cf9ba447f

CMakeLists.txt
buildtools/Cmake/MaintainerMode.cmake
buildtools/Cmake/UnitTesting.cmake [new file with mode: 0644]

index da7ee4c..8e525e4 100644 (file)
@@ -134,6 +134,7 @@ include(${PROJECT_DIRECTORY}/buildtools/Cmake/DefinePackages.cmake)
 
 ### Build some Maintainer files
 include(${PROJECT_DIRECTORY}/buildtools/Cmake/MaintainerMode.cmake)
+include(${PROJECT_DIRECTORY}/buildtools/Cmake/UnitTesting.cmake)
 
 ### Setup gcc flags
 include(${PROJECT_DIRECTORY}/buildtools/Cmake/Flags.cmake)
index 477d66c..3157bee 100644 (file)
@@ -132,87 +132,6 @@ else(HAVE_FLEXML AND HAVE_FLEX  AND SED_EXE)
        message(FATAL_ERROR "Need to install all tools for maintainer mode !!!")
 endif(HAVE_FLEXML AND HAVE_FLEX  AND SED_EXE)
 
-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
-                       
-       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
-       
-       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
-       
-       #$(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
-       
-       #@builddir@/simgrid_units_main.c: $(TEST_UNITS)
-       COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/cunit.c
-       
-       WORKING_DIRECTORY ${PROJECT_DIRECTORY}/src
-       
-       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)
-       message(FATAL_ERROR "Install perl before use maintainer mode")
-endif(PERL_EXECUTABLE)
 
 endif(enable_maintainer_mode AND NOT WIN32)
 
diff --git a/buildtools/Cmake/UnitTesting.cmake b/buildtools/Cmake/UnitTesting.cmake
new file mode 100644 (file)
index 0000000..c651532
--- /dev/null
@@ -0,0 +1,109 @@
+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
+                       
+       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
+       
+       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
+       
+       #$(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
+       
+       #@builddir@/simgrid_units_main.c: $(TEST_UNITS)
+       COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl xbt/cunit.c
+       
+       WORKING_DIRECTORY ${PROJECT_DIRECTORY}/src
+       
+       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
+                       
+       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
+                       
+       COMMAND ${CMAKE_COMMAND} message "Unit files need to be regenerated, but no Perl installed")
+endif(PERL_EXECUTABLE)
+
+