From 5d6e2b005da294874b8cf58e7766c9d8138b7aaf Mon Sep 17 00:00:00 2001 From: Marion Guthmuller Date: Wed, 20 Jun 2012 18:58:17 +0200 Subject: [PATCH] model-checker : new surf configuration mc-checkpoint --- examples/msg/mc/CMakeLists.txt | 2 ++ src/surf/surf_config.c | 16 ++++++++++++++++ src/xbt/xbt_main.c | 1 + 3 files changed, 19 insertions(+) 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. -- 2.20.1