Session& getSession() { return *session_; }
};
-/** Adapt a std::function to a checker */
-class FunctionalChecker : public Checker {
- Session* session_;
- std::function<int(Session& session)> function_;
-public:
- FunctionalChecker(Session& session, std::function<int(Session& session)> f)
- : Checker(session), function_(std::move(f)) {}
- ~FunctionalChecker();
- int run() override;
-};
-
}
}
static
std::unique_ptr<simgrid::mc::Checker> createChecker(simgrid::mc::Session& session)
{
- using simgrid::mc::Session;
- using simgrid::mc::FunctionalChecker;
-
- std::function<int(Session& session)> code;
if (_sg_mc_comms_determinism || _sg_mc_send_determinism)
return std::unique_ptr<simgrid::mc::Checker>(
new simgrid::mc::CommunicationDeterminismChecker(session));
else
return std::unique_ptr<simgrid::mc::Checker>(
new simgrid::mc::LivenessChecker(session));
-
- return std::unique_ptr<simgrid::mc::Checker>(
- new FunctionalChecker(session, std::move(code)));
}
int main(int argc, char** argv)