From: Marion Guthmuller Date: Wed, 20 Jun 2012 16:58:17 +0000 (+0200) Subject: model-checker : new surf configuration mc-checkpoint X-Git-Tag: v3_8~544 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/5d6e2b005da294874b8cf58e7766c9d8138b7aaf model-checker : new surf configuration mc-checkpoint --- diff --git a/examples/msg/mc/CMakeLists.txt b/examples/msg/mc/CMakeLists.txt index 34cf083de3..ca674e8dfe 100644 --- a/examples/msg/mc/CMakeLists.txt +++ b/examples/msg/mc/CMakeLists.txt @@ -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 diff --git a/src/surf/surf_config.c b/src/surf/surf_config.c index 8a9fd60af8..28f00ec597 100644 --- a/src/surf/surf_config.c +++ b/src/surf/surf_config.c @@ -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", diff --git a/src/xbt/xbt_main.c b/src/xbt/xbt_main.c index 4222d2d593..892fd30d4b 100644 --- a/src/xbt/xbt_main.c +++ b/src/xbt/xbt_main.c @@ -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.