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