From 03f04141a7fe0275cb0180359de80aaf799b473c Mon Sep 17 00:00:00 2001 From: Virgile Prevosto <virgile.prevosto@m4x.org> Date: Tue, 12 Jan 2021 09:16:55 +0100 Subject: [PATCH] [aorai] update oracles --- .../tests/ltl/oracle/test_boucle.res.oracle | 9 +- .../tests/ltl/oracle/test_boucle1.res.oracle | 6 +- .../tests/ltl/oracle/test_boucle2.res.oracle | 4 +- .../tests/ltl/oracle/test_boucle3.res.oracle | 4 +- .../ltl/oracle/test_factorial.res.oracle | 15 +- .../ltl/oracle/test_recursion2.0.res.oracle | 6 +- .../ltl/oracle/test_recursion2.1.res.oracle | 10 +- .../tests/ltl/oracle/test_switch3.res.oracle | 16 +- .../ltl/oracle/test_switch3_if.res.oracle | 16 +- .../ltl/oracle/test_switch3_return.res.oracle | 16 +- .../aorai/tests/ya/logical_operators.i | 2 +- .../ya/oracle/aorai_ptr_field.res.oracle | 11 +- .../tests/ya/oracle/deterministic.res.oracle | 33 +- .../aorai/tests/ya/oracle/formals.res.oracle | 65 +++- .../tests/ya/oracle/hoare_seq.res.oracle | 30 +- .../ya/oracle/logical_operators.res.oracle | 9 +- .../tests/ya/oracle/loop_bts1050.res.oracle | 18 +- .../ya/oracle/metavariables-right.res.oracle | 4 +- .../aorai/tests/ya/oracle/not_prm.res.oracle | 4 +- .../aorai/tests/ya/oracle/other.res.oracle | 223 ++++++++++-- .../aorai/tests/ya/oracle/seq.res.oracle | 17 +- .../aorai/tests/ya/oracle/seq_loop.res.oracle | 18 +- .../aorai/tests/ya/oracle/serial.res.oracle | 331 +++++++++++++----- .../aorai/tests/ya/oracle/stack.res.oracle | 25 +- .../ya/oracle/test_acces_params.res.oracle | 8 +- .../ya/oracle/test_acces_params2.res.oracle | 8 +- .../test_boucle_rechercheTableau.res.oracle | 8 +- .../tests/ya/oracle/test_factorial.res.oracle | 12 +- .../ya/oracle/test_recursion4.res.oracle | 22 +- .../ya/oracle/test_recursion5.res.oracle | 29 +- .../tests/ya/oracle/test_struct.res.oracle | 16 +- 31 files changed, 742 insertions(+), 253 deletions(-) diff --git a/src/plugins/aorai/tests/ltl/oracle/test_boucle.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_boucle.res.oracle index 04174d4018a..c73da4393f5 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_boucle.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_boucle.res.oracle @@ -52,8 +52,9 @@ extern int call_to_an_undefined_function(void); T0_S2_tmp = T0_S2; T0_init_tmp = T0_init; accept_S1_tmp = accept_S1; - if (T0_S2 == 1 || accept_S1 == 1) accept_S1_tmp = 1; - else accept_S1_tmp = 0; + if (T0_S2 == 1) accept_S1_tmp = 1; + else + if (accept_S1 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0; T0_init_tmp = 0; T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; @@ -160,7 +161,9 @@ int a(void) accept_S1_tmp = accept_S1; accept_S1_tmp = 0; T0_init_tmp = 0; - if (T0_S2 == 1 || accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; + if (T0_S2 == 1) T0_S2_tmp = 1; + else + if (accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; T0_init = T0_init_tmp; accept_S1 = accept_S1_tmp; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_boucle1.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_boucle1.res.oracle index aed1c6cbbf0..380098d2be6 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_boucle1.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_boucle1.res.oracle @@ -274,10 +274,12 @@ int commit_trans(void) accept_S4_tmp = accept_S4; accept_init_tmp = accept_init; accept_init_tmp = 0; - if (accept_S2 == 1 && status != 0) accept_S4_tmp = 1; + if (accept_S2 == 1) + if (status != 0) accept_S4_tmp = 1; else accept_S4_tmp = 0; else accept_S4_tmp = 0; accept_S3_tmp = 0; - if (accept_S2 == 1 && status == 0) accept_S2_tmp = 1; + if (accept_S2 == 1) + if (status == 0) accept_S2_tmp = 1; else accept_S2_tmp = 0; else accept_S2_tmp = 0; accept_S1_tmp = 0; accept_S1 = accept_S1_tmp; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_boucle2.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_boucle2.res.oracle index 9ab4d87d9cc..53bd6b3751c 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_boucle2.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_boucle2.res.oracle @@ -145,7 +145,9 @@ int rr = 1; accept_all_tmp = 0; accept_S5_tmp = 0; accept_S4_tmp = 0; - if (T0_S2 == 1 && rr == 51) accept_S3_tmp = 1; else accept_S3_tmp = 0; + if (T0_S2 == 1) + if (rr == 51) accept_S3_tmp = 1; else accept_S3_tmp = 0; + else accept_S3_tmp = 0; T0_init_tmp = 0; if (T0_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_boucle3.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_boucle3.res.oracle index 8b2d1dbb5f2..3a2a6c4f723 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_boucle3.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_boucle3.res.oracle @@ -238,7 +238,9 @@ void opa(void) accept_S3_tmp = accept_S3; accept_all_tmp = accept_all; accept_all_tmp = 0; - if (T1_S2 == 1 && rr == 51) accept_S3_tmp = 1; else accept_S3_tmp = 0; + if (T1_S2 == 1) + if (rr == 51) accept_S3_tmp = 1; else accept_S3_tmp = 0; + else accept_S3_tmp = 0; T1_S2_tmp = 0; T0_init_tmp = 0; T0_S4_tmp = 0; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_factorial.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_factorial.res.oracle index 4a0a9031b26..12e9c8f60dc 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_factorial.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_factorial.res.oracle @@ -219,8 +219,9 @@ int decode_int(char *s) accept_S2_tmp = accept_S2; accept_init_tmp = accept_init; accept_init_tmp = 0; - if (accept_S1 == 1 || accept_S2 == 1) accept_S2_tmp = 1; - else accept_S2_tmp = 0; + if (accept_S1 == 1) accept_S2_tmp = 1; + else + if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0; accept_S1_tmp = 0; accept_S1 = accept_S1_tmp; accept_S2 = accept_S2_tmp; @@ -268,10 +269,12 @@ int decode_int(char *s) accept_S2_tmp = accept_S2; accept_init_tmp = accept_init; accept_init_tmp = 0; - if (accept_S1 == 1 || accept_S2 == 1) accept_S2_tmp = 1; - else accept_S2_tmp = 0; - if (accept_S1 == 1 || accept_S2 == 1) accept_S1_tmp = 1; - else accept_S1_tmp = 0; + if (accept_S1 == 1) accept_S2_tmp = 1; + else + if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0; + if (accept_S1 == 1) accept_S1_tmp = 1; + else + if (accept_S2 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0; accept_S1 = accept_S1_tmp; accept_S2 = accept_S2_tmp; accept_init = accept_init_tmp; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_recursion2.0.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_recursion2.0.res.oracle index 6dda5c9d85b..472c3f9634c 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_recursion2.0.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_recursion2.0.res.oracle @@ -106,7 +106,11 @@ int global_argc = 0; accept_T2_tmp = 0; T1_tmp = 0; T0_init_tmp = 0; - if (S1 == 1 || T1 == 1 && global_argc > 0) S1_tmp = 1; else S1_tmp = 0; + if (S1 == 1) S1_tmp = 1; + else + if (T1 == 1) + if (global_argc > 0) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; S1 = S1_tmp; T0_init = T0_init_tmp; T1 = T1_tmp; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_recursion2.1.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_recursion2.1.res.oracle index aabed966d5a..e2146d41412 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_recursion2.1.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_recursion2.1.res.oracle @@ -106,7 +106,11 @@ int global_argc = 0; accept_T2_tmp = 0; T1_tmp = 0; T0_init_tmp = 0; - if (S1 == 1 || T1 == 1 && global_argc > 0) S1_tmp = 1; else S1_tmp = 0; + if (S1 == 1) S1_tmp = 1; + else + if (T1 == 1) + if (global_argc > 0) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; S1 = S1_tmp; T0_init = T0_init_tmp; T1 = T1_tmp; @@ -420,7 +424,9 @@ int sumOne(char *t, int length) T0_init_tmp = T0_init; T1_tmp = T1; accept_T2_tmp = accept_T2; - if (T1 == 1 && res == 1) accept_T2_tmp = 1; else accept_T2_tmp = 0; + if (T1 == 1) + if (res == 1) accept_T2_tmp = 1; else accept_T2_tmp = 0; + else accept_T2_tmp = 0; if (T1 == 1) T1_tmp = 1; else T1_tmp = 0; T0_init_tmp = 0; S1_tmp = 0; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_switch3.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_switch3.res.oracle index 3b0822025db..5d44a348df9 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_switch3.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_switch3.res.oracle @@ -58,7 +58,9 @@ enum aorai_OpStatusList { accept_S2_tmp = 0; accept_S1_tmp = 0; T0_init_tmp = 0; - if (T0_S2 == 1 || accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; + if (T0_S2 == 1) T0_S2_tmp = 1; + else + if (accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; T0_init = T0_init_tmp; accept_S1 = accept_S1_tmp; @@ -250,10 +252,14 @@ int countOne(char *argv) T0_init_tmp = T0_init; accept_S1_tmp = accept_S1; accept_S2_tmp = accept_S2; - if (T0_S2 == 1 || accept_S2 == 1) accept_S2_tmp = 1; - else accept_S2_tmp = 0; - if ((T0_S2 == 1 || accept_S1 == 1) || accept_S2 == 1) accept_S1_tmp = 1; - else accept_S1_tmp = 0; + if (T0_S2 == 1) accept_S2_tmp = 1; + else + if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0; + if (T0_S2 == 1) accept_S1_tmp = 1; + else + if (accept_S1 == 1) accept_S1_tmp = 1; + else + if (accept_S2 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0; T0_init_tmp = 0; if (accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_switch3_if.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_switch3_if.res.oracle index 74f48874eb3..64fcb6cad31 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_switch3_if.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_switch3_if.res.oracle @@ -58,7 +58,9 @@ enum aorai_OpStatusList { accept_S2_tmp = 0; accept_S1_tmp = 0; T0_init_tmp = 0; - if (T0_S2 == 1 || accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; + if (T0_S2 == 1) T0_S2_tmp = 1; + else + if (accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; T0_init = T0_init_tmp; accept_S1 = accept_S1_tmp; @@ -248,10 +250,14 @@ int countOne(char *argv) T0_init_tmp = T0_init; accept_S1_tmp = accept_S1; accept_S2_tmp = accept_S2; - if (T0_S2 == 1 || accept_S2 == 1) accept_S2_tmp = 1; - else accept_S2_tmp = 0; - if ((T0_S2 == 1 || accept_S1 == 1) || accept_S2 == 1) accept_S1_tmp = 1; - else accept_S1_tmp = 0; + if (T0_S2 == 1) accept_S2_tmp = 1; + else + if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0; + if (T0_S2 == 1) accept_S1_tmp = 1; + else + if (accept_S1 == 1) accept_S1_tmp = 1; + else + if (accept_S2 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0; T0_init_tmp = 0; if (accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; diff --git a/src/plugins/aorai/tests/ltl/oracle/test_switch3_return.res.oracle b/src/plugins/aorai/tests/ltl/oracle/test_switch3_return.res.oracle index e4f973d66d5..e3db4bca9bb 100644 --- a/src/plugins/aorai/tests/ltl/oracle/test_switch3_return.res.oracle +++ b/src/plugins/aorai/tests/ltl/oracle/test_switch3_return.res.oracle @@ -58,7 +58,9 @@ enum aorai_OpStatusList { accept_S2_tmp = 0; accept_S1_tmp = 0; T0_init_tmp = 0; - if (T0_S2 == 1 || accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; + if (T0_S2 == 1) T0_S2_tmp = 1; + else + if (accept_S2 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; T0_init = T0_init_tmp; accept_S1 = accept_S1_tmp; @@ -255,10 +257,14 @@ int countOne(char *argv) T0_init_tmp = T0_init; accept_S1_tmp = accept_S1; accept_S2_tmp = accept_S2; - if (T0_S2 == 1 || accept_S2 == 1) accept_S2_tmp = 1; - else accept_S2_tmp = 0; - if ((T0_S2 == 1 || accept_S1 == 1) || accept_S2 == 1) accept_S1_tmp = 1; - else accept_S1_tmp = 0; + if (T0_S2 == 1) accept_S2_tmp = 1; + else + if (accept_S2 == 1) accept_S2_tmp = 1; else accept_S2_tmp = 0; + if (T0_S2 == 1) accept_S1_tmp = 1; + else + if (accept_S1 == 1) accept_S1_tmp = 1; + else + if (accept_S2 == 1) accept_S1_tmp = 1; else accept_S1_tmp = 0; T0_init_tmp = 0; if (accept_S1 == 1) T0_S2_tmp = 1; else T0_S2_tmp = 0; T0_S2 = T0_S2_tmp; diff --git a/src/plugins/aorai/tests/ya/logical_operators.i b/src/plugins/aorai/tests/ya/logical_operators.i index 3a5beaefe1a..1dcbba59346 100644 --- a/src/plugins/aorai/tests/ya/logical_operators.i +++ b/src/plugins/aorai/tests/ya/logical_operators.i @@ -1,5 +1,5 @@ /* run.config* - OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -aorai-test 1 -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ + OPT: -aorai-automata @PTEST_DIR@/@PTEST_NAME@.ya -load-module tests/Aorai_test.cmxs -aorai-test-number @PTEST_NUMBER@ @PROVE_OPTIONS@ */ void f(int x) {} diff --git a/src/plugins/aorai/tests/ya/oracle/aorai_ptr_field.res.oracle b/src/plugins/aorai/tests/ya/oracle/aorai_ptr_field.res.oracle index d8cb4fbaee5..1c1744e5f85 100644 --- a/src/plugins/aorai/tests/ya/oracle/aorai_ptr_field.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/aorai_ptr_field.res.oracle @@ -42,8 +42,15 @@ enum aorai_OpStatusList { aorai_CurOperation = op_main; S0_tmp = S0; S1_tmp = S1; - if (S0 == 1 && s->x >= 0 || S0 == 1 && s->x < 0) S1_tmp = 1; - else S1_tmp = 0; + if (S0 == 1) { + if (s->x >= 0) S1_tmp = 1; else goto __aorai_label; + } + else { + __aorai_label: ; + if (S0 == 1) + if (s->x < 0) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; + } S0_tmp = 0; S0 = S0_tmp; S1 = S1_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/deterministic.res.oracle b/src/plugins/aorai/tests/ya/oracle/deterministic.res.oracle index 7982cfe7c16..a48b55abef9 100644 --- a/src/plugins/aorai/tests/ya/oracle/deterministic.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/deterministic.res.oracle @@ -112,10 +112,16 @@ check lemma S0_deterministic_trans{L}: /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_g; - if (3 == aorai_CurStates && x == 4) aorai_CurStates = S4; - else - if (3 == aorai_CurStates && x == 5) aorai_CurStates = S5; + if (3 == aorai_CurStates) { + if (x == 4) aorai_CurStates = S4; else goto __aorai_label; + } + else { + __aorai_label: ; + if (3 == aorai_CurStates) + if (x == 5) aorai_CurStates = S5; + else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; + } return; } @@ -241,7 +247,8 @@ void g(int x) /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; - if (1 == aorai_CurStates && x == 4) aorai_CurStates = S3; + if (1 == aorai_CurStates) + if (x == 4) aorai_CurStates = S3; else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; return; } @@ -292,7 +299,11 @@ void g(int x) /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; - if (1 == aorai_CurStates && (res == 0 && X == 5)) aorai_CurStates = S2; + if (1 == aorai_CurStates) + if (res == 0) + if (X == 5) aorai_CurStates = S2; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; return; } @@ -368,10 +379,16 @@ int f(int x) /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_real_main; - if (0 == aorai_CurStates && c != 0) aorai_CurStates = S1; - else - if (0 == aorai_CurStates && c == 0) aorai_CurStates = S2; + if (0 == aorai_CurStates) { + if (c != 0) aorai_CurStates = S1; else goto __aorai_label_0; + } + else { + __aorai_label_0: ; + if (0 == aorai_CurStates) + if (c == 0) aorai_CurStates = S2; + else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; + } return; } diff --git a/src/plugins/aorai/tests/ya/oracle/formals.res.oracle b/src/plugins/aorai/tests/ya/oracle/formals.res.oracle index 2d0f4d7bd8a..7e1393cfc29 100644 --- a/src/plugins/aorai/tests/ya/oracle/formals.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/formals.res.oracle @@ -131,16 +131,23 @@ check lemma aorai_intermediate_state_deterministic_trans{L}: /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; - if (7 == aorai_CurStates && x == 1) { - aorai_CurStates = aorai_intermediate_state; - aorai_x = x; - } - else - if (7 == aorai_CurStates && x == 3) { - aorai_CurStates = aorai_intermediate_state_2; - aorai_x_0 = x; + if (7 == aorai_CurStates) { + if (x == 1) { + aorai_CurStates = aorai_intermediate_state; + aorai_x = x; } + else goto __aorai_label; + } + else { + __aorai_label: ; + if (7 == aorai_CurStates) + if (x == 3) { + aorai_CurStates = aorai_intermediate_state_2; + aorai_x_0 = x; + } + else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; + } return; } @@ -214,14 +221,30 @@ check lemma aorai_intermediate_state_deterministic_trans{L}: /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; - if (4 == aorai_CurStates && aorai_x_0 == 3) aorai_CurStates = OK; - else - if (1 == aorai_CurStates && aorai_x == 1) aorai_CurStates = aorai_intermediate_state_0; - else - if (4 == aorai_CurStates && aorai_x_0 != 3) aorai_CurStates = aorai_reject; - else - if (1 == aorai_CurStates && aorai_x != 1) aorai_CurStates = aorai_reject; + if (4 == aorai_CurStates) { + if (aorai_x_0 == 3) aorai_CurStates = OK; else goto __aorai_label_2; + } + else { + __aorai_label_2: ; + if (1 == aorai_CurStates) { + if (aorai_x == 1) aorai_CurStates = aorai_intermediate_state_0; + else goto __aorai_label_1; + } + else { + __aorai_label_1: ; + if (4 == aorai_CurStates) { + if (aorai_x_0 != 3) aorai_CurStates = aorai_reject; + else goto __aorai_label_0; + } + else { + __aorai_label_0: ; + if (1 == aorai_CurStates) + if (aorai_x != 1) aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; + } + } + } return; } @@ -422,14 +445,20 @@ int f(int x) /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_g; - if (3 == aorai_CurStates && aorai_y == 2) aorai_CurStates = OK; - else + if (3 == aorai_CurStates) { + if (aorai_y == 2) aorai_CurStates = OK; else goto __aorai_label_3; + } + else { + __aorai_label_3: ; if (0 == aorai_CurStates) aorai_CurStates = OK; else if (5 == aorai_CurStates) aorai_CurStates = aorai_reject; else - if (3 == aorai_CurStates && aorai_y != 2) aorai_CurStates = aorai_reject; + if (3 == aorai_CurStates) + if (aorai_y != 2) aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; + } return; } diff --git a/src/plugins/aorai/tests/ya/oracle/hoare_seq.res.oracle b/src/plugins/aorai/tests/ya/oracle/hoare_seq.res.oracle index 29ffb1ff422..e12c9597528 100644 --- a/src/plugins/aorai/tests/ya/oracle/hoare_seq.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/hoare_seq.res.oracle @@ -317,10 +317,14 @@ int main_bhv_bhv(int c); */ aorai_reject_tmp = 0; aorai_intermediate_state_2_tmp = 0; aorai_intermediate_state_1_tmp = 0; - if (S0 == 1 && c <= 0) aorai_intermediate_state_0_tmp = 1; + if (S0 == 1) + if (c <= 0) aorai_intermediate_state_0_tmp = 1; + else aorai_intermediate_state_0_tmp = 0; else aorai_intermediate_state_0_tmp = 0; bhv_aux = main_bhv_bhv(c); - if (S0 == 1 && bhv_aux) aorai_intermediate_state_tmp = 1; + if (S0 == 1) + if (bhv_aux) aorai_intermediate_state_tmp = 1; + else aorai_intermediate_state_tmp = 0; else aorai_intermediate_state_tmp = 0; Sf_tmp = 0; S0_tmp = 0; @@ -409,17 +413,25 @@ int main_bhv_bhv(int c); */ aorai_intermediate_state_1_tmp = aorai_intermediate_state_1; aorai_intermediate_state_2_tmp = aorai_intermediate_state_2; aorai_reject_tmp = aorai_reject; - if ((aorai_intermediate_state_0 == 1 || aorai_intermediate_state_2 == 1 && - res != 0) || aorai_reject == 1) - aorai_reject_tmp = 1; - else aorai_reject_tmp = 0; + if (aorai_intermediate_state_0 == 1) aorai_reject_tmp = 1; + else + if (aorai_intermediate_state_2 == 1) { + if (res != 0) aorai_reject_tmp = 1; else goto __aorai_label; + } + else { + __aorai_label: ; + if (aorai_reject == 1) aorai_reject_tmp = 1; + else aorai_reject_tmp = 0; + } aorai_intermediate_state_2_tmp = 0; aorai_intermediate_state_1_tmp = 0; aorai_intermediate_state_0_tmp = 0; aorai_intermediate_state_tmp = 0; - if (aorai_intermediate_state == 1 || aorai_intermediate_state_2 == 1 && - res == 0) Sf_tmp = 1; - else Sf_tmp = 0; + if (aorai_intermediate_state == 1) Sf_tmp = 1; + else + if (aorai_intermediate_state_2 == 1) + if (res == 0) Sf_tmp = 1; else Sf_tmp = 0; + else Sf_tmp = 0; S0_tmp = 0; S0 = S0_tmp; Sf = Sf_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/logical_operators.res.oracle b/src/plugins/aorai/tests/ya/oracle/logical_operators.res.oracle index da665d11dd5..ceb4a227b1d 100644 --- a/src/plugins/aorai/tests/ya/oracle/logical_operators.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/logical_operators.res.oracle @@ -1,5 +1,4 @@ [kernel] Parsing tests/ya/logical_operators.i (no preprocessing) -[aorai] Welcome to the Aorai plugin [kernel] Parsing TMPDIR/aorai_logical_operators_0.i (no preprocessing) /* Generated by Frama-C */ enum aorai_ListOper { @@ -10,8 +9,8 @@ enum aorai_OpStatusList { aorai_Terminated = 1, aorai_Called = 0 }; -/*@ ghost enum aorai_ListOper aorai_CurOperation = op_main; */ -/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus = aorai_Called; */ +/*@ ghost enum aorai_ListOper aorai_CurOperation; */ +/*@ ghost enum aorai_OpStatusList aorai_CurOpStatus; */ /*@ ghost int I = 1; */ /*@ ghost /@ requires 1 ≡ I; @@ -31,6 +30,7 @@ enum aorai_OpStatusList { void f_pre_func(int x) { int I_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_f; I_tmp = I; @@ -66,6 +66,7 @@ enum aorai_OpStatusList { void f_post_func(void) { int I_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_f; I_tmp = I; @@ -107,6 +108,7 @@ void f(int x) void main_pre_func(int x) { int I_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_main; I_tmp = I; @@ -134,6 +136,7 @@ void f(int x) void main_post_func(void) { int I_tmp; + /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_main; I_tmp = I; diff --git a/src/plugins/aorai/tests/ya/oracle/loop_bts1050.res.oracle b/src/plugins/aorai/tests/ya/oracle/loop_bts1050.res.oracle index 6569b67175a..a841b2ae6cb 100644 --- a/src/plugins/aorai/tests/ya/oracle/loop_bts1050.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/loop_bts1050.res.oracle @@ -95,10 +95,14 @@ enum aorai_OpStatusList { aorai_intermediate_state_3_tmp = aorai_intermediate_state_3; aorai_intermediate_state_3_tmp = 0; aorai_intermediate_state_2_tmp = 0; - if (aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1 && - aorai_counter < 5) aorai_intermediate_state_1_tmp = 1; - else aorai_intermediate_state_1_tmp = 0; - if (aorai_intermediate_state_0 == 1 && aorai_counter < 5) aorai_counter ++; + if (aorai_intermediate_state == 1) aorai_intermediate_state_1_tmp = 1; + else + if (aorai_intermediate_state_0 == 1) + if (aorai_counter < 5) aorai_intermediate_state_1_tmp = 1; + else aorai_intermediate_state_1_tmp = 0; + else aorai_intermediate_state_1_tmp = 0; + if (aorai_intermediate_state_0 == 1) + if (aorai_counter < 5) aorai_counter ++; if (aorai_intermediate_state == 1) aorai_counter = 1; aorai_intermediate_state_0_tmp = 0; aorai_intermediate_state_tmp = 0; @@ -544,9 +548,9 @@ void g(void) aorai_intermediate_state_1_tmp = 0; aorai_intermediate_state_0_tmp = 0; aorai_intermediate_state_tmp = 0; - if (aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1) - Sf_tmp = 1; - else Sf_tmp = 0; + if (aorai_intermediate_state == 1) Sf_tmp = 1; + else + if (aorai_intermediate_state_0 == 1) Sf_tmp = 1; else Sf_tmp = 0; S0_tmp = 0; S0 = S0_tmp; Sf = Sf_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/metavariables-right.res.oracle b/src/plugins/aorai/tests/ya/oracle/metavariables-right.res.oracle index 1ad02912fd1..e0f52649ef1 100644 --- a/src/plugins/aorai/tests/ya/oracle/metavariables-right.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/metavariables-right.res.oracle @@ -363,7 +363,9 @@ void g(void) /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_h; - if (5 == aorai_CurStates && aorai_x > 0) aorai_CurStates = f_0; + if (5 == aorai_CurStates) + if (aorai_x > 0) aorai_CurStates = f_0; + else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; return; } diff --git a/src/plugins/aorai/tests/ya/oracle/not_prm.res.oracle b/src/plugins/aorai/tests/ya/oracle/not_prm.res.oracle index 79d8cc18058..e730bc38477 100644 --- a/src/plugins/aorai/tests/ya/oracle/not_prm.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/not_prm.res.oracle @@ -39,7 +39,9 @@ enum aorai_OpStatusList { aorai_CurOperation = op_f; S0_tmp = S0; Sf_tmp = Sf; - if (S0 == 1 && x >= 4) Sf_tmp = 1; else Sf_tmp = 0; + if (S0 == 1) + if (x >= 4) Sf_tmp = 1; else Sf_tmp = 0; + else Sf_tmp = 0; S0_tmp = 0; S0 = S0_tmp; Sf = Sf_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/other.res.oracle b/src/plugins/aorai/tests/ya/oracle/other.res.oracle index d7146144fdf..2e314748222 100644 --- a/src/plugins/aorai/tests/ya/oracle/other.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/other.res.oracle @@ -65,13 +65,42 @@ int x = 0; init_tmp = init; last_tmp = last; step1_tmp = step1; - if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) - step1_tmp = 1; - else step1_tmp = 0; - if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1; - else last_tmp = 0; - if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1; - else init_tmp = 0; + if (init == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_2; + } + else { + __aorai_label_2: ; + if (last == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_1; + } + else { + __aorai_label_1: ; + if (step1 == 1) + if (x != 4) step1_tmp = 1; else step1_tmp = 0; + else step1_tmp = 0; + } + } + if (last == 1) { + if (x != 4) { + if (x != 3) last_tmp = 1; else goto __aorai_label_0; + } + else goto __aorai_label_0; + } + else { + __aorai_label_0: ; + if (step1 == 1) + if (x == 4) last_tmp = 1; else last_tmp = 0; + else last_tmp = 0; + } + if (init == 1) { + if (x != 3) init_tmp = 1; else goto __aorai_label; + } + else { + __aorai_label: ; + if (last == 1) + if (x == 4) init_tmp = 1; else init_tmp = 0; + else init_tmp = 0; + } init = init_tmp; last = last_tmp; step1 = step1_tmp; @@ -129,13 +158,42 @@ int x = 0; init_tmp = init; last_tmp = last; step1_tmp = step1; - if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) - step1_tmp = 1; - else step1_tmp = 0; - if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1; - else last_tmp = 0; - if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1; - else init_tmp = 0; + if (init == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_6; + } + else { + __aorai_label_6: ; + if (last == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_5; + } + else { + __aorai_label_5: ; + if (step1 == 1) + if (x != 4) step1_tmp = 1; else step1_tmp = 0; + else step1_tmp = 0; + } + } + if (last == 1) { + if (x != 4) { + if (x != 3) last_tmp = 1; else goto __aorai_label_4; + } + else goto __aorai_label_4; + } + else { + __aorai_label_4: ; + if (step1 == 1) + if (x == 4) last_tmp = 1; else last_tmp = 0; + else last_tmp = 0; + } + if (init == 1) { + if (x != 3) init_tmp = 1; else goto __aorai_label_3; + } + else { + __aorai_label_3: ; + if (last == 1) + if (x == 4) init_tmp = 1; else init_tmp = 0; + else init_tmp = 0; + } init = init_tmp; last = last_tmp; step1 = step1_tmp; @@ -257,13 +315,42 @@ void f(void) init_tmp = init; last_tmp = last; step1_tmp = step1; - if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) - step1_tmp = 1; - else step1_tmp = 0; - if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1; - else last_tmp = 0; - if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1; - else init_tmp = 0; + if (init == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_10; + } + else { + __aorai_label_10: ; + if (last == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_9; + } + else { + __aorai_label_9: ; + if (step1 == 1) + if (x != 4) step1_tmp = 1; else step1_tmp = 0; + else step1_tmp = 0; + } + } + if (last == 1) { + if (x != 4) { + if (x != 3) last_tmp = 1; else goto __aorai_label_8; + } + else goto __aorai_label_8; + } + else { + __aorai_label_8: ; + if (step1 == 1) + if (x == 4) last_tmp = 1; else last_tmp = 0; + else last_tmp = 0; + } + if (init == 1) { + if (x != 3) init_tmp = 1; else goto __aorai_label_7; + } + else { + __aorai_label_7: ; + if (last == 1) + if (x == 4) init_tmp = 1; else init_tmp = 0; + else init_tmp = 0; + } init = init_tmp; last = last_tmp; step1 = step1_tmp; @@ -321,13 +408,42 @@ void f(void) init_tmp = init; last_tmp = last; step1_tmp = step1; - if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) - step1_tmp = 1; - else step1_tmp = 0; - if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1; - else last_tmp = 0; - if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1; - else init_tmp = 0; + if (init == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_14; + } + else { + __aorai_label_14: ; + if (last == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_13; + } + else { + __aorai_label_13: ; + if (step1 == 1) + if (x != 4) step1_tmp = 1; else step1_tmp = 0; + else step1_tmp = 0; + } + } + if (last == 1) { + if (x != 4) { + if (x != 3) last_tmp = 1; else goto __aorai_label_12; + } + else goto __aorai_label_12; + } + else { + __aorai_label_12: ; + if (step1 == 1) + if (x == 4) last_tmp = 1; else last_tmp = 0; + else last_tmp = 0; + } + if (init == 1) { + if (x != 3) init_tmp = 1; else goto __aorai_label_11; + } + else { + __aorai_label_11: ; + if (last == 1) + if (x == 4) init_tmp = 1; else init_tmp = 0; + else init_tmp = 0; + } init = init_tmp; last = last_tmp; step1 = step1_tmp; @@ -436,9 +552,13 @@ void g(void) init_tmp = init; last_tmp = last; step1_tmp = step1; - if (init == 1 && x == 3) step1_tmp = 1; else step1_tmp = 0; + if (init == 1) + if (x == 3) step1_tmp = 1; else step1_tmp = 0; + else step1_tmp = 0; last_tmp = 0; - if (init == 1 && x != 3) init_tmp = 1; else init_tmp = 0; + if (init == 1) + if (x != 3) init_tmp = 1; else init_tmp = 0; + else init_tmp = 0; init = init_tmp; last = last_tmp; step1 = step1_tmp; @@ -496,13 +616,42 @@ void g(void) init_tmp = init; last_tmp = last; step1_tmp = step1; - if ((init == 1 && x == 3 || last == 1 && x == 3) || step1 == 1 && x != 4) - step1_tmp = 1; - else step1_tmp = 0; - if (last == 1 && (x != 4 && x != 3) || step1 == 1 && x == 4) last_tmp = 1; - else last_tmp = 0; - if (init == 1 && x != 3 || last == 1 && x == 4) init_tmp = 1; - else init_tmp = 0; + if (init == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_18; + } + else { + __aorai_label_18: ; + if (last == 1) { + if (x == 3) step1_tmp = 1; else goto __aorai_label_17; + } + else { + __aorai_label_17: ; + if (step1 == 1) + if (x != 4) step1_tmp = 1; else step1_tmp = 0; + else step1_tmp = 0; + } + } + if (last == 1) { + if (x != 4) { + if (x != 3) last_tmp = 1; else goto __aorai_label_16; + } + else goto __aorai_label_16; + } + else { + __aorai_label_16: ; + if (step1 == 1) + if (x == 4) last_tmp = 1; else last_tmp = 0; + else last_tmp = 0; + } + if (init == 1) { + if (x != 3) init_tmp = 1; else goto __aorai_label_15; + } + else { + __aorai_label_15: ; + if (last == 1) + if (x == 4) init_tmp = 1; else init_tmp = 0; + else init_tmp = 0; + } init = init_tmp; last = last_tmp; step1 = step1_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/seq.res.oracle b/src/plugins/aorai/tests/ya/oracle/seq.res.oracle index 92b8136c6f9..f138130a170 100644 --- a/src/plugins/aorai/tests/ya/oracle/seq.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/seq.res.oracle @@ -280,10 +280,16 @@ void f(void) aorai_intermediate_state_1_tmp = aorai_intermediate_state_1; aorai_intermediate_state_2_tmp = aorai_intermediate_state_2; aorai_intermediate_state_3_tmp = aorai_intermediate_state_3; - if ((aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1) || - aorai_intermediate_state_2 == 1 && aorai_counter < 2) aorai_intermediate_state_3_tmp = 1; - else aorai_intermediate_state_3_tmp = 0; - if (aorai_intermediate_state_2 == 1 && aorai_counter < 2) aorai_counter ++; + if (aorai_intermediate_state == 1) aorai_intermediate_state_3_tmp = 1; + else + if (aorai_intermediate_state_0 == 1) aorai_intermediate_state_3_tmp = 1; + else + if (aorai_intermediate_state_2 == 1) + if (aorai_counter < 2) aorai_intermediate_state_3_tmp = 1; + else aorai_intermediate_state_3_tmp = 0; + else aorai_intermediate_state_3_tmp = 0; + if (aorai_intermediate_state_2 == 1) + if (aorai_counter < 2) aorai_counter ++; if (aorai_intermediate_state_0 == 1) aorai_counter = 1; if (aorai_intermediate_state == 1) aorai_counter = 1; aorai_intermediate_state_2_tmp = 0; @@ -567,7 +573,8 @@ void g(void) aorai_intermediate_state_1_tmp = 0; aorai_intermediate_state_0_tmp = 0; aorai_intermediate_state_tmp = 0; - if (aorai_intermediate_state_2 == 1 && 1 <= aorai_counter) Sf_tmp = 1; + if (aorai_intermediate_state_2 == 1) + if (1 <= aorai_counter) Sf_tmp = 1; else Sf_tmp = 0; else Sf_tmp = 0; S0_tmp = 0; S0 = S0_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/seq_loop.res.oracle b/src/plugins/aorai/tests/ya/oracle/seq_loop.res.oracle index ea66b1d2bf7..eca76ebee16 100644 --- a/src/plugins/aorai/tests/ya/oracle/seq_loop.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/seq_loop.res.oracle @@ -95,10 +95,14 @@ enum aorai_OpStatusList { aorai_intermediate_state_3_tmp = aorai_intermediate_state_3; aorai_intermediate_state_3_tmp = 0; aorai_intermediate_state_2_tmp = 0; - if (aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1 && - aorai_counter < 5) aorai_intermediate_state_1_tmp = 1; - else aorai_intermediate_state_1_tmp = 0; - if (aorai_intermediate_state_0 == 1 && aorai_counter < 5) aorai_counter ++; + if (aorai_intermediate_state == 1) aorai_intermediate_state_1_tmp = 1; + else + if (aorai_intermediate_state_0 == 1) + if (aorai_counter < 5) aorai_intermediate_state_1_tmp = 1; + else aorai_intermediate_state_1_tmp = 0; + else aorai_intermediate_state_1_tmp = 0; + if (aorai_intermediate_state_0 == 1) + if (aorai_counter < 5) aorai_counter ++; if (aorai_intermediate_state == 1) aorai_counter = 1; aorai_intermediate_state_0_tmp = 0; aorai_intermediate_state_tmp = 0; @@ -544,9 +548,9 @@ void g(void) aorai_intermediate_state_1_tmp = 0; aorai_intermediate_state_0_tmp = 0; aorai_intermediate_state_tmp = 0; - if (aorai_intermediate_state == 1 || aorai_intermediate_state_0 == 1) - Sf_tmp = 1; - else Sf_tmp = 0; + if (aorai_intermediate_state == 1) Sf_tmp = 1; + else + if (aorai_intermediate_state_0 == 1) Sf_tmp = 1; else Sf_tmp = 0; S0_tmp = 0; S0 = S0_tmp; Sf = Sf_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/serial.res.oracle b/src/plugins/aorai/tests/ya/oracle/serial.res.oracle index dbf366abac3..8d2600bdb03 100644 --- a/src/plugins/aorai/tests/ya/oracle/serial.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/serial.res.oracle @@ -276,7 +276,7 @@ [eva:summary] ====== ANALYSIS SUMMARY ====== ---------------------------------------------------------------------------- 11 functions analyzed (out of 11): 100% coverage. - In these functions, 206 statements reached (out of 261): 78% coverage. + In these functions, 273 statements reached (out of 339): 80% coverage. ---------------------------------------------------------------------------- Some errors and warnings have been raised during the analysis: by the Eva analyzer: 0 errors 0 warnings @@ -576,46 +576,123 @@ int n = 0; aorai_CurOperation = op_input_status; aorai_StatesHistory_2 = aorai_StatesHistory_1; aorai_StatesHistory_1 = aorai_CurStates; - if (18 == aorai_CurStates && ((res & 15) != 1 && (res & 1) != 0)) - aorai_CurStates = StatusError; - else - if (17 == aorai_CurStates && ((res & 15) != 1 && (res & 1) != 0)) - aorai_CurStates = StatusError; - else - if (16 == aorai_CurStates && ((res & 15) != 1 && (res & 1) != 0)) - aorai_CurStates = StatusError; - else - if (15 == aorai_CurStates && ((res & 15) != 1 && (res & 1) != 0)) - aorai_CurStates = StatusError; - else - if (14 == aorai_CurStates && ((res & 15) != 1 && (res & 1) != 0)) - aorai_CurStates = StatusError; - else - if (14 == aorai_CurStates && (res & 15) == 1) aorai_CurStates = StatusOk1; - else - if (15 == aorai_CurStates && (res & 15) == 1) aorai_CurStates = StatusOk2; - else - if (16 == aorai_CurStates && (res & 15) == 1) aorai_CurStates = StatusOk3; - else - if (17 == aorai_CurStates && (res & 15) == 1) aorai_CurStates = StatusOk4; - else - if (18 == aorai_CurStates && (res & 15) == 1) aorai_CurStates = StatusOk5; - else - if (14 == aorai_CurStates && (res & 1) == 0) - aorai_CurStates = Wait1; - else - if (15 == aorai_CurStates && (res & 1) == 0) - aorai_CurStates = Wait2; - else - if (16 == aorai_CurStates && (res & 1) == 0) - aorai_CurStates = Wait3; - else - if (17 == aorai_CurStates && (res & 1) == 0) - aorai_CurStates = Wait4; - else - if (18 == aorai_CurStates && (res & 1) == 0) - aorai_CurStates = Wait5; + if (18 == aorai_CurStates) { + if ((res & 15) != 1) { + if ((res & 1) != 0) aorai_CurStates = StatusError; + else goto __aorai_label_12; + } + else goto __aorai_label_12; + } + else { + __aorai_label_12: ; + if (17 == aorai_CurStates) { + if ((res & 15) != 1) { + if ((res & 1) != 0) aorai_CurStates = StatusError; + else goto __aorai_label_11; + } + else goto __aorai_label_11; + } + else { + __aorai_label_11: ; + if (16 == aorai_CurStates) { + if ((res & 15) != 1) { + if ((res & 1) != 0) aorai_CurStates = StatusError; + else goto __aorai_label_10; + } + else goto __aorai_label_10; + } + else { + __aorai_label_10: ; + if (15 == aorai_CurStates) { + if ((res & 15) != 1) { + if ((res & 1) != 0) aorai_CurStates = StatusError; + else goto __aorai_label_9; + } + else goto __aorai_label_9; + } + else { + __aorai_label_9: ; + if (14 == aorai_CurStates) { + if ((res & 15) != 1) { + if ((res & 1) != 0) aorai_CurStates = StatusError; + else goto __aorai_label_8; + } + else goto __aorai_label_8; + } + else { + __aorai_label_8: ; + if (14 == aorai_CurStates) { + if ((res & 15) == 1) aorai_CurStates = StatusOk1; + else goto __aorai_label_7; + } + else { + __aorai_label_7: ; + if (15 == aorai_CurStates) { + if ((res & 15) == 1) aorai_CurStates = StatusOk2; + else goto __aorai_label_6; + } + else { + __aorai_label_6: ; + if (16 == aorai_CurStates) { + if ((res & 15) == 1) aorai_CurStates = StatusOk3; + else goto __aorai_label_5; + } + else { + __aorai_label_5: ; + if (17 == aorai_CurStates) { + if ((res & 15) == 1) aorai_CurStates = StatusOk4; + else goto __aorai_label_4; + } + else { + __aorai_label_4: ; + if (18 == aorai_CurStates) { + if ((res & 15) == 1) aorai_CurStates = StatusOk5; + else goto __aorai_label_3; + } + else { + __aorai_label_3: ; + if (14 == aorai_CurStates) { + if ((res & 1) == 0) aorai_CurStates = Wait1; + else goto __aorai_label_2; + } + else { + __aorai_label_2: ; + if (15 == aorai_CurStates) { + if ((res & 1) == 0) aorai_CurStates = Wait2; + else goto __aorai_label_1; + } + else { + __aorai_label_1: ; + if (16 == aorai_CurStates) { + if ((res & 1) == 0) aorai_CurStates = Wait3; + else goto __aorai_label_0; + } + else { + __aorai_label_0: ; + if (17 == aorai_CurStates) { + if ((res & 1) == 0) aorai_CurStates = Wait4; + else goto __aorai_label; + } + else { + __aorai_label: ; + if (18 == aorai_CurStates) + if ((res & 1) == 0) aorai_CurStates = Wait5; + else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; + } + } + } + } + } + } + } + } + } + } + } + } + } + } /@ assert Aorai: aorai_smoke_test: aorai_CurStates ≢ aorai_reject; @/ ; return; @@ -682,54 +759,121 @@ int input_status(void) aorai_CurOperation = op_input_data; aorai_StatesHistory_2 = aorai_StatesHistory_1; aorai_StatesHistory_1 = aorai_CurStates; - if (5 == aorai_CurStates && (res & 128) == 0) { - aorai_CurStates = Complete; - aorai_y2 = res; + if (5 == aorai_CurStates) { + if ((res & 128) == 0) { + aorai_CurStates = Complete; + aorai_y2 = res; + } + else goto __aorai_label_26; } else + __aorai_label_26: if (6 == aorai_CurStates) aorai_CurStates = Wait1; else - if (5 == aorai_CurStates && (res & 192) == 192) aorai_CurStates = Wait1; - else - if (4 == aorai_CurStates && (res & 192) == 192) aorai_CurStates = Wait1; - else - if (3 == aorai_CurStates && (res & 192) == 192) aorai_CurStates = Wait1; - else - if (2 == aorai_CurStates && (res & 192) == 192) aorai_CurStates = Wait1; - else - if (1 == aorai_CurStates && (res & 128) == 0) aorai_CurStates = Wait1; - else - if (1 == aorai_CurStates && (res & 192) == 192) aorai_CurStates = Wait1; - else - if (5 == aorai_CurStates && (res & 192) == 128) aorai_CurStates = Wait2; - else - if (4 == aorai_CurStates && (res & 192) == 128) - aorai_CurStates = Wait2; - else - if (3 == aorai_CurStates && (res & 192) == 128) - aorai_CurStates = Wait2; - else - if (2 == aorai_CurStates && (res & 192) == 128) - aorai_CurStates = Wait2; - else - if (1 == aorai_CurStates && (res & 192) == 128) - aorai_CurStates = Wait2; - else - if (2 == aorai_CurStates && (res & 128) == 0) { - aorai_CurStates = Wait3; - aorai_x1 = res; - } - else - if (3 == aorai_CurStates && (res & 128) == 0) { - aorai_CurStates = Wait4; - aorai_x2 = res; + if (5 == aorai_CurStates) { + if ((res & 192) == 192) aorai_CurStates = Wait1; + else goto __aorai_label_25; + } + else { + __aorai_label_25: ; + if (4 == aorai_CurStates) { + if ((res & 192) == 192) aorai_CurStates = Wait1; + else goto __aorai_label_24; + } + else { + __aorai_label_24: ; + if (3 == aorai_CurStates) { + if ((res & 192) == 192) aorai_CurStates = Wait1; + else goto __aorai_label_23; + } + else { + __aorai_label_23: ; + if (2 == aorai_CurStates) { + if ((res & 192) == 192) aorai_CurStates = Wait1; + else goto __aorai_label_22; + } + else { + __aorai_label_22: ; + if (1 == aorai_CurStates) { + if ((res & 128) == 0) aorai_CurStates = Wait1; + else goto __aorai_label_21; + } + else { + __aorai_label_21: ; + if (1 == aorai_CurStates) { + if ((res & 192) == 192) aorai_CurStates = Wait1; + else goto __aorai_label_20; + } + else { + __aorai_label_20: ; + if (5 == aorai_CurStates) { + if ((res & 192) == 128) aorai_CurStates = Wait2; + else goto __aorai_label_19; + } + else { + __aorai_label_19: ; + if (4 == aorai_CurStates) { + if ((res & 192) == 128) aorai_CurStates = Wait2; + else goto __aorai_label_18; + } + else { + __aorai_label_18: ; + if (3 == aorai_CurStates) { + if ((res & 192) == 128) aorai_CurStates = Wait2; + else goto __aorai_label_17; + } + else { + __aorai_label_17: ; + if (2 == aorai_CurStates) { + if ((res & 192) == 128) aorai_CurStates = Wait2; + else goto __aorai_label_16; + } + else { + __aorai_label_16: ; + if (1 == aorai_CurStates) { + if ((res & 192) == 128) aorai_CurStates = Wait2; + else goto __aorai_label_15; + } + else { + __aorai_label_15: ; + if (2 == aorai_CurStates) { + if ((res & 128) == 0) { + aorai_CurStates = Wait3; + aorai_x1 = res; } - else - if (4 == aorai_CurStates && (res & 128) == 0) { - aorai_CurStates = Wait5; - aorai_y1 = res; + else goto __aorai_label_14; + } + else { + __aorai_label_14: ; + if (3 == aorai_CurStates) { + if ((res & 128) == 0) { + aorai_CurStates = Wait4; + aorai_x2 = res; } + else goto __aorai_label_13; + } + else { + __aorai_label_13: ; + if (4 == aorai_CurStates) + if ((res & 128) == 0) { + aorai_CurStates = Wait5; + aorai_y1 = res; + } + else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; + } + } + } + } + } + } + } + } + } + } + } + } + } /@ assert Aorai: aorai_smoke_test: aorai_CurStates ≢ aorai_reject; @/ ; return; @@ -781,18 +925,21 @@ int input_data(void) else if (8 == aorai_CurStates) aorai_CurStates = Error; else - if (0 == aorai_CurStates && (y != aorai_y1 + - 128 * aorai_y2 || - x != aorai_x1 + - 128 * aorai_x2)) - aorai_CurStates = Error; - else - if (0 == aorai_CurStates && (x == aorai_x1 + - 128 * aorai_x2 && - y == aorai_y1 + - 128 * aorai_y2)) - aorai_CurStates = Wait1; + if (0 == aorai_CurStates) { + if (y != aorai_y1 + 128 * aorai_y2) aorai_CurStates = Error; + else + if (x != aorai_x1 + 128 * aorai_x2) aorai_CurStates = Error; + else goto __aorai_label_27; + } + else { + __aorai_label_27: ; + if (0 == aorai_CurStates) + if (x == aorai_x1 + 128 * aorai_x2) + if (y == aorai_y1 + 128 * aorai_y2) aorai_CurStates = Wait1; + else aorai_CurStates = aorai_reject; + else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; + } /@ assert Aorai: aorai_smoke_test: aorai_CurStates ≢ aorai_reject; @/ ; return; diff --git a/src/plugins/aorai/tests/ya/oracle/stack.res.oracle b/src/plugins/aorai/tests/ya/oracle/stack.res.oracle index 1c87bd33576..07be92bb84c 100644 --- a/src/plugins/aorai/tests/ya/oracle/stack.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/stack.res.oracle @@ -219,7 +219,9 @@ void push(void) /@ slevel full; @/ aorai_CurOpStatus = aorai_Called; aorai_CurOperation = op_pop; - if (4 == aorai_CurStates && aorai_n > 0) aorai_CurStates = emptying_stack; + if (4 == aorai_CurStates) + if (aorai_n > 0) aorai_CurStates = emptying_stack; + else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; return; } @@ -277,16 +279,23 @@ void push(void) /@ slevel full; @/ aorai_CurOpStatus = aorai_Terminated; aorai_CurOperation = op_pop; - if (3 == aorai_CurStates && aorai_n == 1) { - aorai_CurStates = empty_stack; - aorai_n --; - } - else - if (3 == aorai_CurStates && aorai_n > 1) { - aorai_CurStates = filled_stack; + if (3 == aorai_CurStates) { + if (aorai_n == 1) { + aorai_CurStates = empty_stack; aorai_n --; } + else goto __aorai_label; + } + else { + __aorai_label: ; + if (3 == aorai_CurStates) + if (aorai_n > 1) { + aorai_CurStates = filled_stack; + aorai_n --; + } + else aorai_CurStates = aorai_reject; else aorai_CurStates = aorai_reject; + } return; } diff --git a/src/plugins/aorai/tests/ya/oracle/test_acces_params.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_acces_params.res.oracle index 72d1dbd1b70..612b29ad3f4 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_acces_params.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_acces_params.res.oracle @@ -76,7 +76,9 @@ int rr = 1; SF_tmp = 0; S4_tmp = 0; S3_tmp = 0; - if (S1 == 1 && i >= 0) S2_tmp = 1; else S2_tmp = 0; + if (S1 == 1) + if (i >= 0) S2_tmp = 1; else S2_tmp = 0; + else S2_tmp = 0; S1_tmp = 0; S1 = S1_tmp; S2 = S2_tmp; @@ -294,7 +296,9 @@ void opa(int i, int j) SF_tmp = SF; mainst_tmp = mainst; mainst_tmp = 0; - if (S4 == 1 && res > 0) SF_tmp = 1; else SF_tmp = 0; + if (S4 == 1) + if (res > 0) SF_tmp = 1; else SF_tmp = 0; + else SF_tmp = 0; S4_tmp = 0; S3_tmp = 0; S2_tmp = 0; diff --git a/src/plugins/aorai/tests/ya/oracle/test_acces_params2.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_acces_params2.res.oracle index f20db94ee5b..af3a8336223 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_acces_params2.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_acces_params2.res.oracle @@ -82,7 +82,9 @@ int rr = 1; S6_tmp = 0; S5_tmp = 0; S4_tmp = 0; - if (S2 == 1 && r >= 0) S3_tmp = 1; else S3_tmp = 0; + if (S2 == 1) + if (r >= 0) S3_tmp = 1; else S3_tmp = 0; + else S3_tmp = 0; S2_tmp = 0; S1_tmp = 0; S1 = S1_tmp; @@ -155,7 +157,9 @@ int rr = 1; S7_tmp = 0; S6_tmp = 0; S5_tmp = 0; - if (S3 == 1 && res <= 5000) S4_tmp = 1; else S4_tmp = 0; + if (S3 == 1) + if (res <= 5000) S4_tmp = 1; else S4_tmp = 0; + else S4_tmp = 0; S3_tmp = 0; S2_tmp = 0; S1_tmp = 0; diff --git a/src/plugins/aorai/tests/ya/oracle/test_boucle_rechercheTableau.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_boucle_rechercheTableau.res.oracle index d9e7db7f803..028e8111075 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_boucle_rechercheTableau.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_boucle_rechercheTableau.res.oracle @@ -98,9 +98,13 @@ enum aorai_OpStatusList { End_tmp = End; Idle_tmp = Idle; WillDoFoo_tmp = WillDoFoo; - if (Idle == 1 && res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0; + if (Idle == 1) + if (res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0; + else WillDoFoo_tmp = 0; Idle_tmp = 0; - if (Idle == 1 && res != -1) End_tmp = 1; else End_tmp = 0; + if (Idle == 1) + if (res != -1) End_tmp = 1; else End_tmp = 0; + else End_tmp = 0; End = End_tmp; Idle = Idle_tmp; WillDoFoo = WillDoFoo_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/test_factorial.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_factorial.res.oracle index ed5f20033ad..b174e49f3f3 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_factorial.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_factorial.res.oracle @@ -216,7 +216,9 @@ int decode_int(char *s) S2_tmp = S2; main_0_tmp = main_0; main_0_tmp = 0; - if (S1 == 1 || S2 == 1) S2_tmp = 1; else S2_tmp = 0; + if (S1 == 1) S2_tmp = 1; + else + if (S2 == 1) S2_tmp = 1; else S2_tmp = 0; S1_tmp = 0; S1 = S1_tmp; S2 = S2_tmp; @@ -263,8 +265,12 @@ int decode_int(char *s) S2_tmp = S2; main_0_tmp = main_0; main_0_tmp = 0; - if (S1 == 1 || S2 == 1) S2_tmp = 1; else S2_tmp = 0; - if (S1 == 1 || S2 == 1) S1_tmp = 1; else S1_tmp = 0; + if (S1 == 1) S2_tmp = 1; + else + if (S2 == 1) S2_tmp = 1; else S2_tmp = 0; + if (S1 == 1) S1_tmp = 1; + else + if (S2 == 1) S1_tmp = 1; else S1_tmp = 0; S1 = S1_tmp; S2 = S2_tmp; main_0 = main_0_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/test_recursion4.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_recursion4.res.oracle index 3f9a007d776..650a1625271 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_recursion4.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_recursion4.res.oracle @@ -101,11 +101,25 @@ enum aorai_OpStatusList { End_tmp = End; Idle_tmp = Idle; WillDoFoo_tmp = WillDoFoo; - if (Idle == 1 && res == -1 || WillDoFoo == 1 && res == -1) WillDoFoo_tmp = 1; - else WillDoFoo_tmp = 0; + if (Idle == 1) { + if (res == -1) WillDoFoo_tmp = 1; else goto __aorai_label_0; + } + else { + __aorai_label_0: ; + if (WillDoFoo == 1) + if (res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0; + else WillDoFoo_tmp = 0; + } Idle_tmp = 0; - if (End == 1 && res != -1 || Idle == 1 && res != -1) End_tmp = 1; - else End_tmp = 0; + if (End == 1) { + if (res != -1) End_tmp = 1; else goto __aorai_label; + } + else { + __aorai_label: ; + if (Idle == 1) + if (res != -1) End_tmp = 1; else End_tmp = 0; + else End_tmp = 0; + } End = End_tmp; Idle = Idle_tmp; WillDoFoo = WillDoFoo_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/test_recursion5.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_recursion5.res.oracle index b3d197570e7..c4af634f2de 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_recursion5.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_recursion5.res.oracle @@ -124,10 +124,24 @@ enum aorai_OpStatusList { Idle_tmp = Idle; IgnoreFoo_tmp = IgnoreFoo; WillDoFoo_tmp = WillDoFoo; - if (Idle == 1 && res == -1 || WillDoFoo == 1 && res == -1) WillDoFoo_tmp = 1; - else WillDoFoo_tmp = 0; - if (Idle == 1 && res != -1 || IgnoreFoo == 1 && res != -1) IgnoreFoo_tmp = 1; - else IgnoreFoo_tmp = 0; + if (Idle == 1) { + if (res == -1) WillDoFoo_tmp = 1; else goto __aorai_label_0; + } + else { + __aorai_label_0: ; + if (WillDoFoo == 1) + if (res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0; + else WillDoFoo_tmp = 0; + } + if (Idle == 1) { + if (res != -1) IgnoreFoo_tmp = 1; else goto __aorai_label; + } + else { + __aorai_label: ; + if (IgnoreFoo == 1) + if (res != -1) IgnoreFoo_tmp = 1; else IgnoreFoo_tmp = 0; + else IgnoreFoo_tmp = 0; + } Idle_tmp = 0; End_tmp = 0; End = End_tmp; @@ -281,11 +295,14 @@ int isPresentRec(int *t, int i, int max, int val) Idle_tmp = Idle; IgnoreFoo_tmp = IgnoreFoo; WillDoFoo_tmp = WillDoFoo; - if (WillDoFoo == 1 && res == -1) WillDoFoo_tmp = 1; + if (WillDoFoo == 1) + if (res == -1) WillDoFoo_tmp = 1; else WillDoFoo_tmp = 0; else WillDoFoo_tmp = 0; IgnoreFoo_tmp = 0; Idle_tmp = 0; - if (IgnoreFoo == 1 && res != -1) End_tmp = 1; else End_tmp = 0; + if (IgnoreFoo == 1) + if (res != -1) End_tmp = 1; else End_tmp = 0; + else End_tmp = 0; End = End_tmp; Idle = Idle_tmp; IgnoreFoo = IgnoreFoo_tmp; diff --git a/src/plugins/aorai/tests/ya/oracle/test_struct.res.oracle b/src/plugins/aorai/tests/ya/oracle/test_struct.res.oracle index fa0bb669fc7..3ba01477c27 100644 --- a/src/plugins/aorai/tests/ya/oracle/test_struct.res.oracle +++ b/src/plugins/aorai/tests/ya/oracle/test_struct.res.oracle @@ -47,7 +47,9 @@ int myAge = 0; S1_tmp = S1; main_0_tmp = main_0; main_0_tmp = 0; - if (S1 == 1 && nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0; + if (S1 == 1) + if (nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; S1 = S1_tmp; main_0 = main_0_tmp; return; @@ -83,7 +85,9 @@ int myAge = 0; S1_tmp = S1; main_0_tmp = main_0; main_0_tmp = 0; - if (S1 == 1 && nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0; + if (S1 == 1) + if (nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; S1 = S1_tmp; main_0 = main_0_tmp; return; @@ -136,7 +140,9 @@ void increment(void) S1_tmp = S1; main_0_tmp = main_0; main_0_tmp = 0; - if (main_0 == 1 && nobody.Age == 0) S1_tmp = 1; else S1_tmp = 0; + if (main_0 == 1) + if (nobody.Age == 0) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; S1 = S1_tmp; main_0 = main_0_tmp; return; @@ -172,7 +178,9 @@ void increment(void) S1_tmp = S1; main_0_tmp = main_0; main_0_tmp = 0; - if (S1 == 1 && nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0; + if (S1 == 1) + if (nobody.Age == 1) S1_tmp = 1; else S1_tmp = 0; + else S1_tmp = 0; S1 = S1_tmp; main_0 = main_0_tmp; return; -- GitLab