A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
createLivenessChecker without Session argument
[simgrid.git]
/
src
/
mc
/
checker
/
simgrid_mc.cpp
diff --git
a/src/mc/checker/simgrid_mc.cpp
b/src/mc/checker/simgrid_mc.cpp
index 228ceff7b2ab662bc994e17f4738082399097c9a..acdb7c0709797f21244c522f94871dca87054602 100644
(file)
--- a/
src/mc/checker/simgrid_mc.cpp
+++ b/
src/mc/checker/simgrid_mc.cpp
@@
-1,4
+1,4
@@
-/* Copyright (c) 2015-20
19
. The SimGrid Team.
+/* Copyright (c) 2015-20
20
. The SimGrid Team.
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
@@
-10,6
+10,7
@@
#include "src/mc/mc_config.hpp"
#include "src/mc/mc_exit.hpp"
#include "src/internal_config.h"
#include "src/mc/mc_config.hpp"
#include "src/mc/mc_exit.hpp"
#include "src/internal_config.h"
+#include "src/mc/mc_api.hpp"
#if HAVE_SMPI
#include "smpi/smpi.h"
#if HAVE_SMPI
#include "smpi/smpi.h"
@@
-19,10
+20,12
@@
#include <memory>
#include <unistd.h>
#include <memory>
#include <unistd.h>
+using mcapi = simgrid::mc::mc_api;
+
static inline
char** argvdup(int argc, char** argv)
{
static inline
char** argvdup(int argc, char** argv)
{
-
char*
* argv_copy = new char*[argc + 1];
+
auto
* argv_copy = new char*[argc + 1];
std::memcpy(argv_copy, argv, sizeof(char*) * argc);
argv_copy[argc] = nullptr;
return argv_copy;
std::memcpy(argv_copy, argv, sizeof(char*) * argc);
argv_copy[argc] = nullptr;
return argv_copy;
@@
-35,7
+38,7
@@
static std::unique_ptr<simgrid::mc::Checker> create_checker(simgrid::mc::Session
else if (_sg_mc_property_file.get().empty())
return std::unique_ptr<simgrid::mc::Checker>(simgrid::mc::createSafetyChecker(session));
else
else if (_sg_mc_property_file.get().empty())
return std::unique_ptr<simgrid::mc::Checker>(simgrid::mc::createSafetyChecker(session));
else
- return std::unique_ptr<simgrid::mc::Checker>(simgrid::mc::createLivenessChecker(
session
));
+ return std::unique_ptr<simgrid::mc::Checker>(simgrid::mc::createLivenessChecker());
}
int main(int argc, char** argv)
}
int main(int argc, char** argv)
@@
-47,19
+50,18
@@
int main(int argc, char** argv)
_sg_do_model_check = 1;
// The initialization function can touch argv.
_sg_do_model_check = 1;
// The initialization function can touch argv.
- // We make a copy of argv before modifying it in order to pass the original
- // value to the model-checked:
+ // We make a copy of argv before modifying it in order to pass the original value to the model-checked application:
char** argv_copy = argvdup(argc, argv);
xbt_log_init(&argc, argv);
#if HAVE_SMPI
char** argv_copy = argvdup(argc, argv);
xbt_log_init(&argc, argv);
#if HAVE_SMPI
- smpi_init_options();
//
only performed once
+ smpi_init_options();
//
only performed once
#endif
sg_config_init(&argc, argv);
#endif
sg_config_init(&argc, argv);
-
simgrid::mc::session = new simgrid::mc::Session([argv_copy] { execvp(argv_copy[1], argv_copy + 1); }
);
+
mcapi::get().initialize(argv_copy
);
delete[] argv_copy;
delete[] argv_copy;
-
std::unique_ptr<simgrid::mc::Checker>
checker = create_checker(*simgrid::mc::session);
- int res
= SIMGRID_MC_EXIT_SUCCESS;
+
auto
checker = create_checker(*simgrid::mc::session);
+ int res = SIMGRID_MC_EXIT_SUCCESS;
try {
checker->run();
} catch (const simgrid::mc::DeadlockError&) {
try {
checker->run();
} catch (const simgrid::mc::DeadlockError&) {
@@
-70,6
+72,6
@@
int main(int argc, char** argv)
res = SIMGRID_MC_EXIT_LIVENESS;
}
checker = nullptr;
res = SIMGRID_MC_EXIT_LIVENESS;
}
checker = nullptr;
-
simgrid::mc::session->
close();
+
mcapi::get().s_
close();
return res;
}
return res;
}