From 1d0cf28595661a5a19c9aaf5d43a633cec95c473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Loi=CC=88c=20Correnson?= <loic.correnson@cea.fr> Date: Fri, 26 Apr 2019 14:41:51 +0200 Subject: [PATCH] [wp] update qualif tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since -wp-bool-range is activated by default… --- .../wp_acsl/oracle_qualif/bitwise.res.oracle | 16 +-- src/plugins/wp/tests/wp_plugin/bool.i | 8 +- .../tests/wp_plugin/oracle/bool.1.res.oracle | 127 ------------------ .../{bool.0.res.oracle => bool.res.oracle} | 14 +- .../wp_plugin/oracle_qualif/bool.0.res.oracle | 25 ---- .../{bool.1.res.oracle => bool.res.oracle} | 4 +- .../oracle_qualif/removed.res.oracle | 2 +- .../wp_plugin/oracle_qualif/rte.res.oracle | 12 +- 8 files changed, 25 insertions(+), 183 deletions(-) delete mode 100644 src/plugins/wp/tests/wp_plugin/oracle/bool.1.res.oracle rename src/plugins/wp/tests/wp_plugin/oracle/{bool.0.res.oracle => bool.res.oracle} (95%) delete mode 100644 src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.0.res.oracle rename src/plugins/wp/tests/wp_plugin/oracle_qualif/{bool.1.res.oracle => bool.res.oracle} (89%) diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle index 8cc292011a2..226cd7c529a 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle @@ -12,7 +12,7 @@ [wp] [Qed] Goal typed_band_bit2_ensures_band4 : Valid [wp] [Qed] Goal typed_band_bit3_ensures_band5 : Valid [wp] [Qed] Goal typed_band_bit4_ensures_band6 : Valid -[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Unsuccess +[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Valid [wp] [Qed] Goal typed_band_bool_true_ensures : Valid [wp] [Qed] Goal typed_bnot_ensures : Valid [wp] [Qed] Goal typed_bor_ensures : Valid @@ -20,12 +20,12 @@ [wp] [Qed] Goal typed_bor_bit1_ensures_bor1 : Valid [wp] [Qed] Goal typed_bor_bit2_ensures_bor2 : Valid [wp] [Qed] Goal typed_bor_bit3_ensures_bor3 : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Unsuccess +[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Valid [wp] [Alt-Ergo] Goal typed_bor_bool_true_ensures : Valid [wp] [Qed] Goal typed_bxor_ensures : Valid [wp] [Qed] Goal typed_bxor_bit1_ensures : Valid [wp] [Qed] Goal typed_bxor_bit2_ensures : Valid -[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Unsuccess +[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Valid [wp] [Qed] Goal typed_bxor_bool_true_ensures : Valid [wp] [Qed] Goal typed_lshift_ensures : Valid [wp] [Qed] Goal typed_lshift_shift1_ensures_lsl1 : Valid @@ -33,9 +33,9 @@ [wp] [Qed] Goal typed_lshift_shift2_ensures_lsl3 : Valid [wp] [Qed] Goal typed_rshift_ensures : Valid [wp] [Qed] Goal typed_rshift_shift1_ensures_lsr1 : Valid -[wp] Proved goals: 26 / 29 +[wp] Proved goals: 29 / 29 Qed: 25 - Alt-Ergo: 1 (unsuccess: 3) + Alt-Ergo: 4 [wp] Report in: 'tests/wp_acsl/oracle_qualif/bitwise.0.report.json' [wp] Report out: 'tests/wp_acsl/result_qualif/bitwise.0.report.json' ------------------------------------------------------------- @@ -46,7 +46,7 @@ bxor 3 - 3 100% bnot 1 - 1 100% lshift 4 - 4 100% rshift 2 - 2 100% -bor_bool - 1 (4..16) 2 50.0% -band_bool 1 - 2 50.0% -bxor_bool 1 - 2 50.0% +bor_bool - 2 (8..20) 2 100% +band_bool 1 1 (20..32) 2 100% +bxor_bool 1 1 (8..20) 2 100% ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/bool.i b/src/plugins/wp/tests/wp_plugin/bool.i index 0b90b861d07..3c38f396a1c 100644 --- a/src/plugins/wp/tests/wp_plugin/bool.i +++ b/src/plugins/wp/tests/wp_plugin/bool.i @@ -1,11 +1,9 @@ /* run.config OPT: -wp-no-let - OPT: -wp-no-let */ /* run.config_qualif OPT: -wp-no-let - OPT: -wp-no-let */ @@ -15,7 +13,7 @@ int job(_Bool a, _Bool b) { return a+b; } /*@ behavior true: @ assumes a == 1 || b == 1; @ ensures \result == 1; - @ behavior false: + @ behavior false: @ assumes !(a == 1 || b == 1); @ ensures \result == 0; */ @@ -25,7 +23,7 @@ _Bool bor_bool(_Bool a, _Bool b) { return (_Bool)(((int)a | (int)b) != 0); } /*@ behavior true: @ assumes a == 1 && b == 1; @ ensures \result == 1; - @ behavior false: + @ behavior false: @ assumes !(a == 1 && b == 1); @ ensures \result == 0; */ @@ -34,7 +32,7 @@ _Bool band_bool(_Bool a, _Bool b) { return (_Bool)(((int)a & (int)b) != 0); } /*@ behavior true: @ assumes (a == 1 && b == 0) || (a == 0 && b == 1); @ ensures \result == 1; - @ behavior false: + @ behavior false: @ assumes !((a == 1 && b == 0) || (a == 0 && b == 1)) ; @ ensures \result == 0; */ diff --git a/src/plugins/wp/tests/wp_plugin/oracle/bool.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/bool.1.res.oracle deleted file mode 100644 index feb6965058e..00000000000 --- a/src/plugins/wp/tests/wp_plugin/oracle/bool.1.res.oracle +++ /dev/null @@ -1,127 +0,0 @@ -# frama-c -wp -wp-no-let [...] -[kernel] Parsing tests/wp_plugin/bool.i (no preprocessing) -[wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' -[wp] Warning: Missing RTE guards ------------------------------------------------------------- - Function band_bool with behavior false ------------------------------------------------------------- - -Goal Post-condition for 'false' (file tests/wp_plugin/bool.i, line 30) in 'band_bool': -Assume { - Type: is_bool(a) /\ is_bool(a_1) /\ is_bool(b) /\ is_bool(b_1) /\ - is_bool(band_bool_0) /\ is_bool(retres_0). - Have: (a_1 = a) /\ (b_1 = b). - (* Pre-condition for 'false' *) - Have: (a_1 != 1) \/ (b_1 != 1). - Have: (if (land(a, b) = 0) then 0 else 1) = retres_0. - (* Return *) - Have: retres_0 = band_bool_0. -} -Prove: band_bool_0 = 0. - ------------------------------------------------------------- ------------------------------------------------------------- - Function band_bool with behavior true ------------------------------------------------------------- - -Goal Post-condition for 'true' (file tests/wp_plugin/bool.i, line 27) in 'band_bool': -Assume { - Type: is_bool(a) /\ is_bool(a_1) /\ is_bool(b) /\ is_bool(b_1) /\ - is_bool(band_bool_0) /\ is_bool(retres_0). - Have: (a_1 = a) /\ (b_1 = b). - (* Pre-condition for 'true' *) - Have: (a_1 = 1) /\ (b_1 = 1). - Have: (if (land(a, b) = 0) then 0 else 1) = retres_0. - (* Return *) - Have: retres_0 = band_bool_0. -} -Prove: band_bool_0 = 1. - ------------------------------------------------------------- ------------------------------------------------------------- - Function bor_bool with behavior false ------------------------------------------------------------- - -Goal Post-condition for 'false' (file tests/wp_plugin/bool.i, line 20) in 'bor_bool': -Assume { - Type: is_bool(a) /\ is_bool(a_1) /\ is_bool(b) /\ is_bool(b_1) /\ - is_bool(bor_bool_0) /\ is_bool(retres_0). - Have: (a_1 = a) /\ (b_1 = b). - (* Pre-condition for 'false' *) - Have: (a_1 != 1) /\ (b_1 != 1). - Have: (if ((a = 0) & (b = 0)) then 0 else 1) = retres_0. - (* Return *) - Have: retres_0 = bor_bool_0. -} -Prove: bor_bool_0 = 0. - ------------------------------------------------------------- ------------------------------------------------------------- - Function bor_bool with behavior true ------------------------------------------------------------- - -Goal Post-condition for 'true' (file tests/wp_plugin/bool.i, line 17) in 'bor_bool': -Assume { - Type: is_bool(a) /\ is_bool(a_1) /\ is_bool(b) /\ is_bool(b_1) /\ - is_bool(bor_bool_0) /\ is_bool(retres_0). - Have: (a_1 = a) /\ (b_1 = b). - (* Pre-condition for 'true' *) - Have: (a_1 = 1) \/ (b_1 = 1). - Have: (if ((a = 0) & (b = 0)) then 0 else 1) = retres_0. - (* Return *) - Have: retres_0 = bor_bool_0. -} -Prove: bor_bool_0 = 1. - ------------------------------------------------------------- ------------------------------------------------------------- - Function bxor_bool with behavior false ------------------------------------------------------------- - -Goal Post-condition for 'false' (file tests/wp_plugin/bool.i, line 39) in 'bxor_bool': -Assume { - Type: is_bool(a) /\ is_bool(a_1) /\ is_bool(b) /\ is_bool(b_1) /\ - is_bool(bxor_bool_0) /\ is_bool(retres_0). - Have: (a_1 = a) /\ (b_1 = b). - (* Pre-condition for 'false' *) - Have: ((a_1 != 0) \/ (b_1 != 1)) /\ ((a_1 != 1) \/ (b_1 != 0)). - Have: (if (b = a) then 0 else 1) = retres_0. - (* Return *) - Have: retres_0 = bxor_bool_0. -} -Prove: bxor_bool_0 = 0. - ------------------------------------------------------------- ------------------------------------------------------------- - Function bxor_bool with behavior true ------------------------------------------------------------- - -Goal Post-condition for 'true' (file tests/wp_plugin/bool.i, line 36) in 'bxor_bool': -Assume { - Type: is_bool(a) /\ is_bool(a_1) /\ is_bool(b) /\ is_bool(b_1) /\ - is_bool(bxor_bool_0) /\ is_bool(retres_0). - Have: (a_1 = a) /\ (b_1 = b). - (* Pre-condition for 'true' *) - Have: ((a_1 = 0) /\ (b_1 = 1)) \/ ((a_1 = 1) /\ (b_1 = 0)). - Have: (if (b = a) then 0 else 1) = retres_0. - (* Return *) - Have: retres_0 = bxor_bool_0. -} -Prove: bxor_bool_0 = 1. - ------------------------------------------------------------- ------------------------------------------------------------- - Function job ------------------------------------------------------------- - -Goal Post-condition (file tests/wp_plugin/bool.i, line 12) in 'job': -Assume { - Type: is_bool(a) /\ is_bool(b) /\ is_sint32(job_0) /\ is_sint32(retres_0). - Have: (a + b) = retres_0. - (* Return *) - Have: retres_0 = job_0. -} -Prove: (0 <= job_0) /\ (job_0 <= 2). - ------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle/bool.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle/bool.res.oracle similarity index 95% rename from src/plugins/wp/tests/wp_plugin/oracle/bool.0.res.oracle rename to src/plugins/wp/tests/wp_plugin/oracle/bool.res.oracle index feb6965058e..c80bbdfdc62 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle/bool.0.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle/bool.res.oracle @@ -7,7 +7,7 @@ Function band_bool with behavior false ------------------------------------------------------------ -Goal Post-condition for 'false' (file tests/wp_plugin/bool.i, line 30) in 'band_bool': +Goal Post-condition for 'false' (file tests/wp_plugin/bool.i, line 28) in 'band_bool': Assume { Type: is_bool(a) /\ is_bool(a_1) /\ is_bool(b) /\ is_bool(b_1) /\ is_bool(band_bool_0) /\ is_bool(retres_0). @@ -25,7 +25,7 @@ Prove: band_bool_0 = 0. Function band_bool with behavior true ------------------------------------------------------------ -Goal Post-condition for 'true' (file tests/wp_plugin/bool.i, line 27) in 'band_bool': +Goal Post-condition for 'true' (file tests/wp_plugin/bool.i, line 25) in 'band_bool': Assume { Type: is_bool(a) /\ is_bool(a_1) /\ is_bool(b) /\ is_bool(b_1) /\ is_bool(band_bool_0) /\ is_bool(retres_0). @@ -43,7 +43,7 @@ Prove: band_bool_0 = 1. Function bor_bool with behavior false ------------------------------------------------------------ -Goal Post-condition for 'false' (file tests/wp_plugin/bool.i, line 20) in 'bor_bool': +Goal Post-condition for 'false' (file tests/wp_plugin/bool.i, line 18) in 'bor_bool': Assume { Type: is_bool(a) /\ is_bool(a_1) /\ is_bool(b) /\ is_bool(b_1) /\ is_bool(bor_bool_0) /\ is_bool(retres_0). @@ -61,7 +61,7 @@ Prove: bor_bool_0 = 0. Function bor_bool with behavior true ------------------------------------------------------------ -Goal Post-condition for 'true' (file tests/wp_plugin/bool.i, line 17) in 'bor_bool': +Goal Post-condition for 'true' (file tests/wp_plugin/bool.i, line 15) in 'bor_bool': Assume { Type: is_bool(a) /\ is_bool(a_1) /\ is_bool(b) /\ is_bool(b_1) /\ is_bool(bor_bool_0) /\ is_bool(retres_0). @@ -79,7 +79,7 @@ Prove: bor_bool_0 = 1. Function bxor_bool with behavior false ------------------------------------------------------------ -Goal Post-condition for 'false' (file tests/wp_plugin/bool.i, line 39) in 'bxor_bool': +Goal Post-condition for 'false' (file tests/wp_plugin/bool.i, line 37) in 'bxor_bool': Assume { Type: is_bool(a) /\ is_bool(a_1) /\ is_bool(b) /\ is_bool(b_1) /\ is_bool(bxor_bool_0) /\ is_bool(retres_0). @@ -97,7 +97,7 @@ Prove: bxor_bool_0 = 0. Function bxor_bool with behavior true ------------------------------------------------------------ -Goal Post-condition for 'true' (file tests/wp_plugin/bool.i, line 36) in 'bxor_bool': +Goal Post-condition for 'true' (file tests/wp_plugin/bool.i, line 34) in 'bxor_bool': Assume { Type: is_bool(a) /\ is_bool(a_1) /\ is_bool(b) /\ is_bool(b_1) /\ is_bool(bxor_bool_0) /\ is_bool(retres_0). @@ -115,7 +115,7 @@ Prove: bxor_bool_0 = 1. Function job ------------------------------------------------------------ -Goal Post-condition (file tests/wp_plugin/bool.i, line 12) in 'job': +Goal Post-condition (file tests/wp_plugin/bool.i, line 10) in 'job': Assume { Type: is_bool(a) /\ is_bool(b) /\ is_sint32(job_0) /\ is_sint32(retres_0). Have: (a + b) = retres_0. diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.0.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.0.res.oracle deleted file mode 100644 index 8361dfbe06c..00000000000 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.0.res.oracle +++ /dev/null @@ -1,25 +0,0 @@ -# frama-c -wp -wp-no-let -wp-timeout 90 -wp-steps 1500 [...] -[kernel] Parsing tests/wp_plugin/bool.i (no preprocessing) -[wp] Running WP plugin... -[wp] Loading driver 'share/wp.driver' -[wp] Warning: Missing RTE guards -[wp] 7 goals scheduled -[wp] [Alt-Ergo] Goal typed_band_bool_false_ensures : Unsuccess -[wp] [Qed] Goal typed_band_bool_true_ensures : Valid -[wp] [Alt-Ergo] Goal typed_bor_bool_false_ensures : Unsuccess -[wp] [Alt-Ergo] Goal typed_bor_bool_true_ensures : Valid -[wp] [Alt-Ergo] Goal typed_bxor_bool_false_ensures : Unsuccess -[wp] [Qed] Goal typed_bxor_bool_true_ensures : Valid -[wp] [Alt-Ergo] Goal typed_job_ensures : Unsuccess -[wp] Proved goals: 3 / 7 - Qed: 2 - Alt-Ergo: 1 (unsuccess: 4) -[wp] Report in: 'tests/wp_plugin/oracle_qualif/bool.0.report.json' -[wp] Report out: 'tests/wp_plugin/result_qualif/bool.0.report.json' -------------------------------------------------------------- -Functions WP Alt-Ergo Total Success -job - - 1 0.0% -bor_bool - 1 (4..16) 2 50.0% -band_bool 1 - 2 50.0% -bxor_bool 1 - 2 50.0% -------------------------------------------------------------- diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.1.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.res.oracle similarity index 89% rename from src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.1.res.oracle rename to src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.res.oracle index 04c1d1900f3..81ddac40fbc 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.1.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/bool.res.oracle @@ -14,8 +14,8 @@ [wp] Proved goals: 7 / 7 Qed: 2 Alt-Ergo: 5 -[wp] Report in: 'tests/wp_plugin/oracle_qualif/bool.1.report.json' -[wp] Report out: 'tests/wp_plugin/result_qualif/bool.1.report.json' +[wp] Report in: 'tests/wp_plugin/oracle_qualif/bool.0.report.json' +[wp] Report out: 'tests/wp_plugin/result_qualif/bool.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success job - 1 (12..24) 1 100% 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 c1ef69535ae..397e221edae 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 @@ -12,11 +12,11 @@ __retres ∈ [-2147483647..2147483647] [wp] Running WP plugin... [wp] Loading driver 'share/wp.driver' +[wp] Warning: Missing RTE guards [wp] 1 goal scheduled [wp] [Alt-Ergo] Goal typed_main_assert_Eva_signed_overflow : Unsuccess [wp] Proved goals: 0 / 1 Alt-Ergo: 0 (unsuccess: 1) [wp] Running WP plugin... -[wp] Warning: Missing RTE guards [wp] 0 goal scheduled [wp] Proved goals: 0 / 0 diff --git a/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.res.oracle b/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.res.oracle index 5bc109acf7a..2404c6c172d 100644 --- a/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.res.oracle +++ b/src/plugins/wp/tests/wp_plugin/oracle_qualif/rte.res.oracle @@ -5,24 +5,20 @@ [rte] annotating function job [rte] annotating function job2 [rte] annotating function job3 -[wp] tests/wp_plugin/rte.i:34: Warning: - Option -wp-bool-range incompatiable with RTE (ignored) -[wp] tests/wp_plugin/rte.i:34: Warning: - Option -wp-bool-range incompatiable with RTE (ignored) [wp] 6 goals scheduled [wp] [Alt-Ergo] Goal typed_job_assert_rte_mem_access : Unsuccess [wp] [Alt-Ergo] Goal typed_job_assert_rte_mem_access_2 : Unsuccess [wp] [Alt-Ergo] Goal typed_job_assert_rte_signed_overflow : Unsuccess [wp] [Alt-Ergo] Goal typed_job_assert_rte_signed_overflow_2 : Unsuccess [wp] [Qed] Goal typed_job_assert_rte_mem_access_3 : Valid -[wp] [Alt-Ergo] Goal typed_job3_assert_rte_bool_value : Unsuccess -[wp] Proved goals: 1 / 6 +[wp] [Alt-Ergo] Goal typed_job3_assert_rte_bool_value : Valid +[wp] Proved goals: 2 / 6 Qed: 1 - Alt-Ergo: 0 (unsuccess: 5) + Alt-Ergo: 1 (unsuccess: 4) [wp] Report in: 'tests/wp_plugin/oracle_qualif/rte.0.report.json' [wp] Report out: 'tests/wp_plugin/result_qualif/rte.0.report.json' ------------------------------------------------------------- Functions WP Alt-Ergo Total Success job 1 - 5 20.0% -job3 - - 1 0.0% +job3 - 1 (4..16) 1 100% ------------------------------------------------------------- -- GitLab