From 8db1e8cfdf42569bae3530c1431275113d495d78 Mon Sep 17 00:00:00 2001 From: Valentin Perrelle <valentin.perrelle@cea.fr> Date: Fri, 7 Apr 2023 17:02:48 +0200 Subject: [PATCH] [Eva] statistics: add a test --- tests/value/oracle/statistics.res.oracle | 76 +++++++++++++++++++ tests/value/oracle/statistics.stats | 7 ++ .../value/oracle_apron/statistics.res.oracle | 17 +++++ tests/value/oracle_apron/statistics.stats | 6 ++ tests/value/oracle_bitwise/statistics.stats | 7 ++ tests/value/oracle_equality/statistics.stats | 7 ++ tests/value/oracle_gauges/statistics.stats | 7 ++ tests/value/oracle_multidim/statistics.stats | 7 ++ tests/value/oracle_octagon/statistics.stats | 7 ++ tests/value/oracle_symblocs/statistics.stats | 7 ++ tests/value/statistics.i | 17 +++++ 11 files changed, 165 insertions(+) create mode 100644 tests/value/oracle/statistics.res.oracle create mode 100644 tests/value/oracle/statistics.stats create mode 100644 tests/value/oracle_apron/statistics.res.oracle create mode 100644 tests/value/oracle_apron/statistics.stats create mode 100644 tests/value/oracle_bitwise/statistics.stats create mode 100644 tests/value/oracle_equality/statistics.stats create mode 100644 tests/value/oracle_gauges/statistics.stats create mode 100644 tests/value/oracle_multidim/statistics.stats create mode 100644 tests/value/oracle_octagon/statistics.stats create mode 100644 tests/value/oracle_symblocs/statistics.stats create mode 100644 tests/value/statistics.i diff --git a/tests/value/oracle/statistics.res.oracle b/tests/value/oracle/statistics.res.oracle new file mode 100644 index 00000000000..525a88abd35 --- /dev/null +++ b/tests/value/oracle/statistics.res.oracle @@ -0,0 +1,76 @@ +[kernel] Parsing statistics.i (no preprocessing) +[eva] Analyzing a complete application starting at main +[eva] Computing initial state +[eva] Initial state computed +[eva:initial-state] Values of globals at initialization + +[eva] computing for function f <- main. + Called from statistics.i:15. +[eva] computing for function g <- f <- main. + Called from statistics.i:10. +[eva] Recording results for g +[eva] Done for function g +[eva] statistics.i:9: starting to merge loop iterations +[eva] computing for function g <- f <- main. + Called from statistics.i:10. +[eva] Recording results for g +[eva] Done for function g +[eva] computing for function g <- f <- main. + Called from statistics.i:10. +[eva] Recording results for g +[eva] Done for function g +[eva] computing for function g <- f <- main. + Called from statistics.i:10. +[eva] Recording results for g +[eva] Done for function g +[eva] Recording results for f +[eva] Done for function f +[eva:alarm] statistics.i:16: Warning: + signed overflow. assert -2147483648 ≤ n - 1; +[eva] computing for function f <- main. + Called from statistics.i:16. +[eva] statistics.i:10: Reusing old results for call to g +[eva] statistics.i:10: Reusing old results for call to g +[eva] statistics.i:10: Reusing old results for call to g +[eva] computing for function g <- f <- main. + Called from statistics.i:10. +[eva] Recording results for g +[eva] Done for function g +[eva] Recording results for f +[eva] Done for function f +[eva] Recording results for main +[eva] done for function main +[eva] ====== VALUES COMPUTED ====== +[eva:final-states] Values at end of function g: + +[eva:final-states] Values at end of function f: + i ∈ [0..2147483647] +[eva:final-states] Values at end of function main: + __retres ∈ {0} +[from] Computing for function g +[from] Done for function g +[from] Computing for function f +[from] Done for function f +[from] Computing for function main +[from] Done for function main +[from] ====== DEPENDENCIES COMPUTED ====== + These dependencies hold at termination for the executions that terminate: +[from] Function g: + NO EFFECTS +[from] Function f: + NO EFFECTS +[from] Function main: + \result FROM \nothing +[from] ====== END OF DEPENDENCIES ====== +[inout] Out (internal) for function g: + \nothing +[inout] Inputs for function g: + \nothing +[inout] Out (internal) for function f: + i +[inout] Inputs for function f: + \nothing +[inout] Out (internal) for function main: + __retres +[inout] Inputs for function main: + \nothing diff --git a/tests/value/oracle/statistics.stats b/tests/value/oracle/statistics.stats new file mode 100644 index 00000000000..adde9af7b2f --- /dev/null +++ b/tests/value/oracle/statistics.stats @@ -0,0 +1,7 @@ +memexec-hits:g 3 +memexec-misses:g 5 +memexec-misses:f 2 +memexec-misses:main 1 +partitioning-index-misses 57 +max-widenings:statistics.i:9 1 +iterations:statistics.i:9 8 diff --git a/tests/value/oracle_apron/statistics.res.oracle b/tests/value/oracle_apron/statistics.res.oracle new file mode 100644 index 00000000000..df0e4d5911b --- /dev/null +++ b/tests/value/oracle_apron/statistics.res.oracle @@ -0,0 +1,17 @@ +32,34c32,43 +< [eva] statistics.i:10: Reusing old results for call to g +< [eva] statistics.i:10: Reusing old results for call to g +< [eva] statistics.i:10: Reusing old results for call to g +--- +> [eva] computing for function g <- f <- main. +> Called from statistics.i:10. +> [eva] Recording results for g +> [eva] Done for function g +> [eva] computing for function g <- f <- main. +> Called from statistics.i:10. +> [eva] Recording results for g +> [eva] Done for function g +> [eva] computing for function g <- f <- main. +> Called from statistics.i:10. +> [eva] Recording results for g +> [eva] Done for function g diff --git a/tests/value/oracle_apron/statistics.stats b/tests/value/oracle_apron/statistics.stats new file mode 100644 index 00000000000..fbbfc57885e --- /dev/null +++ b/tests/value/oracle_apron/statistics.stats @@ -0,0 +1,6 @@ +memexec-misses:g 8 +memexec-misses:f 2 +memexec-misses:main 1 +partitioning-index-misses 60 +max-widenings:statistics.i:9 1 +iterations:statistics.i:9 8 diff --git a/tests/value/oracle_bitwise/statistics.stats b/tests/value/oracle_bitwise/statistics.stats new file mode 100644 index 00000000000..adde9af7b2f --- /dev/null +++ b/tests/value/oracle_bitwise/statistics.stats @@ -0,0 +1,7 @@ +memexec-hits:g 3 +memexec-misses:g 5 +memexec-misses:f 2 +memexec-misses:main 1 +partitioning-index-misses 57 +max-widenings:statistics.i:9 1 +iterations:statistics.i:9 8 diff --git a/tests/value/oracle_equality/statistics.stats b/tests/value/oracle_equality/statistics.stats new file mode 100644 index 00000000000..adde9af7b2f --- /dev/null +++ b/tests/value/oracle_equality/statistics.stats @@ -0,0 +1,7 @@ +memexec-hits:g 3 +memexec-misses:g 5 +memexec-misses:f 2 +memexec-misses:main 1 +partitioning-index-misses 57 +max-widenings:statistics.i:9 1 +iterations:statistics.i:9 8 diff --git a/tests/value/oracle_gauges/statistics.stats b/tests/value/oracle_gauges/statistics.stats new file mode 100644 index 00000000000..adde9af7b2f --- /dev/null +++ b/tests/value/oracle_gauges/statistics.stats @@ -0,0 +1,7 @@ +memexec-hits:g 3 +memexec-misses:g 5 +memexec-misses:f 2 +memexec-misses:main 1 +partitioning-index-misses 57 +max-widenings:statistics.i:9 1 +iterations:statistics.i:9 8 diff --git a/tests/value/oracle_multidim/statistics.stats b/tests/value/oracle_multidim/statistics.stats new file mode 100644 index 00000000000..adde9af7b2f --- /dev/null +++ b/tests/value/oracle_multidim/statistics.stats @@ -0,0 +1,7 @@ +memexec-hits:g 3 +memexec-misses:g 5 +memexec-misses:f 2 +memexec-misses:main 1 +partitioning-index-misses 57 +max-widenings:statistics.i:9 1 +iterations:statistics.i:9 8 diff --git a/tests/value/oracle_octagon/statistics.stats b/tests/value/oracle_octagon/statistics.stats new file mode 100644 index 00000000000..adde9af7b2f --- /dev/null +++ b/tests/value/oracle_octagon/statistics.stats @@ -0,0 +1,7 @@ +memexec-hits:g 3 +memexec-misses:g 5 +memexec-misses:f 2 +memexec-misses:main 1 +partitioning-index-misses 57 +max-widenings:statistics.i:9 1 +iterations:statistics.i:9 8 diff --git a/tests/value/oracle_symblocs/statistics.stats b/tests/value/oracle_symblocs/statistics.stats new file mode 100644 index 00000000000..adde9af7b2f --- /dev/null +++ b/tests/value/oracle_symblocs/statistics.stats @@ -0,0 +1,7 @@ +memexec-hits:g 3 +memexec-misses:g 5 +memexec-misses:f 2 +memexec-misses:main 1 +partitioning-index-misses 57 +max-widenings:statistics.i:9 1 +iterations:statistics.i:9 8 diff --git a/tests/value/statistics.i b/tests/value/statistics.i new file mode 100644 index 00000000000..fc219e146b9 --- /dev/null +++ b/tests/value/statistics.i @@ -0,0 +1,17 @@ +/* run.config* + LOG: @PTEST_NAME@.stats + STDOPT: +" -eva-statistics-file ./@PTEST_NAME@.stats" +*/ + +void g(int i) {} + +void f(int n) { + for (int i = 0 ; i < n ; i++) { + g(i); + } +} + +int main(int n) { + f(n); + f(n-1); +} -- GitLab