@@ -272,12 +272,14 @@ SCENARIO("path strategies")
272
272
273
273
void symex_eventt::validate_result (
274
274
listt &events,
275
- const safety_checkert::resultt result)
275
+ const safety_checkert::resultt result,
276
+ std::size_t &counter)
276
277
{
277
278
INFO (
278
279
" Expecting result to be '"
279
280
<< (result == safety_checkert::resultt::SAFE ? " success" : " failure" )
280
- << " '" );
281
+ << " ' (item at index [" << counter << " ] in expected results list" );
282
+ ++counter;
281
283
282
284
REQUIRE (result != safety_checkert::resultt::ERROR);
283
285
@@ -297,25 +299,33 @@ void symex_eventt::validate_result(
297
299
298
300
void symex_eventt::validate_resume (
299
301
listt &events,
300
- const goto_symex_statet &state)
302
+ const goto_symex_statet &state,
303
+ std::size_t &counter)
301
304
{
302
305
REQUIRE (!events.empty ());
303
306
304
307
int dst = std::stoi (state.saved_target ->source_location .get_line ().c_str ());
305
308
306
309
if (state.has_saved_jump_target )
307
310
{
308
- INFO (" Expecting resume to be 'jump' to line " << dst);
311
+ INFO (
312
+ " Expecting resume to be 'jump' to line "
313
+ << dst << " (item at index [" << counter
314
+ << " ] in expected resumes list)" );
309
315
REQUIRE (events.front ().first == symex_eventt::enumt::JUMP);
310
316
}
311
317
else if (state.has_saved_next_instruction )
312
318
{
313
- INFO (" Expecting resume to be 'next' to line " << dst);
319
+ INFO (
320
+ " Expecting resume to be 'next' to line "
321
+ << dst << " (item at index [" << counter
322
+ << " ] in expected resumes list)" );
314
323
REQUIRE (events.front ().first == symex_eventt::enumt::NEXT);
315
324
}
316
325
else
317
326
REQUIRE (false );
318
327
328
+ ++counter;
319
329
REQUIRE (events.front ().second == dst);
320
330
321
331
events.pop_front ();
@@ -372,7 +382,9 @@ void _check_with_strategy(
372
382
373
383
bmct bmc (opts, gm.get_symbol_table (), mh, pc, *worklist, callback);
374
384
safety_checkert::resultt result = bmc.run (gm);
375
- symex_eventt::validate_result (events, result);
385
+
386
+ std::size_t expected_results_cnt = 0 ;
387
+ symex_eventt::validate_result (events, result, expected_results_cnt);
376
388
377
389
if (
378
390
result == safety_checkert::resultt::UNSAFE &&
@@ -388,7 +400,7 @@ void _check_with_strategy(
388
400
prop_convt &pc = cbmc_solver->prop_conv ();
389
401
path_storaget::patht &resume = worklist->peek ();
390
402
391
- symex_eventt::validate_resume (events, resume.state );
403
+ symex_eventt::validate_resume (events, resume.state , expected_results_cnt );
392
404
393
405
path_explorert pe (
394
406
opts,
@@ -401,7 +413,7 @@ void _check_with_strategy(
401
413
callback);
402
414
result = pe.run (gm);
403
415
404
- symex_eventt::validate_result (events, result);
416
+ symex_eventt::validate_result (events, result, expected_results_cnt );
405
417
worklist->pop ();
406
418
407
419
if (
0 commit comments