Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
change the way unit testing is handled by cmake. Put it all in one file only instead...
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Sun, 28 Nov 2010 10:45:08 +0000 (10:45 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Sun, 28 Nov 2010 10:45:08 +0000 (10:45 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@8706 48e7efb5-ca39-0410-a469-dd3cf9ba447f

buildtools/Cmake/MakeExeLib.cmake
buildtools/Cmake/UnitTesting.cmake
src/CMakeLists.txt [deleted file]
tools/sg_unit_extractor.pl

index 38c5134..90ced4c 100644 (file)
@@ -125,9 +125,6 @@ endif(enable_lib_static)
 
 ### Make EXEs
 
-#src/testall
-add_subdirectory(${PROJECT_DIRECTORY}/src)
-
 #tools/gras
 add_subdirectory(${PROJECT_DIRECTORY}/tools/gras)
 
index e2dc8b6..49ff43f 100644 (file)
+# 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
+       ${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
+       
+       ${PROJECT_DIRECTORY}/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}
        
-       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 a=rwx ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl
        
+               COMMAND ${PROJECT_DIRECTORY}/tools/sg_unit_extractor.pl ${TEST_CFILES}
        
-       WORKING_DIRECTORY ${PROJECT_DIRECTORY}/src
+               WORKING_DIRECTORY ${PROJECT_DIRECTORY}/src
        
-       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
-                                               )
+#              add_custom_target(units_files   
+#                      DEPENDS ${TEST_UNITS}
+#      )
        
 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 "${PROJECT_DIRECTORY}/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
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
deleted file mode 100644 (file)
index 9554134..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-cmake_minimum_required(VERSION 2.6)
-
-set(EXECUTABLE_OUTPUT_PATH "${PROJECT_DIRECTORY}/src/")
-
-set(USE_TEST_UNITS
-${TEST_UNITS}
-${PROJECT_DIRECTORY}/src/simgrid_units_main.c
-)
-
-set_source_files_properties(${USE_TEST_UNITS}
-PROPERTIES GENERATED true)
-
-add_executable(testall ${USE_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 units_files)
\ No newline at end of file
index 4b96fd8..6baa7b7 100755 (executable)
@@ -17,10 +17,13 @@ die "USAGE: $progname infile [infile+]\n"
 map {process_one($_)} @ARGV;
 
 sub process_one($) {
-    
     my $infile = shift;
     my $outfile;
     
+    print "$progname: processing $infile...\n";
+
+    $infile =~ s|src/|| unless (-e $infile);
+    
     $outfile =  $infile;
     $outfile =~ s/\.c$/_unit.c/;
     $outfile =~ s|.*/([^/]*)$|$1| if $outfile =~ m|/|;
@@ -32,7 +35,7 @@ sub process_one($) {
     my (@tests); # actual content
     
     open IN, "$infile" || die "$progname: Cannot open input file '$infile': $!\n";
-    
+
     my $takeit=0;
     my $line=0;
     my $beginline=0;