|
36 | 36 | #include <goto-checker/all_properties_verifier.h>
|
37 | 37 | #include <goto-checker/all_properties_verifier_with_trace_storage.h>
|
38 | 38 | #include <goto-checker/bmc_util.h>
|
| 39 | +#include <goto-checker/cover_goals_verifier_with_trace_storage.h> |
39 | 40 | #include <goto-checker/multi_path_symex_checker.h>
|
40 | 41 | #include <goto-checker/multi_path_symex_only_checker.h>
|
41 | 42 | #include <goto-checker/properties.h>
|
|
73 | 74 |
|
74 | 75 | #include <langapi/mode.h>
|
75 | 76 |
|
| 77 | +#include "c_test_input_generator.h" |
76 | 78 | #include "xml_interface.h"
|
77 | 79 |
|
78 | 80 | cbmc_parse_optionst::cbmc_parse_optionst(int argc, const char **argv)
|
@@ -578,6 +580,19 @@ int cbmc_parse_optionst::doit()
|
578 | 580 | }
|
579 | 581 | }
|
580 | 582 |
|
| 583 | + if(options.is_set("cover")) |
| 584 | + { |
| 585 | + cover_goals_verifier_with_trace_storaget<multi_path_symex_checkert> |
| 586 | + verifier(options, ui_message_handler, goto_model); |
| 587 | + (void)verifier(); |
| 588 | + verifier.report(); |
| 589 | + |
| 590 | + c_test_input_generatort test_generator(ui_message_handler, options); |
| 591 | + test_generator(verifier.get_traces()); |
| 592 | + |
| 593 | + return CPROVER_EXIT_SUCCESS; |
| 594 | + } |
| 595 | + |
581 | 596 | std::unique_ptr<goto_verifiert> verifier = nullptr;
|
582 | 597 |
|
583 | 598 | if(
|
@@ -607,6 +622,7 @@ int cbmc_parse_optionst::doit()
|
607 | 622 |
|
608 | 623 | resultt result = (*verifier)();
|
609 | 624 | verifier->report();
|
| 625 | + |
610 | 626 | return result_to_exit_code(result);
|
611 | 627 | }
|
612 | 628 |
|
|
0 commit comments