X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/af72ee01a6a0c01b1a67dc3095f952fd8ab1dd42..87ef181bcd738942c6deec258b772e7c36a83235:/src/mc/mc_config.cpp diff --git a/src/mc/mc_config.cpp b/src/mc/mc_config.cpp index 39c3491dee..f33a8959a1 100644 --- a/src/mc/mc_config.cpp +++ b/src/mc/mc_config.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2008-2021. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2008-2022. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -6,35 +6,33 @@ #include "src/mc/mc_config.hpp" #include "src/mc/mc_replay.hpp" #include + #if SIMGRID_HAVE_MC #include "src/mc/mc_safety.hpp" +#include #endif -#include - #if SIMGRID_HAVE_MC -namespace simgrid { -namespace mc { +namespace simgrid::mc { /* Configuration support */ simgrid::mc::ReductionMode reduction_mode = simgrid::mc::ReductionMode::unset; -} -} +} // namespace simgrid::mc #else #define _sg_do_model_check 0 #endif static void _mc_cfg_cb_check(const char* spec, bool more_check = true) { - if (_sg_cfg_init_status && not _sg_do_model_check && more_check) - xbt_die("You are specifying a %s after the initialization (through MSG_config?), but the program was not run under " - "the model-checker (with simgrid-mc)). This won't work, sorry.", - spec); + xbt_assert(_sg_cfg_init_status == 0 || _sg_do_model_check || not more_check, + "You are specifying a %s after the initialization (through MSG_config?), but the program was not run " + "under the model-checker (with simgrid-mc)). This won't work, sorry.", + spec); } /* Replay (this part is enabled even if MC it disabled) */ simgrid::config::Flag _sg_mc_record_path{ "model-check/replay", "Model-check path to replay (as reported by SimGrid when a violation is reported)", "", - [](const std::string& value) { MC_record_path() = value; }}; + [](std::string_view value) { MC_record_path() = value; }}; simgrid::config::Flag _sg_mc_timeout{ "model-check/timeout", "Whether to enable timeouts for wait requests", false, [](bool) { @@ -73,9 +71,8 @@ simgrid::config::Flag _sg_mc_send_determinism{ }}; simgrid::config::Flag _sg_mc_unfolding_checker{ - "model-check/unfolding-checker", "Whether to enable the unfolding-based dynamic partial order reduction to MPI programs", - false, - [](bool) { + "model-check/unfolding-checker", + "Whether to enable the unfolding-based dynamic partial order reduction to MPI programs", false, [](bool) { _mc_cfg_cb_check("value to to enable/disable the unfolding-based dynamic partial order reduction to MPI programs"); }}; @@ -85,11 +82,11 @@ simgrid::config::Flag _sg_mc_buffering{ "infty", {{"zero", "No system buffering: MPI_Send is blocking"}, {"infty", "Infinite system buffering: MPI_Send returns immediately"}}, - [](const std::string&) { _mc_cfg_cb_check("buffering mode"); }}; + [](std::string_view) { _mc_cfg_cb_check("buffering mode"); }}; static simgrid::config::Flag _sg_mc_reduce{ "model-check/reduction", "Specify the kind of exploration reduction (either none or DPOR)", "dpor", - [](const std::string& value) { + [](std::string_view value) { _mc_cfg_cb_check("reduction strategy"); if (value == "none")