Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
model-checker : lex and yacc parsing moved in src/xbt/automaton/
[simgrid.git] / src / mc / mc_global.c
index d24b43823514c5f6b2b90c567ca81296be3c1cc1..247d959292db0d6f6087e9fbe9d3697d739b8d48 100644 (file)
@@ -12,8 +12,9 @@
 #include "../simix/smx_private.h"
 #include "xbt/fifo.h"
 #include "mc_private.h"
+#include "xbt/automaton/automaton_create.h"
 
-
+XBT_LOG_NEW_CATEGORY(mc, "All MC categories");
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_global, mc,
                                 "Logging specific to MC (global)");
 
@@ -37,9 +38,8 @@ xbt_fifo_t mc_stack_liveness = NULL;
 mc_snapshot_t initial_snapshot_liveness = NULL;
 
 xbt_automaton_t automaton;
-char *prog_name;
 
-static void MC_init_liveness(xbt_automaton_t a, char *prgm);
+static void MC_init_liveness(xbt_automaton_t a);
 static void MC_assert_pair(int prop);
 
 
@@ -104,7 +104,7 @@ void MC_init_safety_stateful(void){
 
 }
 
-static void MC_init_liveness(xbt_automaton_t a, char *prgm){
+static void MC_init_liveness(xbt_automaton_t a){
 
   XBT_DEBUG("Start init mc");
   
@@ -126,7 +126,6 @@ static void MC_init_liveness(xbt_automaton_t a, char *prgm){
   MC_UNSET_RAW_MEM;
 
   automaton = a;
-  prog_name = strdup(prgm);
 
   MC_ddfs_init();
 
@@ -149,8 +148,8 @@ void MC_modelcheck_stateful(void)
 }
 
 
-void MC_modelcheck_liveness(xbt_automaton_t a, char *prgm){
-  MC_init_liveness(a, prgm);
+void MC_modelcheck_liveness(xbt_automaton_t a){
+  MC_init_liveness(a);
   MC_exit_liveness();
 }
 
@@ -504,7 +503,7 @@ void MC_dump_stack_liveness(xbt_fifo_t stack){
 
 void MC_print_statistics(mc_stats_t stats)
 {
-  XBT_INFO("State space size ~= %lu", stats->state_size);
+  //XBT_INFO("State space size ~= %lu", stats->state_size);
   XBT_INFO("Expanded states = %lu", stats->expanded_states);
   XBT_INFO("Visited states = %lu", stats->visited_states);
   XBT_INFO("Executed transitions = %lu", stats->executed_transitions);
@@ -527,7 +526,7 @@ void MC_print_statistics_pairs(mc_stats_pair_t stats)
 
 void MC_assert(int prop)
 {
-  if (MC_IS_ENABLED && !prop) {
+  if (MC_IS_ENABLED && !prop){
     XBT_INFO("**************************");
     XBT_INFO("*** PROPERTY NOT VALID ***");
     XBT_INFO("**************************");
@@ -585,7 +584,7 @@ void MC_diff(void){
 
   int i;
 
-  XBT_INFO("Number of regions : %d", sn->num_reg);
+  XBT_INFO("Number of regions : %u", sn->num_reg);
 
   for(i=0; i<sn->num_reg; i++){
     
@@ -609,3 +608,7 @@ void MC_diff(void){
   }
 
 }
+
+xbt_automaton_t MC_create_automaton(const char *file){
+  return xbt_create_automaton(file);
+}