From f456c7b7b3060f8f1c01aa0c26b13d6f8cf4010f Mon Sep 17 00:00:00 2001
From: Allan Blanchard <allan.blanchard@cea.fr>
Date: Tue, 22 Sep 2020 14:15:14 +0200
Subject: [PATCH] [wp] More tests on base_offset

---
 src/plugins/wp/tests/wp_acsl/base_offset.i          | 13 +++++++++++++
 .../wp/tests/wp_acsl/oracle/base_offset.res.oracle  | 13 +++++++++++++
 .../wp_acsl/oracle_qualif/base_offset.res.oracle    |  9 ++++++---
 3 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/src/plugins/wp/tests/wp_acsl/base_offset.i b/src/plugins/wp/tests/wp_acsl/base_offset.i
index e4e96b65f5c..f38f29df60f 100644
--- a/src/plugins/wp/tests/wp_acsl/base_offset.i
+++ b/src/plugins/wp/tests/wp_acsl/base_offset.i
@@ -16,3 +16,16 @@ struct S* p ;
    \offset( &p->a[i] ) <= \offset( &p->a[j] ) ;
  */
 void f(void){return;}
+
+struct { int a ; int b ; } x ;
+struct { int a ; int b ; } y ;
+struct { double a ; int b ; } z ;
+
+void g(void){
+  int *xb = &x.b;
+  int *yb = &y.b;
+  int *zb = &z.b;
+
+  //@ check KO: \offset(xb) == \offset(zb) ;
+  //@ check KO: \offset(xb) != \offset(yb) ;
+}
diff --git a/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle
index fcc2455baea..3876073ea1f 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle/base_offset.res.oracle
@@ -29,3 +29,16 @@ Assume {
 Prove: base_offset(x_1, 1 + i + x_2) <= base_offset(x_1, 1 + i_1 + x_2).
 
 ------------------------------------------------------------
+------------------------------------------------------------
+  Function g
+------------------------------------------------------------
+
+Goal Check 'KO' (file tests/wp_acsl/base_offset.i, line 29):
+Prove: base_offset_table(G_z_33) = base_offset_table(G_x_31).
+
+------------------------------------------------------------
+
+Goal Check 'KO' (file tests/wp_acsl/base_offset.i, line 30):
+Prove: base_offset_table(G_y_32) != base_offset_table(G_x_31).
+
+------------------------------------------------------------
diff --git a/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle b/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle
index 8b29211f4ec..05b7c9c11f2 100644
--- a/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle
+++ b/src/plugins/wp/tests/wp_acsl/oracle_qualif/base_offset.res.oracle
@@ -2,14 +2,17 @@
 [kernel] Parsing tests/wp_acsl/base_offset.i (no preprocessing)
 [wp] Running WP plugin...
 [wp] Warning: Missing RTE guards
-[wp] 3 goals scheduled
+[wp] 5 goals scheduled
 [wp] [Qed] Goal typed_f_ensures : Valid
 [wp] [Qed] Goal typed_f_ensures_2 : Valid
 [wp] [Alt-Ergo] Goal typed_f_ensures_3 : Valid
-[wp] Proved goals:    3 / 3
+[wp] [Alt-Ergo] Goal typed_g_check_KO : Unsuccess
+[wp] [Alt-Ergo] Goal typed_g_check_KO_2 : Unsuccess
+[wp] Proved goals:    3 / 5
   Qed:             2 
-  Alt-Ergo:        1
+  Alt-Ergo:        1  (unsuccess: 2)
 ------------------------------------------------------------
  Functions                 WP     Alt-Ergo  Total   Success
   f                         2        1        3       100%
+  g                         -        -        2       0.0%
 ------------------------------------------------------------
-- 
GitLab