#include "y.tab.c"
-#define N 5
+#define N 3
XBT_LOG_NEW_DEFAULT_CATEGORY(example, "Example with automaton");
int d=1;
-int r=1;
+int r=0;
int e=1;
int predD(){
}
MSG_task_receive(&task, "mymailbox");
count++;
- r=(r+1)%4;
+ //r=(r+1)%4;
}
- MC_assert(atoi(MSG_task_get_name(task)) == 3);
+ MC_assert_pair(atoi(MSG_task_get_name(task)) == 3);
XBT_INFO("OK");
return 0;
MSG_task_send(task, "mymailbox");
XBT_INFO("Sent!");
- r=(r+1)%4;
+ //r=(r+1)%4;
return 0;
}
#include "xbt.h"
XBT_PUBLIC(void) MC_assert(int);
+XBT_PUBLIC(void) MC_assert_pair(int);
XBT_PUBLIC(int) MC_random(int min, int max);
XBT_PUBLIC(void) MC_init_with_automaton(xbt_automaton_t a);
XBT_PUBLIC(void) MC_exit(void);
XBT_PUBLIC(void) MC_assert(int);
+XBT_PUBLIC(void) MC_assert_pair(int);
XBT_PUBLIC(void) MC_modelcheck(void);
XBT_PUBLIC(void) MC_modelcheck_with_automaton(xbt_automaton_t a);
XBT_PUBLIC(int) MC_random(int, int);
//XBT_DEBUG("State shifted in snapshot_stack, mc_snapshot_stack size=%d", xbt_fifo_size(mc_snapshot_stack));
MC_UNSET_RAW_MEM;
-
}
void MC_show_snapshot_stack(xbt_fifo_t stack){
}
}
+void MC_assert_pair(int prop){
+ if (MC_IS_ENABLED && !prop) {
+ XBT_INFO("**************************");
+ XBT_INFO("*** PROPERTY NOT VALID ***");
+ XBT_INFO("**************************");
+ XBT_INFO("Counter-example execution trace:");
+ MC_show_snapshot_stack(mc_snapshot_stack);
+ MC_dump_snapshot_stack(mc_snapshot_stack);
+ //MC_print_statistics(mc_stats);
+ xbt_abort();
+ }
+}
+
void MC_process_clock_add(smx_process_t process, double amount)
{
mc_time[process->pid] += amount;
void MC_dump_snapshot_stack(xbt_fifo_t stack);
void MC_pair_delete(mc_pairs_t pair);
+
#endif