From fbbd4716d19ade7f11b0aada36d752b6c32ddf24 Mon Sep 17 00:00:00 2001 From: Julien Signoles <julien.signoles@cea.fr> Date: Mon, 22 Apr 2013 13:54:14 +0000 Subject: [PATCH] [E-ACSL] improve test --- .../e-acsl-runtime/oracle/gen_ptr_init.c | 39 ++++++------------- .../e-acsl-runtime/oracle/gen_ptr_init2.c | 39 ++++++------------- .../oracle/ptr_init.1.res.oracle | 22 +++++++++-- .../e-acsl-runtime/oracle/ptr_init.res.oracle | 22 +++++++++-- .../e-acsl/tests/e-acsl-runtime/ptr_init.c | 2 +- 5 files changed, 61 insertions(+), 63 deletions(-) diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init.c index 9f336692a29..48ad882af35 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init.c @@ -119,14 +119,16 @@ void f(void) void g(int *C, int *D) { - __store_block((void *)(& C),4U); - __full_init((void *)(& C)); - __store_block((void *)(& D),4U); - __full_init((void *)(& D)); - __full_init((void *)(& C)); - C = D; + /*@ assert \initialized(&C); */ + { + int __e_acsl_initialized; + __store_block((void *)(& C),4U); + __full_init((void *)(& C)); + __e_acsl_initialized = __initialized((void *)(& C),sizeof(int *)); + e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"g", + (char *)"\\initialized(&C)",19); + } __delete_block((void *)(& C)); - __delete_block((void *)(& D)); return; } @@ -144,51 +146,34 @@ int main(void) int __retres; int *x; int *y; - int *z; - int *t; e_acsl_global_init(); - __store_block((void *)(& t),4U); - __store_block((void *)(& z),4U); __store_block((void *)(& y),4U); __store_block((void *)(& x),4U); __full_init((void *)(& B)); B = (int *)__e_acsl_malloc(sizeof(int)); __full_init((void *)(& y)); y = (int *)__e_acsl_malloc(sizeof(int)); - __full_init((void *)(& t)); - t = (int *)__e_acsl_malloc(sizeof(int)); __full_init((void *)(& x)); x = y; f(); - __full_init((void *)(& z)); - __full_init((void *)(& t)); - g(z,t); /*@ assert \initialized(&A); */ { int __e_acsl_initialized; __e_acsl_initialized = __initialized((void *)(& A),sizeof(int *)); e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&A)",30); + (char *)"\\initialized(&A)",28); } /*@ assert \initialized(&x); */ { int __e_acsl_initialized_2; __e_acsl_initialized_2 = __initialized((void *)(& x),sizeof(int *)); e_acsl_assert(__e_acsl_initialized_2,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&x)",31); - } - /*@ assert \initialized(&z); */ - { - int __e_acsl_initialized_3; - __e_acsl_initialized_3 = __initialized((void *)(& z),sizeof(int *)); - e_acsl_assert(__e_acsl_initialized_3,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&z)",32); + (char *)"\\initialized(&x)",29); } + g(x,y); __retres = 0; __delete_block((void *)(& B)); __delete_block((void *)(& A)); - __delete_block((void *)(& t)); - __delete_block((void *)(& z)); __delete_block((void *)(& y)); __delete_block((void *)(& x)); __clean(); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init2.c b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init2.c index 9f336692a29..48ad882af35 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init2.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/gen_ptr_init2.c @@ -119,14 +119,16 @@ void f(void) void g(int *C, int *D) { - __store_block((void *)(& C),4U); - __full_init((void *)(& C)); - __store_block((void *)(& D),4U); - __full_init((void *)(& D)); - __full_init((void *)(& C)); - C = D; + /*@ assert \initialized(&C); */ + { + int __e_acsl_initialized; + __store_block((void *)(& C),4U); + __full_init((void *)(& C)); + __e_acsl_initialized = __initialized((void *)(& C),sizeof(int *)); + e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"g", + (char *)"\\initialized(&C)",19); + } __delete_block((void *)(& C)); - __delete_block((void *)(& D)); return; } @@ -144,51 +146,34 @@ int main(void) int __retres; int *x; int *y; - int *z; - int *t; e_acsl_global_init(); - __store_block((void *)(& t),4U); - __store_block((void *)(& z),4U); __store_block((void *)(& y),4U); __store_block((void *)(& x),4U); __full_init((void *)(& B)); B = (int *)__e_acsl_malloc(sizeof(int)); __full_init((void *)(& y)); y = (int *)__e_acsl_malloc(sizeof(int)); - __full_init((void *)(& t)); - t = (int *)__e_acsl_malloc(sizeof(int)); __full_init((void *)(& x)); x = y; f(); - __full_init((void *)(& z)); - __full_init((void *)(& t)); - g(z,t); /*@ assert \initialized(&A); */ { int __e_acsl_initialized; __e_acsl_initialized = __initialized((void *)(& A),sizeof(int *)); e_acsl_assert(__e_acsl_initialized,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&A)",30); + (char *)"\\initialized(&A)",28); } /*@ assert \initialized(&x); */ { int __e_acsl_initialized_2; __e_acsl_initialized_2 = __initialized((void *)(& x),sizeof(int *)); e_acsl_assert(__e_acsl_initialized_2,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&x)",31); - } - /*@ assert \initialized(&z); */ - { - int __e_acsl_initialized_3; - __e_acsl_initialized_3 = __initialized((void *)(& z),sizeof(int *)); - e_acsl_assert(__e_acsl_initialized_3,(char *)"Assertion",(char *)"main", - (char *)"\\initialized(&z)",32); + (char *)"\\initialized(&x)",29); } + g(x,y); __retres = 0; __delete_block((void *)(& B)); __delete_block((void *)(& A)); - __delete_block((void *)(& t)); - __delete_block((void *)(& z)); __delete_block((void *)(& y)); __delete_block((void *)(& x)); __clean(); diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.1.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.1.res.oracle index 5e20a64ef64..22bf1abe67b 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.1.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.1.res.oracle @@ -29,9 +29,17 @@ FRAMAC_SHARE/libc/stdlib.h:127:[value] Function __malloc, behavior allocation: p FRAMAC_SHARE/libc/stdlib.h:132:[value] Function __malloc, behavior no_allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) FRAMAC_SHARE/libc/stdlib.h:127:[value] Function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) FRAMAC_SHARE/libc/stdlib.h:132:[value] Function __e_acsl_malloc, behavior no_allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/ptr_init.c:29:[kernel] warning: accessing uninitialized left-value: assert \initialized(&z); -tests/e-acsl-runtime/ptr_init.c:29:[value] completely invalid value in evaluation of - argument z +tests/e-acsl-runtime/ptr_init.c:28:[value] Assertion got status valid. +[value] using specification for function __initialized +share/e-acsl/memory_model/e_acsl_mmodel.h:86:[value] Function __initialized: postcondition got status unknown. +share/e-acsl/memory_model/e_acsl_mmodel.h:87:[value] Function __initialized: postcondition got status valid. +[value] using specification for function e_acsl_assert +share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. +tests/e-acsl-runtime/ptr_init.c:29:[value] Assertion got status valid. +tests/e-acsl-runtime/ptr_init.c:19:[value] Assertion got status valid. +[value] using specification for function __delete_block +[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype +[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function __e_acsl_malloc: @@ -41,5 +49,11 @@ tests/e-acsl-runtime/ptr_init.c:29:[value] completely invalid value in evaluatio [value] Values at end of function e_acsl_global_init: [value] Values at end of function f: A ∈ {{ NULL + [--..--] ; &alloced_return___malloc + [0..2147483647] }} +[value] Values at end of function g: [value] Values at end of function main: - NON TERMINATING FUNCTION + __fc_heap_status ∈ [--..--] + A ∈ {{ NULL + [--..--] ; &alloced_return___malloc + [0..2147483647] }} + B ∈ {{ NULL + [--..--] ; &alloced_return___malloc + [0..2147483647] }} + x ∈ {{ NULL + [--..--] ; &alloced_return___malloc + [0..2147483647] }} + y ∈ {{ NULL + [--..--] ; &alloced_return___malloc + [0..2147483647] }} + __retres ∈ {0} diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.res.oracle b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.res.oracle index 5e20a64ef64..22bf1abe67b 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.res.oracle +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/oracle/ptr_init.res.oracle @@ -29,9 +29,17 @@ FRAMAC_SHARE/libc/stdlib.h:127:[value] Function __malloc, behavior allocation: p FRAMAC_SHARE/libc/stdlib.h:132:[value] Function __malloc, behavior no_allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) FRAMAC_SHARE/libc/stdlib.h:127:[value] Function __e_acsl_malloc, behavior allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) FRAMAC_SHARE/libc/stdlib.h:132:[value] Function __e_acsl_malloc, behavior no_allocation: postcondition got status unknown. (Behavior may be inactive, no reduction performed.) -tests/e-acsl-runtime/ptr_init.c:29:[kernel] warning: accessing uninitialized left-value: assert \initialized(&z); -tests/e-acsl-runtime/ptr_init.c:29:[value] completely invalid value in evaluation of - argument z +tests/e-acsl-runtime/ptr_init.c:28:[value] Assertion got status valid. +[value] using specification for function __initialized +share/e-acsl/memory_model/e_acsl_mmodel.h:86:[value] Function __initialized: postcondition got status unknown. +share/e-acsl/memory_model/e_acsl_mmodel.h:87:[value] Function __initialized: postcondition got status valid. +[value] using specification for function e_acsl_assert +share/e-acsl/e_acsl.h:34:[value] Function e_acsl_assert: precondition got status unknown. +tests/e-acsl-runtime/ptr_init.c:29:[value] Assertion got status valid. +tests/e-acsl-runtime/ptr_init.c:19:[value] Assertion got status valid. +[value] using specification for function __delete_block +[kernel] warning: Neither code nor specification for function __clean, generating default assigns from the prototype +[value] using specification for function __clean [value] done for function main [value] ====== VALUES COMPUTED ====== [value] Values at end of function __e_acsl_malloc: @@ -41,5 +49,11 @@ tests/e-acsl-runtime/ptr_init.c:29:[value] completely invalid value in evaluatio [value] Values at end of function e_acsl_global_init: [value] Values at end of function f: A ∈ {{ NULL + [--..--] ; &alloced_return___malloc + [0..2147483647] }} +[value] Values at end of function g: [value] Values at end of function main: - NON TERMINATING FUNCTION + __fc_heap_status ∈ [--..--] + A ∈ {{ NULL + [--..--] ; &alloced_return___malloc + [0..2147483647] }} + B ∈ {{ NULL + [--..--] ; &alloced_return___malloc + [0..2147483647] }} + x ∈ {{ NULL + [--..--] ; &alloced_return___malloc + [0..2147483647] }} + y ∈ {{ NULL + [--..--] ; &alloced_return___malloc + [0..2147483647] }} + __retres ∈ {0} diff --git a/src/plugins/e-acsl/tests/e-acsl-runtime/ptr_init.c b/src/plugins/e-acsl/tests/e-acsl-runtime/ptr_init.c index cc1d4258b19..90576a4b9df 100644 --- a/src/plugins/e-acsl/tests/e-acsl-runtime/ptr_init.c +++ b/src/plugins/e-acsl/tests/e-acsl-runtime/ptr_init.c @@ -27,6 +27,6 @@ int main(void) { f(); /*@ assert \initialized(&A); */ /*@ assert \initialized(&x); */ - g(y, x); + g(x, y); return 0; } -- GitLab