def test_simplify_exit_callin(self): spec_list = Spec.get_specs_from_string( "SPEC [CB] [EXIT] [l] void m1() |- [CI] [ENTRY] [l] void m3()") assert spec_list is not None ctrace = CTrace() cb = CCallback(1, 1, "", "void m1()", [TestGrounding._get_obj("1", "string")], None, [TestGrounding._get_fmwkov("", "void m1()", False)]) ctrace.add_msg(cb) ci = CCallin(1, 1, "", "void m3()", [TestGrounding._get_obj("1", "string")], None) cb.add_msg(ci) cb2 = CCallback(1, 1, "", "void m2()", [TestGrounding._get_obj("1", "string")], None, [TestGrounding._get_fmwkov("", "void m2()", False)]) ctrace.add_msg(cb2) ts_enc = TSEncoder(ctrace, spec_list, True) ts_enc.trace.print_trace(sys.stdout) self.assertTrue(3 == ts_enc.trace_length) ts = ts_enc.get_ts_encoding() trace_enc = ts_enc.get_trace_encoding() print trace_enc self.assertTrue(len(trace_enc) == 3) bmc = BMC(ts_enc.helper, ts, FALSE()) (step, cex, _) = bmc.simulate(trace_enc) self.assertTrue(cex is not None)
def run_simulation(self, cb_sequence = None): ts_enc = TSEncoder(self.trace, self.spec_list, self.opts.simplify_trace, self.stats) self.stats.start_timer(Stats.SIMULATION_TIME) bmc = BMC(ts_enc.helper, ts_enc.get_ts_encoding(), ts_enc.error_prop) trace_enc = ts_enc.get_trace_encoding(cb_sequence) (step, trace, last_trace) = bmc.simulate(trace_enc) self.stats.stop_timer(Stats.SIMULATION_TIME) self.stats.write_times(sys.stdout, Stats.SIMULATION_TIME) return (step, trace, last_trace, ts_enc.mapback)
def test_simulation(self): ctrace = CTrace() cb = CCallback(1, 1, "", "void m1()", [TestGrounding._get_obj("1", "string")], None, [TestGrounding._get_fmwkov("", "void m1()", False)]) ctrace.add_msg(cb) ci = CCallin(1, 1, "", "void m2()", [TestGrounding._get_obj("1", "string")], None) cb.add_msg(ci) ts_enc = TSEncoder(ctrace, []) #spec_list) ts = ts_enc.get_ts_encoding() trace_enc = ts_enc.get_trace_encoding() bmc = BMC(ts_enc.helper, ts, FALSE()) (step, trace, _) = bmc.simulate(trace_enc) self.assertTrue(trace is not None)