From 071a7a1ebc53f3e59bc119b295db2237636634c1 Mon Sep 17 00:00:00 2001 From: Patrick Baudin <patrick.baudin@cea.fr> Date: Fri, 7 Jan 2022 11:25:12 +0100 Subject: [PATCH] [WP] add a test of the introduced rule --- src/plugins/wp/tests/wp_acsl/bitwise.i | 6 ++++++ src/plugins/wp/tests/wp_acsl/oracle/bitwise.res.oracle | 8 ++++++++ .../wp/tests/wp_acsl/oracle_qualif/bitwise.res.oracle | 8 +++++--- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/plugins/wp/tests/wp_acsl/bitwise.i b/src/plugins/wp/tests/wp_acsl/bitwise.i index d9dcf8fe503..b2e5594f270 100644 --- a/src/plugins/wp/tests/wp_acsl/bitwise.i +++ b/src/plugins/wp/tests/wp_acsl/bitwise.i @@ -124,3 +124,9 @@ void lemma(unsigned a, unsigned b, unsigned k) { //@ check ( a & b & 77 & ((1 << (k & 55))-1) ) == ( (a & b & 77) % (1 << (k & 55)) ); } + +//@ ensures \result == (x & 0xFF) ; +unsigned char cast_uchar(int x) { + unsigned char c = x; + return c; +} diff --git a/src/plugins/wp/tests/wp_acsl/oracle/bitwise.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/bitwise.res.oracle index 351c09e561f..232b2653404 100644 --- a/src/plugins/wp/tests/wp_acsl/oracle/bitwise.res.oracle +++ b/src/plugins/wp/tests/wp_acsl/oracle/bitwise.res.oracle @@ -218,6 +218,14 @@ Assume { } Prove: b != a. +------------------------------------------------------------ +------------------------------------------------------------ + Function cast_uchar +------------------------------------------------------------ + +Goal Post-condition (file bitwise.i, line 128) in 'cast_uchar': +Prove: true. + ------------------------------------------------------------ ------------------------------------------------------------ Function lemma 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 946e96312f8..413c2326caa 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 @@ -2,7 +2,7 @@ [kernel] Parsing bitwise.i (no preprocessing) [wp] Running WP plugin... [wp] Warning: Missing RTE guards -[wp] 37 goals scheduled +[wp] 38 goals scheduled [wp] [Qed] Goal typed_band_ensures : Valid [wp] [Qed] Goal typed_band_ensures_band0 : Valid [wp] [Qed] Goal typed_band_bit0_ensures_band1 : Valid @@ -40,8 +40,9 @@ [wp] [Qed] Goal typed_lemma_check_5 : Valid [wp] [Qed] Goal typed_lemma_check_6 : Valid [wp] [Qed] Goal typed_lemma_check_7 : Valid -[wp] Proved goals: 37 / 37 - Qed: 33 +[wp] [Qed] Goal typed_cast_uchar_ensures : Valid +[wp] Proved goals: 38 / 38 + Qed: 34 Alt-Ergo: 4 ------------------------------------------------------------ Functions WP Alt-Ergo Total Success @@ -55,4 +56,5 @@ band_bool 1 1 2 100% bxor_bool 1 1 2 100% lemma 7 - 7 100% + cast_uchar 1 - 1 100% ------------------------------------------------------------ -- GitLab