X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/92afe9670ecc5246040dad7a9d6b805f9c8f84cb..5bd5ce1bb9c20fd24ae5cd730d717cf1426ce613:/src/mc/simgrid_mc.cpp diff --git a/src/mc/simgrid_mc.cpp b/src/mc/simgrid_mc.cpp index 71d0388828..6ffb402179 100644 --- a/src/mc/simgrid_mc.cpp +++ b/src/mc/simgrid_mc.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2015. The SimGrid Team. + /* Copyright (c) 2015. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -29,13 +29,12 @@ #include "mc_private.h" #include "mc_protocol.h" #include "mc_server.h" -#include "mc_model_checker.h" #include "mc_safety.h" +#include "mc_comm_pattern.h" +#include "mc_liveness.h" XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_main, mc, "Entry point for simgrid-mc"); -static const bool trace = true; - static int do_child(int socket, char** argv) { XBT_DEBUG("Inside the child process PID=%i", (int) getpid()); @@ -81,13 +80,18 @@ static int do_parent(int socket, pid_t child) mc_mode = MC_MODE_SERVER; mc_server = new s_mc_server(child, socket); mc_server->start(); - MC_init_pid(child, socket); - MC_do_the_modelcheck_for_real(); + MC_init_model_checker(child, socket); + if (_sg_mc_comms_determinism || _sg_mc_send_determinism) + MC_modelcheck_comm_determinism(); + else if (!_sg_mc_property_file || _sg_mc_property_file[0] == '\0') + MC_modelcheck_safety(); + else + MC_modelcheck_liveness(); mc_server->shutdown(); mc_server->exit(); } catch(std::exception& e) { - XBT_ERROR(e.what()); + XBT_ERROR("Exception: %s", e.what()); } exit(MC_SERVER_ERROR); }