/**
* @brief Register the ModelHistory and ModelExecution engine
*/
-void NewFuzzer::register_engine(ModelExecution *execution)
+void NewFuzzer::register_engine(ModelChecker *_model, ModelExecution *execution)
{
- this->history = model->get_history();
+ this->history = _model->get_history();
this->execution = execution;
}
int NewFuzzer::selectWrite(ModelAction *read, SnapVector<ModelAction *> * rf_set)
{
-// return random() % rf_set->size();
+ return random() % rf_set->size();
thread_id_t tid = read->get_tid();
int thread_id = id_to_int(tid);
if (curr_pred != NULL) {
Predicate * selected_branch = NULL;
- if (check_branch_inst(curr_pred, read_inst, inst_act_map, rf_set))
+ if (check_branch_inst(curr_pred, read_inst, rf_set))
selected_branch = selectBranch(tid, curr_pred, read_inst);
else {
// no child of curr_pred matches read_inst, check back edges
while (it->hasNext()) {
curr_pred = it->next();
- if (check_branch_inst(curr_pred, read_inst, inst_act_map, rf_set)) {
+ if (check_branch_inst(curr_pred, read_inst, rf_set)) {
selected_branch = selectBranch(tid, curr_pred, read_inst);
break;
}
// Add failed predicate to NewFuzzer and FuncNode
failed_predicates.put(selected_branch, true);
- func_node->add_failed_predicate(selected_branch);
selected_branch->incr_fail_count();
//model_print("the %d read action of thread %d at %p is unsuccessful\n", read->get_seq_number(), read_thread->get_id(), read->get_location());
* @return False if no child matches read_inst
*/
bool NewFuzzer::check_branch_inst(Predicate * curr_pred, FuncInst * read_inst,
- inst_act_map_t * inst_act_map, SnapVector<ModelAction *> * rf_set)
+ SnapVector<ModelAction *> * rf_set)
{
available_branches_tmp_storage.clear();