X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7a1d9713c8dd8a96686f75acb428b2e4dcb08c1f..204725ea21f601ccaaeba8fe256b319c3725683e:/src/mc/mc_config.cpp diff --git a/src/mc/mc_config.cpp b/src/mc/mc_config.cpp index 7707914061..e182f50540 100644 --- a/src/mc/mc_config.cpp +++ b/src/mc/mc_config.cpp @@ -8,13 +8,21 @@ #include "src/simgrid/sg_config.hpp" #include -#if SIMGRID_HAVE_MC +#if SIMGRID_HAVE_STATEFUL_MC #include #endif XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(xbt_cfg); -simgrid::mc::ModelCheckingMode simgrid::mc::model_checking_mode = simgrid::mc::ModelCheckingMode::NONE; +static simgrid::mc::ModelCheckingMode model_checking_mode = simgrid::mc::ModelCheckingMode::NONE; +simgrid::mc::ModelCheckingMode simgrid::mc::get_model_checking_mode() +{ + return model_checking_mode; +} +void simgrid::mc::set_model_checking_mode(simgrid::mc::ModelCheckingMode mode) +{ + model_checking_mode = mode; +} static void _mc_cfg_cb_check(const char* spec, bool more_check = true) { @@ -28,12 +36,14 @@ static void _mc_cfg_cb_check(const char* spec, bool more_check = true) simgrid::config::Flag _sg_mc_record_path{ "model-check/replay", "Model-check path to replay (as reported by SimGrid when a violation is reported)", "", [](std::string_view value) { - xbt_assert(simgrid::mc::model_checking_mode == simgrid::mc::ModelCheckingMode::NONE || - simgrid::mc::model_checking_mode == simgrid::mc::ModelCheckingMode::REPLAY, + if (value.empty()) // Ignore default value + return; + xbt_assert(simgrid::mc::get_model_checking_mode() == simgrid::mc::ModelCheckingMode::NONE || + simgrid::mc::get_model_checking_mode() == simgrid::mc::ModelCheckingMode::REPLAY, "Specifying a MC replay path is not allowed when running the model-checker in mode %s. " "Either remove the model-check/replay parameter, or execute your code out of simgrid-mc.", - to_c_str(simgrid::mc::model_checking_mode)); - simgrid::mc::model_checking_mode = simgrid::mc::ModelCheckingMode::REPLAY; + to_c_str(simgrid::mc::get_model_checking_mode())); + simgrid::mc::set_model_checking_mode(simgrid::mc::ModelCheckingMode::REPLAY); MC_record_path() = value; }}; @@ -62,7 +72,7 @@ simgrid::config::Flag _sg_mc_strategy{ xbt_die("configuration option 'model-check/guided-mc' can only take 'none' or 'nb_wait' as a value"); }}; -#if SIMGRID_HAVE_MC +#if SIMGRID_HAVE_STATEFUL_MC simgrid::config::Flag _sg_mc_checkpoint{ "model-check/checkpoint", "Specify the amount of steps between checkpoints during stateful model-checking " "(default: 0 => stateless verification). If value=1, one checkpoint is saved for each "