Commit a3450be0 authored by Virgile Prevosto's avatar Virgile Prevosto
Browse files

[tests] refine test to test new ptests' behavior

parent aa2e9289
/* run.config /* run.config
STDOPT: #"-metrics-no-libc -metrics-eva-cover" STDOPT: #"-metrics-no-libc -metrics-eva-cover"
STDOPT: #"-metrics-libc -metrics-eva-cover" STDOPT: #"-metrics-libc -metrics-eva-cover"
STDOPT: #"-metrics-libc -metrics-output @PTEST_DIR@/result/libc.json"
LOG: libc.json LOG: libc.json
OPT: STDOPT: #"-metrics-libc -metrics-output @PTEST_DIR@/result/libc.json"
*/ */
#include <ctype.h> #include <ctype.h>
#include <stdio.h> // defines external variables #include <stdio.h> // defines external variables
...@@ -24,6 +23,8 @@ int g() { // called via fp ...@@ -24,6 +23,8 @@ int g() { // called via fp
return isalpha(42); return isalpha(42);
} }
int h() { return 0; }
int (*fp)() = g; int (*fp)() = g;
int getopt(int argc, char * const argv[], int getopt(int argc, char * const argv[],
...@@ -34,5 +35,6 @@ int getopt(int argc, char * const argv[], ...@@ -34,5 +35,6 @@ int getopt(int argc, char * const argv[],
int main() { int main() {
fp(); fp();
getopt(0, 0, 0); getopt(0, 0, 0);
h();
return isblank(0); return isblank(0);
} }
[kernel] Parsing tests/metrics/libc.c (with preprocessing) [kernel] Parsing tests/metrics/libc.c (with preprocessing)
[metrics] Defined functions (5) [metrics] Defined functions (6)
===================== =====================
bar (0 call); f (0 call); foo (0 call); g (address taken) (0 call); bar (0 call); f (0 call); foo (0 call); g (address taken) (0 call);
main (0 call); h (1 call); main (0 call);
Specified-only functions (0) Specified-only functions (0)
============================ ============================
...@@ -22,18 +22,18 @@ ...@@ -22,18 +22,18 @@
Global metrics Global metrics
============== ==============
Sloc = 12 Sloc = 15
Decision point = 0 Decision point = 0
Global variables = 1 Global variables = 1
If = 0 If = 0
Loop = 0 Loop = 0
Goto = 0 Goto = 0
Assignment = 5 Assignment = 6
Exit point = 5 Exit point = 6
Function = 5 Function = 6
Function call = 5 Function call = 6
Pointer dereferencing = 1 Pointer dereferencing = 1
Cyclomatic complexity = 5 Cyclomatic complexity = 6
[eva] Analyzing a complete application starting at main [eva] Analyzing a complete application starting at main
[eva] Computing initial state [eva] Computing initial state
[eva] Initial state computed [eva] Initial state computed
...@@ -44,8 +44,8 @@ ...@@ -44,8 +44,8 @@
[eva] done for function main [eva] done for function main
[eva:summary] ====== ANALYSIS SUMMARY ====== [eva:summary] ====== ANALYSIS SUMMARY ======
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
4 functions analyzed (out of 5): 80% coverage. 5 functions analyzed (out of 6): 83% coverage.
In these functions, 10 statements reached (out of 10): 100% coverage. In these functions, 13 statements reached (out of 13): 100% coverage.
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
No errors or warnings raised during the analysis. No errors or warnings raised during the analysis.
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
...@@ -58,15 +58,16 @@ ...@@ -58,15 +58,16 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
[metrics] Eva coverage statistics [metrics] Eva coverage statistics
======================= =======================
Syntactically reachable functions = 4 (out of 5) Syntactically reachable functions = 5 (out of 6)
Semantically reached functions = 4 Semantically reached functions = 5
Coverage estimation = 100.0% Coverage estimation = 100.0%
[metrics] References to non-analyzed functions [metrics] References to non-analyzed functions
------------------------------------ ------------------------------------
[metrics] Statements analyzed by Eva [metrics] Statements analyzed by Eva
-------------------------- --------------------------
10 stmts in analyzed functions, 10 stmts analyzed (100.0%) 13 stmts in analyzed functions, 13 stmts analyzed (100.0%)
bar: 2 stmts out of 2 (100.0%) bar: 2 stmts out of 2 (100.0%)
foo: 2 stmts out of 2 (100.0%) foo: 2 stmts out of 2 (100.0%)
g: 2 stmts out of 2 (100.0%) g: 2 stmts out of 2 (100.0%)
main: 4 stmts out of 4 (100.0%) h: 2 stmts out of 2 (100.0%)
main: 5 stmts out of 5 (100.0%)
[kernel] Parsing tests/metrics/libc.c (with preprocessing) [kernel] Parsing tests/metrics/libc.c (with preprocessing)
[metrics] Defined functions (6) [metrics] Defined functions (7)
===================== =====================
bar (1 call); f (0 call); foo (1 call); g (address taken) (0 call); bar (1 call); f (0 call); foo (1 call); g (address taken) (0 call);
getopt (1 call); main (0 call); getopt (1 call); h (1 call); main (0 call);
Specified-only functions (122) Specified-only functions (122)
============================== ==============================
...@@ -55,18 +55,18 @@ ...@@ -55,18 +55,18 @@
Global metrics Global metrics
============== ==============
Sloc = 17 Sloc = 20
Decision point = 0 Decision point = 0
Global variables = 17 Global variables = 17
If = 0 If = 0
Loop = 0 Loop = 0
Goto = 0 Goto = 0
Assignment = 8 Assignment = 9
Exit point = 6 Exit point = 7
Function = 128 Function = 129
Function call = 7 Function call = 8
Pointer dereferencing = 1 Pointer dereferencing = 1
Cyclomatic complexity = 6 Cyclomatic complexity = 7
[eva] Analyzing a complete application starting at main [eva] Analyzing a complete application starting at main
[eva] Computing initial state [eva] Computing initial state
[eva] Initial state computed [eva] Initial state computed
...@@ -77,8 +77,8 @@ ...@@ -77,8 +77,8 @@
[eva] done for function main [eva] done for function main
[eva:summary] ====== ANALYSIS SUMMARY ====== [eva:summary] ====== ANALYSIS SUMMARY ======
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
4 functions analyzed (out of 5): 80% coverage. 5 functions analyzed (out of 6): 83% coverage.
In these functions, 10 statements reached (out of 10): 100% coverage. In these functions, 13 statements reached (out of 13): 100% coverage.
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
No errors or warnings raised during the analysis. No errors or warnings raised during the analysis.
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
...@@ -91,16 +91,17 @@ ...@@ -91,16 +91,17 @@
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
[metrics] Eva coverage statistics [metrics] Eva coverage statistics
======================= =======================
Syntactically reachable functions = 7 (out of 128) Syntactically reachable functions = 8 (out of 129)
Semantically reached functions = 7 Semantically reached functions = 8
Coverage estimation = 100.0% Coverage estimation = 100.0%
[metrics] References to non-analyzed functions [metrics] References to non-analyzed functions
------------------------------------ ------------------------------------
[metrics] Statements analyzed by Eva [metrics] Statements analyzed by Eva
-------------------------- --------------------------
15 stmts in analyzed functions, 15 stmts analyzed (100.0%) 18 stmts in analyzed functions, 18 stmts analyzed (100.0%)
bar: 2 stmts out of 2 (100.0%) bar: 2 stmts out of 2 (100.0%)
foo: 2 stmts out of 2 (100.0%) foo: 2 stmts out of 2 (100.0%)
g: 2 stmts out of 2 (100.0%) g: 2 stmts out of 2 (100.0%)
getopt: 5 stmts out of 5 (100.0%) getopt: 5 stmts out of 5 (100.0%)
main: 4 stmts out of 4 (100.0%) h: 2 stmts out of 2 (100.0%)
main: 5 stmts out of 5 (100.0%)
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
{ "foo": { "calls": 1, "address_taken": false } }, { "foo": { "calls": 1, "address_taken": false } },
{ "g": { "calls": 0, "address_taken": true } }, { "g": { "calls": 0, "address_taken": true } },
{ "getopt": { "calls": 1, "address_taken": false } }, { "getopt": { "calls": 1, "address_taken": false } },
{ "h": { "calls": 1, "address_taken": false } },
{ "main": { "calls": 0, "address_taken": false } } { "main": { "calls": 0, "address_taken": false } }
], ],
"specified-only-functions": [ "specified-only-functions": [
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment