Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : new surf configuration mc-checkpoint
authorMarion Guthmuller <marion.guthmuller@loria.fr>
Wed, 20 Jun 2012 16:58:17 +0000 (18:58 +0200)
committerMarion Guthmuller <marion.guthmuller@loria.fr>
Wed, 20 Jun 2012 16:58:17 +0000 (18:58 +0200)
examples/msg/mc/CMakeLists.txt
src/surf/surf_config.c
src/xbt/xbt_main.c

index 34cf083..ca674e8 100644 (file)
@@ -16,6 +16,7 @@ add_executable(bugged2_liveness bugged2_liveness.c)
 add_executable(centralized_liveness centralized_liveness.c)
 add_executable(centralized_liveness_deadlock centralized_liveness_deadlock.c)
 add_executable(test_snapshot test_snapshot.c)
+add_executable(example example.c)
 
 target_link_libraries(centralized simgrid m )
 target_link_libraries(bugged1     simgrid m )
@@ -30,6 +31,7 @@ target_link_libraries(bugged2_liveness     simgrid m )
 target_link_libraries(centralized_liveness     simgrid m )
 target_link_libraries(centralized_liveness_deadlock     simgrid m )
 target_link_libraries(test_snapshot     simgrid m )
+target_link_libraries(example     simgrid m )
 endif(HAVE_MC)
 
 set(tesh_files
index 8a9fd60..28f00ec 100644 (file)
@@ -237,6 +237,14 @@ static void _surf_cfg_cb_model_check(const char *name, int pos)
   }
 }
 
+extern int _surf_do_mc_checkpoint;   /* this variable lives in xbt_main until I find a right location for it */
+
+static void _surf_cfg_cb_mc_checkpoint(const char *name, int pos)
+{
+  _surf_do_mc_checkpoint = xbt_cfg_get_int(_surf_cfg_set, name);
+
+}
+
 extern int _surf_do_verbose_exit;
 
 static void _surf_cfg_cb_verbose_exit(const char *name, int pos)
@@ -484,6 +492,14 @@ void surf_config_init(int *argc, char **argv)
        _surf_cfg_cb_model_check which sets it's value to 1 (instead of the default value 0)
        xbt_cfg_set_int(_surf_cfg_set, "model-check", default_value_int); */
 
+
+    /* do stateful model-check */
+    default_value_int = 0;
+    xbt_cfg_register(&_surf_cfg_set, "mc-checkpoint",
+                     "Activate the stateful model-checking of the \"simulated\" system (EXPERIMENTAL -- msg only for now), value corresponding to steps between each checkpoint",
+                     xbt_cfgelm_int, &default_value_int, 0, 1,
+                     _surf_cfg_cb_mc_checkpoint, NULL);
+    
     /* do verbose-exit */
     default_value_int = 1;
     xbt_cfg_register(&_surf_cfg_set, "verbose-exit",
index 4222d2d..892fd30 100644 (file)
@@ -27,6 +27,7 @@ char *xbt_binary_name = NULL;   /* Mandatory to retrieve neat backtraces */
 int xbt_initialized = 0;
 
 int _surf_do_model_check = 0;   /* this variable is used accros the libraries, and must be declared in XBT so that it's also defined in GRAS (not only in libsimgrid) */
+int _surf_do_mc_checkpoint = 0;   /* this variable is used accros the libraries, and must be declared in XBT so that it's also defined in GRAS (not only in libsimgrid) */
 
 /* Declare xbt_preinit and xbt_postexit as constructor/destructor of the library.
  * This is crude and rather compiler-specific, unfortunately.