From c635c8181de3a798539703956d268b4b7a7fa5e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Thu, 20 Feb 2020 11:19:16 +0100 Subject: [PATCH] [wp] emit a warning when no generated goal --- src/plugins/wp/Changelog | 1 + src/plugins/wp/register.ml | 37 ++++++++++--------- .../wp_plugin/oracle_qualif/nowp.res.oracle | 3 +- .../oracle_qualif/removed.res.oracle | 3 +- .../oracle_qualif/sequence.2.res.oracle | 3 +- .../wp/tests/wp_plugin/oracle_qualif/stmt.log | 3 +- .../wp_region/oracle_qualif/array1.res.oracle | 3 +- .../wp_region/oracle_qualif/array2.res.oracle | 3 +- .../wp_region/oracle_qualif/array3.res.oracle | 3 +- .../wp_region/oracle_qualif/array4.res.oracle | 3 +- .../wp_region/oracle_qualif/array5.res.oracle | 3 +- .../wp_region/oracle_qualif/array6.res.oracle | 3 +- .../wp_region/oracle_qualif/array7.res.oracle | 3 +- .../wp_region/oracle_qualif/array8.res.oracle | 3 +- .../wp_region/oracle_qualif/fb_ADD.res.oracle | 3 +- .../oracle_qualif/fb_SORT.res.oracle | 3 +- .../oracle_qualif/garbled.res.oracle | 3 +- .../wp_region/oracle_qualif/index.res.oracle | 3 +- .../wp_region/oracle_qualif/matrix.res.oracle | 3 +- .../oracle_qualif/structarray1.res.oracle | 3 +- .../oracle_qualif/structarray2.res.oracle | 3 +- .../oracle_qualif/structarray3.res.oracle | 3 +- .../oracle_qualif/structarray4.res.oracle | 3 +- .../wp_region/oracle_qualif/swap.res.oracle | 3 +- 24 files changed, 43 insertions(+), 61 deletions(-) diff --git a/src/plugins/wp/Changelog b/src/plugins/wp/Changelog index e2b37ee75a6..4e411b02187 100644 --- a/src/plugins/wp/Changelog +++ b/src/plugins/wp/Changelog @@ -25,6 +25,7 @@ - WP [2020/02/10] Extended frame conditions with global C-types - WP [2019/17/04] Control splitting with -wp-max-split <n> - WP [2019/12/04] Added option -wp-run-all-provers +- WP [2019/01/29] Emit a warning when no goal is generated ########################## Plugin WP 20.0 (Calcium) diff --git a/src/plugins/wp/register.ml b/src/plugins/wp/register.ml index 5ee0a232c14..cc4ced4bfa6 100644 --- a/src/plugins/wp/register.ml +++ b/src/plugins/wp/register.ml @@ -272,10 +272,10 @@ let do_list_scheduled iter_on_goals = incr scheduled ; if !spy then session := GOALS.add goal !session ; end) ; - let n = !scheduled in - if n > 1 - then Wp_parameters.feedback "%d goals scheduled" n - else Wp_parameters.feedback "%d goal scheduled" n ; + match !scheduled with + | 0 -> Wp_parameters.warning ~current:false "No goal generated" + | 1 -> Wp_parameters.feedback "1 goal scheduled" + | n -> Wp_parameters.feedback "%d goals scheduled" n end let dkey_prover = Wp_parameters.register_category "prover" @@ -487,19 +487,22 @@ let do_report_scheduled () = let plural = if !exercised > 1 then "s" else "" in Wp_parameters.result "%d goal%s generated" !exercised plural else - let proved = GOALS.cardinal !proved in - let mode = ProverWhy3.get_mode () in - if mode <> ProverWhy3.NoCache then do_report_cache_usage mode ; - Wp_parameters.result "%t" - begin fun fmt -> - Format.fprintf fmt "Proved goals: %4d / %d@\n" proved !scheduled ; - Pretty_utils.pp_items - ~min:12 ~align:`Left - ~title:(fun (prover,_) -> VCS.title_of_prover prover) - ~iter:(fun f -> PM.iter (fun p s -> f (p,s)) !provers) - ~pp_title:(fun fmt a -> Format.fprintf fmt "%s:" a) - ~pp_item:do_report_prover_stats fmt ; - end + if !scheduled > 0 then + begin + let proved = GOALS.cardinal !proved in + let mode = ProverWhy3.get_mode () in + if mode <> ProverWhy3.NoCache then do_report_cache_usage mode ; + Wp_parameters.result "%t" + begin fun fmt -> + Format.fprintf fmt "Proved goals: %4d / %d@\n" proved !scheduled ; + Pretty_utils.pp_items + ~min:12 ~align:`Left + ~title:(fun (prover,_) -> VCS.title_of_prover prover) + ~iter:(fun f -> PM.iter (fun p s -> f (p,s)) !provers) + ~pp_title:(fun fmt a -> Format.fprintf fmt "%s:" a) + ~pp_item:do_report_prover_stats fmt ; + end ; + end let do_list_scheduled_result () = begin diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/nowp.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/nowp.res.oracle index a3a203eb6c7..28d3b1aac61 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/nowp.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/nowp.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/removed.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/removed.res.oracle index 6d0cc9b254a..f231fb042cb 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/removed.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/removed.res.oracle @@ -18,5 +18,4 @@ [wp] Proved goals: 0 / 1 Alt-Ergo 2.0.0: 0 (unsuccess: 1) [wp] Running WP plugin... -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.2.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.2.res.oracle index 2e0c8f96387..b58e86cce5e 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.2.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/sequence.2.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.log b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.log index a4c56847582..efc57b6183b 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.log +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/stmt.log @@ -17,5 +17,4 @@ [wp] CFG g -> g_default_for_stmt_11 [wp] CFG f -> f [wp] CFG f -> f_default_for_stmt_2 -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array1.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array1.res.oracle index 00091d72a9f..ed869315385 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array1.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array1.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array2.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array2.res.oracle index 256b9a73626..5e7de78ee60 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array2.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array2.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array3.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array3.res.oracle index 2ead4dbe67b..d46d52bdc2c 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array3.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array3.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array4.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array4.res.oracle index 03f4311ee37..b732e6a34d5 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array4.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array4.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array5.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array5.res.oracle index c106bd36a02..31f6983483f 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array5.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array5.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array6.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array6.res.oracle index d582428d468..34d7eb2a982 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array6.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array6.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array7.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array7.res.oracle index 0eb3a6468cf..0e0ad91c163 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array7.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array7.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/array8.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/array8.res.oracle index 9ea4ec380db..13c02c6b2d1 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/array8.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/array8.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/fb_ADD.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/fb_ADD.res.oracle index 67c1fd0139e..0db49291906 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/fb_ADD.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/fb_ADD.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/fb_SORT.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/fb_SORT.res.oracle index 03dd7d0a795..372e798b673 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/fb_SORT.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/fb_SORT.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/garbled.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/garbled.res.oracle index 47692e24e29..af0aea662d2 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/garbled.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/garbled.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/index.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/index.res.oracle index 2a4bfbb4975..fe16dc545ec 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/index.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/index.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/matrix.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/matrix.res.oracle index a17c2fcf344..d0a1dcf567a 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/matrix.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/matrix.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray1.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray1.res.oracle index 3917685de3c..4f31df7dff8 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray1.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray1.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray2.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray2.res.oracle index 8360b587599..94c1cbf1865 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray2.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray2.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray3.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray3.res.oracle index e317fb0d4fd..0cee2a2b631 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray3.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray3.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray4.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray4.res.oracle index e1a7716376a..70c1d992d17 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/structarray4.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/structarray4.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ diff --git a/src/plugins/wp/tests/wp_region/oracle_qualif/swap.res.oracle b/src/plugins/wp/tests/wp_region/oracle_qualif/swap.res.oracle index a41a5ede9f8..258e09a4a69 100644 --- a/src/plugins/wp/tests/wp_region/oracle_qualif/swap.res.oracle +++ b/src/plugins/wp/tests/wp_region/oracle_qualif/swap.res.oracle @@ -3,6 +3,5 @@ [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' [wp] Warning: Missing RTE guards -[wp] 0 goal scheduled -[wp] Proved goals: 0 / 0 +[wp] Warning: No goal generated ------------------------------------------------------------ -- GitLab