From 5c16363d5226928287fb4f6e2bee34477006e5d6 Mon Sep 17 00:00:00 2001 From: Erwan Jahier <jahier@imag.fr> Date: Tue, 5 Aug 2014 17:14:16 +0200 Subject: [PATCH] non-reg tests: try to remove tests that fail for bad reasons. For instance, do not launch tests that perform result comparison (via lurette) on files that contains extern nodes (as they cannot be executed) or package. Package do not work because appending the tested lustre file with the generated oracle as I do is wrong in presence of package. Moreover, my current test process is not able to test programs which main node IOs are not all on the base clock. I have fixed this by patching the examples. # of expected passes 1508 -> 1512 # of unexpected failures 130 -> 84 --- test/lus2lic.sum | 156 +++++++----------- test/lus2lic.tests/non-reg.exp | 49 +++--- test/lus2lic.time | 2 + test/should_work/CURRENT.lus | 7 +- test/should_work/PCOND.lus | 43 ++++- test/should_work/PCOND1.lus | 28 +++- test/should_work/X.lus | 14 +- test/should_work/X6.lus | 23 +++ test/should_work/bob.lus | 6 +- test/should_work/ck2.lus | 13 +- test/should_work/ck3.lus | 12 +- test/should_work/ck4.lus | 7 +- test/should_work/ck7.lus | 12 ++ test/should_work/clock1_2ms.lus | 9 +- test/should_work/clock_ite.lus | 10 +- test/should_work/filliter.lus | 10 +- test/should_work/hanane.lus | 7 +- test/should_work/lustre_test1_ok.lus | 8 + test/should_work/multiclock.lus | 11 +- ...ge.lus => sample_time_change_MainNode.lus} | 3 +- test/should_work/test_merge.lus | 10 ++ test/site.exp | 33 +++- todo.org | 110 ++++++++---- utils/compare_exec_and_2c | 2 +- 24 files changed, 405 insertions(+), 180 deletions(-) rename test/should_work/{sample_time_change.lus => sample_time_change_MainNode.lus} (97%) diff --git a/test/lus2lic.sum b/test/lus2lic.sum index ff24668f..f97a4b7a 100644 --- a/test/lus2lic.sum +++ b/test/lus2lic.sum @@ -1,4 +1,4 @@ -Test Run By jahier on Fri Jul 11 16:15:55 2014 +Test Run By jahier on Thu Aug 7 11:48:30 2014 Native configuration is i686-pc-linux-gnu === lus2lic tests === @@ -33,7 +33,6 @@ FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_ PASS: ./lus2lic {-o /tmp/normal.lic should_work/normal.lus} PASS: ./lus2lic {-ec -o /tmp/normal.ec should_work/normal.lus} PASS: ./myec2c {-o /tmp/normal.c /tmp/normal.ec} -PASS: ../utils/test_lus2lic_no_node should_work/normal.lus PASS: ./lus2lic {-2c should_work/normal.lus -n normal} PASS: gcc normal_normal.c normal_normal_loop.c PASS: ../utils/compare_exec_and_2c should_work/normal.lus @@ -47,14 +46,12 @@ PASS: ../utils/compare_exec_and_2c should_work/nodeparam.lus PASS: ./lus2lic {-o /tmp/enum0.lic should_work/enum0.lus} PASS: ./lus2lic {-ec -o /tmp/enum0.ec should_work/enum0.lus} PASS: ./myec2c {-o /tmp/enum0.c /tmp/enum0.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/enum0.lus PASS: ./lus2lic {-2c should_work/enum0.lus -n enum0} PASS: gcc enum0_enum0.c enum0_enum0_loop.c PASS: ../utils/compare_exec_and_2c should_work/enum0.lus PASS: ./lus2lic {-o /tmp/ck6.lic should_work/ck6.lus} PASS: ./lus2lic {-ec -o /tmp/ck6.ec should_work/ck6.lus} PASS: ./myec2c {-o /tmp/ck6.c /tmp/ck6.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck6.lus PASS: ./lus2lic {-2c should_work/ck6.lus -n ck6} PASS: gcc ck6_ck6.c ck6_ck6_ext.c ck6_ck6_loop.c PASS: ./lus2lic {-o /tmp/Gyroscope2.lic should_work/Gyroscope2.lus} @@ -81,17 +78,14 @@ PASS: ../utils/compare_exec_and_2c should_work/dep.lus PASS: ./lus2lic {-o /tmp/ELMU.lic should_work/ELMU.lus} PASS: ./lus2lic {-ec -o /tmp/ELMU.ec should_work/ELMU.lus} PASS: ./myec2c {-o /tmp/ELMU.c /tmp/ELMU.ec} -PASS: ../utils/test_lus2lic_no_node should_work/ELMU.lus PASS: ./lus2lic {-2c should_work/ELMU.lus -n ELMU} PASS: gcc ELMU_ELMU.c ELMU_ELMU_loop.c PASS: ../utils/compare_exec_and_2c should_work/ELMU.lus PASS: ./lus2lic {-o /tmp/testPilote.lic should_work/testPilote.lus} PASS: ./lus2lic {-ec -o /tmp/testPilote.ec should_work/testPilote.lus} PASS: ./myec2c {-o /tmp/testPilote.c /tmp/testPilote.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/testPilote.lus PASS: ./lus2lic {-2c should_work/testPilote.lus -n testPilote} PASS: gcc testPilote_testPilote.c testPilote_testPilote_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/testPilote.lus PASS: ./lus2lic {-o /tmp/redIf.lic should_work/redIf.lus} PASS: ./lus2lic {-ec -o /tmp/redIf.ec should_work/redIf.lus} PASS: ./myec2c {-o /tmp/redIf.c /tmp/redIf.ec} @@ -102,7 +96,6 @@ PASS: ../utils/compare_exec_and_2c should_work/redIf.lus PASS: ./lus2lic {-o /tmp/t0.lic should_work/t0.lus} PASS: ./lus2lic {-ec -o /tmp/t0.ec should_work/t0.lus} PASS: ./myec2c {-o /tmp/t0.c /tmp/t0.ec} -PASS: ../utils/test_lus2lic_no_node should_work/t0.lus PASS: ./lus2lic {-2c should_work/t0.lus -n t0} PASS: gcc t0_t0.c t0_t0_loop.c PASS: ./lus2lic {-o /tmp/lucky.lic should_work/lucky.lus} @@ -171,7 +164,6 @@ PASS: ../utils/compare_exec_and_2c should_work/mappredef.lus PASS: ./lus2lic {-o /tmp/call06.lic should_work/call06.lus} PASS: ./lus2lic {-ec -o /tmp/call06.ec should_work/call06.lus} PASS: ./myec2c {-o /tmp/call06.c /tmp/call06.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/call06.lus PASS: ./lus2lic {-2c should_work/call06.lus -n call06} PASS: gcc call06_call06.c call06_call06_ext.c call06_call06_loop.c PASS: ./lus2lic {-o /tmp/deSimone.lic should_work/deSimone.lus} @@ -212,10 +204,8 @@ PASS: ../utils/compare_exec_and_2c should_work/toolate.lus PASS: ./lus2lic {-o /tmp/testCapt.lic should_work/testCapt.lus} PASS: ./lus2lic {-ec -o /tmp/testCapt.ec should_work/testCapt.lus} PASS: ./myec2c {-o /tmp/testCapt.c /tmp/testCapt.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/testCapt.lus PASS: ./lus2lic {-2c should_work/testCapt.lus -n testCapt} PASS: gcc testCapt_testCapt.c testCapt_testCapt_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/testCapt.lus PASS: ./lus2lic {-o /tmp/nc7.lic should_work/nc7.lus} PASS: ./lus2lic {-ec -o /tmp/nc7.ec should_work/nc7.lus} PASS: ./myec2c {-o /tmp/nc7.c /tmp/nc7.ec} @@ -247,7 +237,6 @@ PASS: ../utils/compare_exec_and_2c should_work/nc9.lus PASS: ./lus2lic {-o /tmp/packageTableau.lic should_work/packageTableau.lus} PASS: ./lus2lic {-ec -o /tmp/packageTableau.ec should_work/packageTableau.lus} PASS: ./myec2c {-o /tmp/packageTableau.c /tmp/packageTableau.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/packageTableau.lus PASS: ./lus2lic {-2c should_work/packageTableau.lus -n packageTableau} PASS: ./lus2lic {-o /tmp/test_poly.lic should_work/test_poly.lus} PASS: ./lus2lic {-ec -o /tmp/test_poly.ec should_work/test_poly.lus} @@ -266,7 +255,6 @@ PASS: ../utils/compare_exec_and_2c should_work/nc8.lus PASS: ./lus2lic {-o /tmp/minmax5.lic should_work/minmax5.lus} PASS: ./lus2lic {-ec -o /tmp/minmax5.ec should_work/minmax5.lus} PASS: ./myec2c {-o /tmp/minmax5.c /tmp/minmax5.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/minmax5.lus PASS: ./lus2lic {-2c should_work/minmax5.lus -n minmax5} PASS: gcc minmax5_minmax5.c minmax5_minmax5_ext.c minmax5_minmax5_loop.c PASS: ./lus2lic {-o /tmp/mm1.lic should_work/mm1.lus} @@ -293,19 +281,16 @@ PASS: ../utils/compare_exec_and_2c should_work/iter.lus PASS: ./lus2lic {-o /tmp/call05.lic should_work/call05.lus} PASS: ./lus2lic {-ec -o /tmp/call05.ec should_work/call05.lus} PASS: ./myec2c {-o /tmp/call05.c /tmp/call05.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/call05.lus PASS: ./lus2lic {-2c should_work/call05.lus -n call05} PASS: gcc call05_call05.c call05_call05_ext.c call05_call05_loop.c PASS: ./lus2lic {-o /tmp/Watch.lic should_work/Watch.lus} PASS: ./lus2lic {-ec -o /tmp/Watch.ec should_work/Watch.lus} PASS: ./myec2c {-o /tmp/Watch.c /tmp/Watch.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Watch.lus PASS: ./lus2lic {-2c should_work/Watch.lus -n Watch} PASS: gcc Watch_Watch.c Watch_Watch_ext.c Watch_Watch_loop.c PASS: ./lus2lic {-o /tmp/testBoite.lic should_work/testBoite.lus} PASS: ./lus2lic {-ec -o /tmp/testBoite.ec should_work/testBoite.lus} PASS: ./myec2c {-o /tmp/testBoite.c /tmp/testBoite.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/testBoite.lus PASS: ./lus2lic {-2c should_work/testBoite.lus -n testBoite} PASS: ./lus2lic {-o /tmp/node_caller1.lic should_work/node_caller1.lus} PASS: ./lus2lic {-ec -o /tmp/node_caller1.ec should_work/node_caller1.lus} @@ -359,7 +344,6 @@ PASS: ../utils/compare_exec_and_2c should_work/cst.lus PASS: ./lus2lic {-o /tmp/minmax5_random.lic should_work/minmax5_random.lus} PASS: ./lus2lic {-ec -o /tmp/minmax5_random.ec should_work/minmax5_random.lus} PASS: ./myec2c {-o /tmp/minmax5_random.c /tmp/minmax5_random.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/minmax5_random.lus PASS: ./lus2lic {-2c should_work/minmax5_random.lus -n minmax5_random} PASS: gcc minmax5_random_minmax5_random.c minmax5_random_minmax5_random_ext.c minmax5_random_minmax5_random_loop.c PASS: ./lus2lic {-o /tmp/matrice2.lic should_work/matrice2.lus} @@ -421,6 +405,9 @@ PASS: ../utils/compare_exec_and_2c should_work/mm22.lus PASS: ./lus2lic {-o /tmp/array_concat2.lic should_work/array_concat2.lus} PASS: ./lus2lic {-ec -o /tmp/array_concat2.ec should_work/array_concat2.lus} FAIL: Try ec2c on the result: ./myec2c {-o /tmp/array_concat2.c /tmp/array_concat2.ec} +PASS: ./lus2lic {-2c should_work/array_concat2.lus -n array_concat2} +PASS: gcc array_concat2_array_concat2.c array_concat2_array_concat2_loop.c +PASS: ../utils/compare_exec_and_2c should_work/array_concat2.lus PASS: ./lus2lic {-o /tmp/is_stable.lic should_work/is_stable.lus} PASS: ./lus2lic {-ec -o /tmp/is_stable.ec should_work/is_stable.lus} PASS: ./myec2c {-o /tmp/is_stable.c /tmp/is_stable.ec} @@ -431,12 +418,10 @@ PASS: ../utils/compare_exec_and_2c should_work/is_stable.lus PASS: ./lus2lic {-o /tmp/test_clash.lic should_work/test_clash.lus} PASS: ./lus2lic {-ec -o /tmp/test_clash.ec should_work/test_clash.lus} PASS: ./myec2c {-o /tmp/test_clash.c /tmp/test_clash.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_clash.lus PASS: ./lus2lic {-2c should_work/test_clash.lus -n test_clash} PASS: ./lus2lic {-o /tmp/model2.lic should_work/model2.lus} PASS: ./lus2lic {-ec -o /tmp/model2.ec should_work/model2.lus} PASS: ./myec2c {-o /tmp/model2.c /tmp/model2.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/model2.lus PASS: ./lus2lic {-2c should_work/model2.lus -n model2} PASS: ./lus2lic {-o /tmp/onlyroll2.lic should_work/onlyroll2.lus} PASS: ./lus2lic {-ec -o /tmp/onlyroll2.ec should_work/onlyroll2.lus} @@ -452,13 +437,10 @@ FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node shou PASS: ./lus2lic {-2c should_work/modes3x2_v2.lus -n modes3x2_v2} PASS: gcc modes3x2_v2_modes3x2_v2.c modes3x2_v2_modes3x2_v2_loop.c PASS: ../utils/compare_exec_and_2c should_work/modes3x2_v2.lus -PASS: ./lus2lic {-o /tmp/X6.lic should_work/X6.lus} -PASS: ./lus2lic {-ec -o /tmp/X6.ec should_work/X6.lus} -PASS: ./myec2c {-o /tmp/X6.c /tmp/X6.ec} +FAIL: without any option: ./lus2lic {-o /tmp/X6.lic should_work/X6.lus} +FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/X6.ec should_work/X6.lus} FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/X6.lus -PASS: ./lus2lic {-2c should_work/X6.lus -n X6} -PASS: gcc X6_X6.c X6_X6_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/X6.lus +FAIL: Generate c code : ./lus2lic {-2c should_work/X6.lus -n X6} PASS: ./lus2lic {-o /tmp/zzz2.lic should_work/zzz2.lus} PASS: ./lus2lic {-ec -o /tmp/zzz2.ec should_work/zzz2.lus} PASS: ./myec2c {-o /tmp/zzz2.c /tmp/zzz2.ec} @@ -469,7 +451,6 @@ PASS: ../utils/compare_exec_and_2c should_work/zzz2.lus PASS: ./lus2lic {-o /tmp/polymorphic_pack.lic should_work/polymorphic_pack.lus} PASS: ./lus2lic {-ec -o /tmp/polymorphic_pack.ec should_work/polymorphic_pack.lus} PASS: ./myec2c {-o /tmp/polymorphic_pack.c /tmp/polymorphic_pack.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/polymorphic_pack.lus PASS: ./lus2lic {-2c should_work/polymorphic_pack.lus -n polymorphic_pack} PASS: ./lus2lic {-o /tmp/COUNTER.lic should_work/COUNTER.lus} PASS: ./lus2lic {-ec -o /tmp/COUNTER.ec should_work/COUNTER.lus} @@ -562,7 +543,6 @@ PASS: ../utils/compare_exec_and_2c should_work/shift_ludic.lus PASS: ./lus2lic {-o /tmp/pilote-1.0.lic should_work/pilote-1.0.lus} PASS: ./lus2lic {-ec -o /tmp/pilote-1.0.ec should_work/pilote-1.0.lus} PASS: ./myec2c {-o /tmp/pilote-1.0.c /tmp/pilote-1.0.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/pilote-1.0.lus PASS: ./lus2lic {-2c should_work/pilote-1.0.lus -n pilote-1.0} PASS: ./lus2lic {-o /tmp/trivial.lic should_work/trivial.lus} PASS: ./lus2lic {-ec -o /tmp/trivial.ec should_work/trivial.lus} @@ -574,7 +554,6 @@ PASS: ../utils/compare_exec_and_2c should_work/trivial.lus PASS: ./lus2lic {-o /tmp/packs.lic should_work/packs.lus} PASS: ./lus2lic {-ec -o /tmp/packs.ec should_work/packs.lus} PASS: ./myec2c {-o /tmp/packs.c /tmp/packs.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/packs.lus PASS: ./lus2lic {-2c should_work/packs.lus -n packs} PASS: ./lus2lic {-o /tmp/sincos.lic should_work/sincos.lus} PASS: ./lus2lic {-ec -o /tmp/sincos.ec should_work/sincos.lus} @@ -586,7 +565,6 @@ FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_ PASS: ./lus2lic {-o /tmp/newpacks.lic should_work/newpacks.lus} PASS: ./lus2lic {-ec -o /tmp/newpacks.ec should_work/newpacks.lus} PASS: ./myec2c {-o /tmp/newpacks.c /tmp/newpacks.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/newpacks.lus PASS: ./lus2lic {-2c should_work/newpacks.lus -n newpacks} PASS: ./lus2lic {-o /tmp/morel5.lic should_work/morel5.lus} PASS: ./lus2lic {-ec -o /tmp/morel5.ec should_work/morel5.lus} @@ -633,13 +611,11 @@ PASS: ../utils/compare_exec_and_2c should_work/testCA.lus PASS: ./lus2lic {-o /tmp/test_extern.lic should_work/test_extern.lus} PASS: ./lus2lic {-ec -o /tmp/test_extern.ec should_work/test_extern.lus} PASS: ./myec2c {-o /tmp/test_extern.c /tmp/test_extern.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_extern.lus PASS: ./lus2lic {-2c should_work/test_extern.lus -n test_extern} PASS: gcc test_extern_test_extern.c test_extern_test_extern_ext.c test_extern_test_extern_loop.c PASS: ./lus2lic {-o /tmp/deconne.lic should_work/deconne.lus} PASS: ./lus2lic {-ec -o /tmp/deconne.ec should_work/deconne.lus} PASS: ./myec2c {-o /tmp/deconne.c /tmp/deconne.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/deconne.lus PASS: ./lus2lic {-2c should_work/deconne.lus -n deconne} PASS: gcc deconne_deconne.c deconne_deconne_ext.c deconne_deconne_loop.c PASS: ./lus2lic {-o /tmp/noAlarm.lic should_work/noAlarm.lus} @@ -652,7 +628,7 @@ PASS: ../utils/compare_exec_and_2c should_work/noAlarm.lus PASS: ./lus2lic {-o /tmp/clock_ite.lic should_work/clock_ite.lus} PASS: ./lus2lic {-ec -o /tmp/clock_ite.ec should_work/clock_ite.lus} PASS: ./myec2c {-o /tmp/clock_ite.c /tmp/clock_ite.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/clock_ite.lus +PASS: ../utils/test_lus2lic_no_node should_work/clock_ite.lus PASS: ./lus2lic {-2c should_work/clock_ite.lus -n clock_ite} PASS: gcc clock_ite_clock_ite.c clock_ite_clock_ite_loop.c FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/clock_ite.lus @@ -664,6 +640,9 @@ FAIL: Generate c code : ./lus2lic {-2c should_work/morel4.lus -n morel4} FAIL: Check that the generated C code compiles : gcc morel4_morel4.c morel4_morel4_loop.c PASS: ./lus2lic {-o /tmp/trivial_array.lic should_work/trivial_array.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/trivial_array.ec should_work/trivial_array.lus} +PASS: ./lus2lic {-2c should_work/trivial_array.lus -n trivial_array} +PASS: gcc trivial_array_trivial_array.c trivial_array_trivial_array_loop.c +PASS: ../utils/compare_exec_and_2c should_work/trivial_array.lus PASS: ./lus2lic {-o /tmp/param_node4.lic should_work/param_node4.lus} PASS: ./lus2lic {-ec -o /tmp/param_node4.ec should_work/param_node4.lus} PASS: ./myec2c {-o /tmp/param_node4.c /tmp/param_node4.ec} @@ -765,10 +744,8 @@ PASS: ../utils/compare_exec_and_2c should_work/over3.lus PASS: ./lus2lic {-o /tmp/complex.lic should_work/complex.lus} PASS: ./lus2lic {-ec -o /tmp/complex.ec should_work/complex.lus} PASS: ./myec2c {-o /tmp/complex.c /tmp/complex.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/complex.lus PASS: ./lus2lic {-2c should_work/complex.lus -n complex} PASS: gcc complex_complex.c complex_complex_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/complex.lus PASS: ./lus2lic {-o /tmp/initial.lic should_work/initial.lus} PASS: ./lus2lic {-ec -o /tmp/initial.ec should_work/initial.lus} PASS: ./myec2c {-o /tmp/initial.c /tmp/initial.ec} @@ -779,7 +756,6 @@ PASS: ../utils/compare_exec_and_2c should_work/initial.lus PASS: ./lus2lic {-o /tmp/declaration.lic should_work/declaration.lus} PASS: ./lus2lic {-ec -o /tmp/declaration.ec should_work/declaration.lus} PASS: ./myec2c {-o /tmp/declaration.c /tmp/declaration.ec} -PASS: ../utils/test_lus2lic_no_node should_work/declaration.lus PASS: ./lus2lic {-2c should_work/declaration.lus -n declaration} PASS: gcc declaration_declaration.c declaration_declaration_loop.c PASS: ./lus2lic {-o /tmp/PCOND1.lic should_work/PCOND1.lus} @@ -806,7 +782,6 @@ PASS: ../utils/compare_exec_and_2c should_work/nc5.lus PASS: ./lus2lic {-o /tmp/call.lic should_work/call.lus} PASS: ./lus2lic {-ec -o /tmp/call.ec should_work/call.lus} PASS: ./myec2c {-o /tmp/call.c /tmp/call.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/call.lus PASS: ./lus2lic {-2c should_work/call.lus -n call} PASS: gcc call_call.c call_call_ext.c call_call_loop.c PASS: ./lus2lic {-o /tmp/mouse1.lic should_work/mouse1.lus} @@ -819,10 +794,10 @@ PASS: ../utils/compare_exec_and_2c should_work/mouse1.lus PASS: ./lus2lic {-o /tmp/lustre_test1_ok.lic should_work/lustre_test1_ok.lus} PASS: ./lus2lic {-ec -o /tmp/lustre_test1_ok.ec should_work/lustre_test1_ok.lus} PASS: ./myec2c {-o /tmp/lustre_test1_ok.c /tmp/lustre_test1_ok.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/lustre_test1_ok.lus +PASS: ../utils/test_lus2lic_no_node should_work/lustre_test1_ok.lus PASS: ./lus2lic {-2c should_work/lustre_test1_ok.lus -n lustre_test1_ok} PASS: gcc lustre_test1_ok_lustre_test1_ok.c lustre_test1_ok_lustre_test1_ok_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/lustre_test1_ok.lus +PASS: ../utils/compare_exec_and_2c should_work/lustre_test1_ok.lus PASS: ./lus2lic {-o /tmp/compteur.lic should_work/compteur.lus} PASS: ./lus2lic {-ec -o /tmp/compteur.ec should_work/compteur.lus} PASS: ./myec2c {-o /tmp/compteur.c /tmp/compteur.ec} @@ -833,10 +808,11 @@ PASS: ../utils/compare_exec_and_2c should_work/compteur.lus PASS: ./lus2lic {-o /tmp/Int.lic should_work/Int.lus} PASS: ./lus2lic {-ec -o /tmp/Int.ec should_work/Int.lus} PASS: ./myec2c {-o /tmp/Int.c /tmp/Int.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Int.lus PASS: ./lus2lic {-2c should_work/Int.lus -n Int} FAIL: without any option: ./lus2lic {-o /tmp/tranche.lic should_work/tranche.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/tranche.ec should_work/tranche.lus} +FAIL: Generate c code : ./lus2lic {-2c should_work/tranche.lus -n tranche} +FAIL: Check that the generated C code compiles : gcc tranche_tranche.c tranche_tranche_loop.c PASS: ./lus2lic {-o /tmp/t2.lic should_work/t2.lus} PASS: ./lus2lic {-ec -o /tmp/t2.ec should_work/t2.lus} PASS: ./myec2c {-o /tmp/t2.c /tmp/t2.ec} @@ -847,7 +823,6 @@ PASS: ../utils/compare_exec_and_2c should_work/t2.lus PASS: ./lus2lic {-o /tmp/arbitre.lic should_work/arbitre.lus} PASS: ./lus2lic {-ec -o /tmp/arbitre.ec should_work/arbitre.lus} PASS: ./myec2c {-o /tmp/arbitre.c /tmp/arbitre.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/arbitre.lus PASS: ./lus2lic {-2c should_work/arbitre.lus -n arbitre} FAIL: Check that the generated C code compiles : gcc arbitre_arbitre.c arbitre_arbitre_ext.c arbitre_arbitre_loop.c PASS: ./lus2lic {-o /tmp/test_const.lic should_work/test_const.lus} @@ -860,19 +835,20 @@ PASS: ../utils/compare_exec_and_2c should_work/test_const.lus PASS: ./lus2lic {-o /tmp/when_tuple.lic should_work/when_tuple.lus} PASS: ./lus2lic {-ec -o /tmp/when_tuple.ec should_work/when_tuple.lus} PASS: ./myec2c {-o /tmp/when_tuple.c /tmp/when_tuple.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/when_tuple.lus PASS: ./lus2lic {-2c should_work/when_tuple.lus -n when_tuple} FAIL: Check that the generated C code compiles : gcc when_tuple_when_tuple.c when_tuple_when_tuple_ext.c when_tuple_when_tuple_loop.c PASS: ./lus2lic {-o /tmp/carV2.lic should_work/carV2.lus} PASS: ./lus2lic {-ec -o /tmp/carV2.ec should_work/carV2.lus} PASS: ./myec2c {-o /tmp/carV2.c /tmp/carV2.ec} -PASS: ../utils/test_lus2lic_no_node should_work/carV2.lus PASS: ./lus2lic {-2c should_work/carV2.lus -n carV2} PASS: gcc carV2_carV2.c carV2_carV2_loop.c PASS: ../utils/compare_exec_and_2c should_work/carV2.lus PASS: ./lus2lic {-o /tmp/test_merge.lic should_work/test_merge.lus} PASS: ./lus2lic {-ec -o /tmp/test_merge.ec should_work/test_merge.lus} FAIL: Try ec2c on the result: ./myec2c {-o /tmp/test_merge.c /tmp/test_merge.ec} +PASS: ./lus2lic {-2c should_work/test_merge.lus -n test_merge} +PASS: gcc test_merge_test_merge.c test_merge_test_merge_loop.c +PASS: ../utils/compare_exec_and_2c should_work/test_merge.lus PASS: ./lus2lic {-o /tmp/FillFollowedByRed.lic should_work/FillFollowedByRed.lus} PASS: ./lus2lic {-ec -o /tmp/FillFollowedByRed.ec should_work/FillFollowedByRed.lus} PASS: ./myec2c {-o /tmp/FillFollowedByRed.c /tmp/FillFollowedByRed.ec} @@ -880,17 +856,9 @@ PASS: ../utils/test_lus2lic_no_node should_work/FillFollowedByRed.lus PASS: ./lus2lic {-2c should_work/FillFollowedByRed.lus -n FillFollowedByRed} PASS: gcc FillFollowedByRed_FillFollowedByRed.c FillFollowedByRed_FillFollowedByRed_loop.c PASS: ../utils/compare_exec_and_2c should_work/FillFollowedByRed.lus -PASS: ./lus2lic {-o /tmp/sample_time_change.lic should_work/sample_time_change.lus} -PASS: ./lus2lic {-ec -o /tmp/sample_time_change.ec should_work/sample_time_change.lus} -PASS: ./myec2c {-o /tmp/sample_time_change.c /tmp/sample_time_change.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/sample_time_change.lus -PASS: ./lus2lic {-2c should_work/sample_time_change.lus -n sample_time_change} -PASS: gcc sample_time_change_sample_time_change.c sample_time_change_sample_time_change_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/sample_time_change.lus PASS: ./lus2lic {-o /tmp/test_enum.lic should_work/test_enum.lus} PASS: ./lus2lic {-ec -o /tmp/test_enum.ec should_work/test_enum.lus} PASS: ./myec2c {-o /tmp/test_enum.c /tmp/test_enum.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/test_enum.lus PASS: ./lus2lic {-2c should_work/test_enum.lus -n test_enum} PASS: gcc test_enum_test_enum.c test_enum_test_enum_loop.c PASS: ../utils/compare_exec_and_2c should_work/test_enum.lus @@ -911,7 +879,7 @@ PASS: ../utils/compare_exec_and_2c should_work/long_et_stupide_nom_de_noeud.lus PASS: ./lus2lic {-o /tmp/CURRENT.lic should_work/CURRENT.lus} PASS: ./lus2lic {-ec -o /tmp/CURRENT.ec should_work/CURRENT.lus} PASS: ./myec2c {-o /tmp/CURRENT.c /tmp/CURRENT.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/CURRENT.lus +PASS: ../utils/test_lus2lic_no_node should_work/CURRENT.lus PASS: ./lus2lic {-2c should_work/CURRENT.lus -n CURRENT} PASS: gcc CURRENT_CURRENT.c CURRENT_CURRENT_loop.c FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/CURRENT.lus @@ -930,13 +898,11 @@ PASS: gcc ts04_ts04.c ts04_ts04_loop.c PASS: ../utils/compare_exec_and_2c should_work/ts04.lus FAIL: without any option: ./lus2lic {-o /tmp/bug_map_fby.lic should_work/bug_map_fby.lus} FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/bug_map_fby.ec should_work/bug_map_fby.lus} -PASS: ./lus2lic {-o /tmp/multiclock.lic should_work/multiclock.lus} -PASS: ./lus2lic {-ec -o /tmp/multiclock.ec should_work/multiclock.lus} -PASS: ./myec2c {-o /tmp/multiclock.c /tmp/multiclock.ec} +FAIL: Generate c code : ./lus2lic {-2c should_work/bug_map_fby.lus -n bug_map_fby} +FAIL: without any option: ./lus2lic {-o /tmp/multiclock.lic should_work/multiclock.lus} +FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/multiclock.ec should_work/multiclock.lus} FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/multiclock.lus -PASS: ./lus2lic {-2c should_work/multiclock.lus -n multiclock} -PASS: gcc multiclock_multiclock.c multiclock_multiclock_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/multiclock.lus +FAIL: Generate c code : ./lus2lic {-2c should_work/multiclock.lus -n multiclock} PASS: ./lus2lic {-o /tmp/nc2.lic should_work/nc2.lus} PASS: ./lus2lic {-ec -o /tmp/nc2.ec should_work/nc2.lus} PASS: ./myec2c {-o /tmp/nc2.c /tmp/nc2.ec} @@ -981,7 +947,6 @@ PASS: ../utils/compare_exec_and_2c should_work/o2l_feux_compl.lus PASS: ./lus2lic {-o /tmp/model.lic should_work/model.lus} PASS: ./lus2lic {-ec -o /tmp/model.ec should_work/model.lus} PASS: ./myec2c {-o /tmp/model.c /tmp/model.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/model.lus PASS: ./lus2lic {-2c should_work/model.lus -n model} PASS: ./lus2lic {-o /tmp/matrice.lic should_work/matrice.lus} PASS: ./lus2lic {-ec -o /tmp/matrice.ec should_work/matrice.lus} @@ -1054,23 +1019,26 @@ FAIL: Generate c code : ./lus2lic {-2c should_work/activation2.lus -n activatio PASS: ./lus2lic {-o /tmp/type_decl.lic should_work/type_decl.lus} PASS: ./lus2lic {-ec -o /tmp/type_decl.ec should_work/type_decl.lus} PASS: ./myec2c {-o /tmp/type_decl.c /tmp/type_decl.ec} -PASS: ../utils/test_lus2lic_no_node should_work/type_decl.lus PASS: ./lus2lic {-2c should_work/type_decl.lus -n type_decl} PASS: gcc type_decl_type_decl.c type_decl_type_decl_loop.c PASS: ../utils/compare_exec_and_2c should_work/type_decl.lus +PASS: ./lus2lic {-o /tmp/sample_time_change_MainNode.lic should_work/sample_time_change_MainNode.lus} +PASS: ./lus2lic {-ec -o /tmp/sample_time_change_MainNode.ec should_work/sample_time_change_MainNode.lus} +PASS: ./myec2c {-o /tmp/sample_time_change_MainNode.c /tmp/sample_time_change_MainNode.ec} +PASS: ../utils/test_lus2lic_no_node should_work/sample_time_change_MainNode.lus +PASS: ./lus2lic {-2c should_work/sample_time_change_MainNode.lus -n sample_time_change_MainNode} +PASS: gcc sample_time_change_MainNode_sample_time_change_MainNode.c sample_time_change_MainNode_sample_time_change_MainNode_loop.c +PASS: ../utils/compare_exec_and_2c should_work/sample_time_change_MainNode.lus PASS: ./lus2lic {-o /tmp/import1.lic should_work/import1.lus} PASS: ./lus2lic {-ec -o /tmp/import1.ec should_work/import1.lus} PASS: ./myec2c {-o /tmp/import1.c /tmp/import1.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/import1.lus PASS: ./lus2lic {-2c should_work/import1.lus -n import1} FAIL: Check that the generated C code compiles : gcc import1_import1.c import1_import1_ext.c import1_import1_loop.c PASS: ./lus2lic {-o /tmp/pack1.lic should_work/pack1.lus} PASS: ./lus2lic {-ec -o /tmp/pack1.ec should_work/pack1.lus} PASS: ./myec2c {-o /tmp/pack1.c /tmp/pack1.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/pack1.lus PASS: ./lus2lic {-2c should_work/pack1.lus -n pack1} PASS: gcc pack1_pack1.c pack1_pack1_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/pack1.lus PASS: ./lus2lic {-o /tmp/bob.lic should_work/bob.lus} PASS: ./lus2lic {-ec -o /tmp/bob.ec should_work/bob.lus} PASS: ./myec2c {-o /tmp/bob.c /tmp/bob.ec} @@ -1143,27 +1111,30 @@ PASS: ../utils/compare_exec_and_2c should_work/mouse3.lus PASS: ./lus2lic {-o /tmp/array_concat.lic should_work/array_concat.lus} PASS: ./lus2lic {-ec -o /tmp/array_concat.ec should_work/array_concat.lus} FAIL: Try ec2c on the result: ./myec2c {-o /tmp/array_concat.c /tmp/array_concat.ec} +PASS: ./lus2lic {-2c should_work/array_concat.lus -n array_concat} +PASS: gcc array_concat_array_concat.c array_concat_array_concat_loop.c +FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/array_concat.lus PASS: ./lus2lic {-o /tmp/ex.lic should_work/ex.lus} PASS: ./lus2lic {-ec -o /tmp/ex.ec should_work/ex.lus} PASS: ./myec2c {-o /tmp/ex.c /tmp/ex.ec} PASS: ../utils/test_lus2lic_no_node should_work/ex.lus PASS: ./lus2lic {-2c should_work/ex.lus -n ex} PASS: gcc ex_ex.c ex_ex_loop.c -PASS: ../utils/compare_exec_and_2c should_work/ex.lus +UNRESOLVED: Time out: ../utils/compare_exec_and_2c should_work/ex.lus PASS: ./lus2lic {-o /tmp/xxx.lic should_work/xxx.lus} PASS: ./lus2lic {-ec -o /tmp/xxx.ec should_work/xxx.lus} PASS: ./myec2c {-o /tmp/xxx.c /tmp/xxx.ec} PASS: ../utils/test_lus2lic_no_node should_work/xxx.lus PASS: ./lus2lic {-2c should_work/xxx.lus -n xxx} PASS: gcc xxx_xxx.c xxx_xxx_loop.c -PASS: ../utils/compare_exec_and_2c should_work/xxx.lus +UNRESOLVED: Time out: ../utils/compare_exec_and_2c should_work/xxx.lus PASS: ./lus2lic {-o /tmp/moyenne.lic should_work/moyenne.lus} PASS: ./lus2lic {-ec -o /tmp/moyenne.ec should_work/moyenne.lus} PASS: ./myec2c {-o /tmp/moyenne.c /tmp/moyenne.ec} PASS: ../utils/test_lus2lic_no_node should_work/moyenne.lus PASS: ./lus2lic {-2c should_work/moyenne.lus -n moyenne} PASS: gcc moyenne_moyenne.c moyenne_moyenne_loop.c -PASS: ../utils/compare_exec_and_2c should_work/moyenne.lus +UNRESOLVED: Time out: ../utils/compare_exec_and_2c should_work/moyenne.lus PASS: ./lus2lic {-o /tmp/activation1.lic should_work/activation1.lus} PASS: ./lus2lic {-ec -o /tmp/activation1.ec should_work/activation1.lus} PASS: ./myec2c {-o /tmp/activation1.c /tmp/activation1.ec} @@ -1172,7 +1143,6 @@ FAIL: Generate c code : ./lus2lic {-2c should_work/activation1.lus -n activatio PASS: ./lus2lic {-o /tmp/call01.lic should_work/call01.lus} PASS: ./lus2lic {-ec -o /tmp/call01.ec should_work/call01.lus} PASS: ./myec2c {-o /tmp/call01.c /tmp/call01.ec} -PASS: ../utils/test_lus2lic_no_node should_work/call01.lus PASS: ./lus2lic {-2c should_work/call01.lus -n call01} PASS: gcc call01_call01.c call01_call01_loop.c PASS: ./lus2lic {-o /tmp/bug.lic should_work/bug.lus} @@ -1185,21 +1155,19 @@ PASS: ../utils/compare_exec_and_2c should_work/bug.lus PASS: ./lus2lic {-o /tmp/ck4.lic should_work/ck4.lus} PASS: ./lus2lic {-ec -o /tmp/ck4.ec should_work/ck4.lus} PASS: ./myec2c {-o /tmp/ck4.c /tmp/ck4.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck4.lus +PASS: ../utils/test_lus2lic_no_node should_work/ck4.lus PASS: ./lus2lic {-2c should_work/ck4.lus -n ck4} PASS: gcc ck4_ck4.c ck4_ck4_loop.c FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/ck4.lus PASS: ./lus2lic {-o /tmp/map_red_iter.lic should_work/map_red_iter.lus} PASS: ./lus2lic {-ec -o /tmp/map_red_iter.ec should_work/map_red_iter.lus} PASS: ./myec2c {-o /tmp/map_red_iter.c /tmp/map_red_iter.ec} -PASS: ../utils/test_lus2lic_no_node should_work/map_red_iter.lus PASS: ./lus2lic {-2c should_work/map_red_iter.lus -n map_red_iter} PASS: gcc map_red_iter_map_red_iter.c map_red_iter_map_red_iter_loop.c PASS: ../utils/compare_exec_and_2c should_work/map_red_iter.lus PASS: ./lus2lic {-o /tmp/p.lic should_work/p.lus} PASS: ./lus2lic {-ec -o /tmp/p.ec should_work/p.lus} PASS: ./myec2c {-o /tmp/p.c /tmp/p.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/p.lus PASS: ./lus2lic {-2c should_work/p.lus -n p} PASS: ./lus2lic {-o /tmp/struct0.lic should_work/struct0.lus} PASS: ./lus2lic {-ec -o /tmp/struct0.ec should_work/struct0.lus} @@ -1211,7 +1179,7 @@ PASS: ../utils/compare_exec_and_2c should_work/struct0.lus PASS: ./lus2lic {-o /tmp/filliter.lic should_work/filliter.lus} PASS: ./lus2lic {-ec -o /tmp/filliter.ec should_work/filliter.lus} PASS: ./myec2c {-o /tmp/filliter.c /tmp/filliter.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/filliter.lus +PASS: ../utils/test_lus2lic_no_node should_work/filliter.lus PASS: ./lus2lic {-2c should_work/filliter.lus -n filliter} PASS: gcc filliter_filliter.c filliter_filliter_loop.c FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/filliter.lus @@ -1253,7 +1221,6 @@ PASS: ../utils/compare_exec_and_2c should_work/followed_by.lus PASS: ./lus2lic {-o /tmp/asservi.lic should_work/asservi.lus} PASS: ./lus2lic {-ec -o /tmp/asservi.ec should_work/asservi.lus} PASS: ./myec2c {-o /tmp/asservi.c /tmp/asservi.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/asservi.lus FAIL: Generate c code : ./lus2lic {-2c should_work/asservi.lus -n asservi} PASS: ./lus2lic {-o /tmp/rediter.lic should_work/rediter.lus} PASS: ./lus2lic {-ec -o /tmp/rediter.ec should_work/rediter.lus} @@ -1272,7 +1239,6 @@ PASS: ../utils/compare_exec_and_2c should_work/mapdeRed.lus PASS: ./lus2lic {-o /tmp/modelInst.lic should_work/modelInst.lus} PASS: ./lus2lic {-ec -o /tmp/modelInst.ec should_work/modelInst.lus} PASS: ./myec2c {-o /tmp/modelInst.c /tmp/modelInst.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/modelInst.lus PASS: ./lus2lic {-2c should_work/modelInst.lus -n modelInst} PASS: ./lus2lic {-o /tmp/dependeur_struct.lic should_work/dependeur_struct.lus} PASS: ./lus2lic {-ec -o /tmp/dependeur_struct.ec should_work/dependeur_struct.lus} @@ -1298,6 +1264,8 @@ PASS: ../utils/compare_exec_and_2c should_work/test_struct.lus PASS: ./lus2lic {-o /tmp/modes3x2_v4.lic should_work/modes3x2_v4.lus} PASS: ./lus2lic {-ec -o /tmp/modes3x2_v4.ec should_work/modes3x2_v4.lus} FAIL: Try ec2c on the result: ./myec2c {-o /tmp/modes3x2_v4.c /tmp/modes3x2_v4.ec} +PASS: ./lus2lic {-2c should_work/modes3x2_v4.lus -n modes3x2_v4} +PASS: gcc modes3x2_v4_modes3x2_v4.c modes3x2_v4_modes3x2_v4_ext.c modes3x2_v4_modes3x2_v4_loop.c PASS: ./lus2lic {-o /tmp/uu.lic should_work/uu.lus} PASS: ./lus2lic {-ec -o /tmp/uu.ec should_work/uu.lus} PASS: ./myec2c {-o /tmp/uu.c /tmp/uu.ec} @@ -1315,6 +1283,9 @@ PASS: ../utils/compare_exec_and_2c should_work/simpleRed.lus PASS: ./lus2lic {-o /tmp/modes3x2_v3.lic should_work/modes3x2_v3.lus} PASS: ./lus2lic {-ec -o /tmp/modes3x2_v3.ec should_work/modes3x2_v3.lus} FAIL: Try ec2c on the result: ./myec2c {-o /tmp/modes3x2_v3.c /tmp/modes3x2_v3.ec} +PASS: ./lus2lic {-2c should_work/modes3x2_v3.lus -n modes3x2_v3} +PASS: gcc modes3x2_v3_modes3x2_v3.c modes3x2_v3_modes3x2_v3_loop.c +PASS: ../utils/compare_exec_and_2c should_work/modes3x2_v3.lus PASS: ./lus2lic {-o /tmp/pre_x.lic should_work/pre_x.lus} PASS: ./lus2lic {-ec -o /tmp/pre_x.ec should_work/pre_x.lus} PASS: ./myec2c {-o /tmp/pre_x.c /tmp/pre_x.ec} @@ -1360,12 +1331,10 @@ FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_ PASS: ./lus2lic {-o /tmp/lustre.lic should_work/lustre.lus} PASS: ./lus2lic {-ec -o /tmp/lustre.ec should_work/lustre.lus} PASS: ./myec2c {-o /tmp/lustre.c /tmp/lustre.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/lustre.lus PASS: ./lus2lic {-2c should_work/lustre.lus -n lustre} PASS: ./lus2lic {-o /tmp/packed_cst.lic should_work/packed_cst.lus} PASS: ./lus2lic {-ec -o /tmp/packed_cst.ec should_work/packed_cst.lus} PASS: ./myec2c {-o /tmp/packed_cst.c /tmp/packed_cst.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/packed_cst.lus PASS: ./lus2lic {-2c should_work/packed_cst.lus -n packed_cst} PASS: ./lus2lic {-o /tmp/predef02.lic should_work/predef02.lus} PASS: ./lus2lic {-ec -o /tmp/predef02.ec should_work/predef02.lus} @@ -1391,7 +1360,7 @@ PASS: ../utils/compare_exec_and_2c should_work/minmax6.lus PASS: ./lus2lic {-o /tmp/ck3.lic should_work/ck3.lus} PASS: ./lus2lic {-ec -o /tmp/ck3.ec should_work/ck3.lus} PASS: ./myec2c {-o /tmp/ck3.c /tmp/ck3.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck3.lus +PASS: ../utils/test_lus2lic_no_node should_work/ck3.lus PASS: ./lus2lic {-2c should_work/ck3.lus -n ck3} PASS: gcc ck3_ck3.c ck3_ck3_loop.c FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/ck3.lus @@ -1433,10 +1402,10 @@ PASS: ../utils/compare_exec_and_2c should_work/call02.lus PASS: ./lus2lic {-o /tmp/ck7.lic should_work/ck7.lus} PASS: ./lus2lic {-ec -o /tmp/ck7.ec should_work/ck7.lus} PASS: ./myec2c {-o /tmp/ck7.c /tmp/ck7.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck7.lus +PASS: ../utils/test_lus2lic_no_node should_work/ck7.lus PASS: ./lus2lic {-2c should_work/ck7.lus -n ck7} PASS: gcc ck7_ck7.c ck7_ck7_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/ck7.lus +PASS: ../utils/compare_exec_and_2c should_work/ck7.lus PASS: ./lus2lic {-o /tmp/nc10.lic should_work/nc10.lus} PASS: ./lus2lic {-ec -o /tmp/nc10.ec should_work/nc10.lus} PASS: ./myec2c {-o /tmp/nc10.c /tmp/nc10.ec} @@ -1517,13 +1486,10 @@ PASS: ../utils/test_lus2lic_no_node should_work/iterate.lus PASS: ./lus2lic {-2c should_work/iterate.lus -n iterate} PASS: gcc iterate_iterate.c iterate_iterate_loop.c PASS: ../utils/compare_exec_and_2c should_work/iterate.lus -PASS: ./lus2lic {-o /tmp/PCOND.lic should_work/PCOND.lus} -PASS: ./lus2lic {-ec -o /tmp/PCOND.ec should_work/PCOND.lus} -PASS: ./myec2c {-o /tmp/PCOND.c /tmp/PCOND.ec} +FAIL: without any option: ./lus2lic {-o /tmp/PCOND.lic should_work/PCOND.lus} +FAIL: Generate ec code : ./lus2lic {-ec -o /tmp/PCOND.ec should_work/PCOND.lus} FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/PCOND.lus -PASS: ./lus2lic {-2c should_work/PCOND.lus -n PCOND} -PASS: gcc PCOND_PCOND.c PCOND_PCOND_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/PCOND.lus +FAIL: Generate c code : ./lus2lic {-2c should_work/PCOND.lus -n PCOND} PASS: ./lus2lic {-o /tmp/EDGE.lic should_work/EDGE.lus} PASS: ./lus2lic {-ec -o /tmp/EDGE.ec should_work/EDGE.lus} PASS: ./myec2c {-o /tmp/EDGE.c /tmp/EDGE.ec} @@ -1534,12 +1500,12 @@ PASS: ../utils/compare_exec_and_2c should_work/EDGE.lus PASS: ./lus2lic {-o /tmp/call03.lic should_work/call03.lus} PASS: ./lus2lic {-ec -o /tmp/call03.ec should_work/call03.lus} PASS: ./myec2c {-o /tmp/call03.c /tmp/call03.ec} -PASS: ../utils/test_lus2lic_no_node should_work/call03.lus PASS: ./lus2lic {-2c should_work/call03.lus -n call03} PASS: gcc call03_call03.c call03_call03_loop.c PASS: ./lus2lic {-o /tmp/modes3x2-simu.lic should_work/modes3x2-simu.lus} PASS: ./lus2lic {-ec -o /tmp/modes3x2-simu.ec should_work/modes3x2-simu.lus} FAIL: Try ec2c on the result: ./myec2c {-o /tmp/modes3x2-simu.c /tmp/modes3x2-simu.ec} +FAIL: Generate c code : ./lus2lic {-2c should_work/modes3x2-simu.lus -n modes3x2-simu} PASS: ./lus2lic {-o /tmp/count.lic should_work/count.lus} PASS: ./lus2lic {-ec -o /tmp/count.ec should_work/count.lus} PASS: ./myec2c {-o /tmp/count.c /tmp/count.ec} @@ -1550,21 +1516,20 @@ PASS: ../utils/compare_exec_and_2c should_work/count.lus PASS: ./lus2lic {-o /tmp/ck2.lic should_work/ck2.lus} PASS: ./lus2lic {-ec -o /tmp/ck2.ec should_work/ck2.lus} PASS: ./myec2c {-o /tmp/ck2.c /tmp/ck2.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/ck2.lus +PASS: ../utils/test_lus2lic_no_node should_work/ck2.lus PASS: ./lus2lic {-2c should_work/ck2.lus -n ck2} PASS: gcc ck2_ck2.c ck2_ck2_loop.c FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/ck2.lus PASS: ./lus2lic {-o /tmp/X.lic should_work/X.lus} PASS: ./lus2lic {-ec -o /tmp/X.ec should_work/X.lus} PASS: ./myec2c {-o /tmp/X.c /tmp/X.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/X.lus +PASS: ../utils/test_lus2lic_no_node should_work/X.lus PASS: ./lus2lic {-2c should_work/X.lus -n X} PASS: gcc X_X.c X_X_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/X.lus +PASS: ../utils/compare_exec_and_2c should_work/X.lus PASS: ./lus2lic {-o /tmp/Condact.lic should_work/Condact.lus} PASS: ./lus2lic {-ec -o /tmp/Condact.ec should_work/Condact.lus} PASS: ./myec2c {-o /tmp/Condact.c /tmp/Condact.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/Condact.lus PASS: ./lus2lic {-2c should_work/Condact.lus -n Condact} PASS: ./lus2lic {-o /tmp/poussoir.lic should_work/poussoir.lus} PASS: ./lus2lic {-ec -o /tmp/poussoir.ec should_work/poussoir.lus} @@ -1583,14 +1548,13 @@ PASS: ../utils/compare_exec_and_2c should_work/SWITCH1.lus PASS: ./lus2lic {-o /tmp/clock1_2ms.lic should_work/clock1_2ms.lus} PASS: ./lus2lic {-ec -o /tmp/clock1_2ms.ec should_work/clock1_2ms.lus} PASS: ./myec2c {-o /tmp/clock1_2ms.c /tmp/clock1_2ms.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/clock1_2ms.lus +PASS: ../utils/test_lus2lic_no_node should_work/clock1_2ms.lus PASS: ./lus2lic {-2c should_work/clock1_2ms.lus -n clock1_2ms} PASS: gcc clock1_2ms_clock1_2ms.c clock1_2ms_clock1_2ms_loop.c -FAIL: Try to compare lus2lic -exec and -2c: ../utils/compare_exec_and_2c should_work/clock1_2ms.lus +PASS: ../utils/compare_exec_and_2c should_work/clock1_2ms.lus PASS: ./lus2lic {-o /tmp/decl.lic should_work/decl.lus} PASS: ./lus2lic {-ec -o /tmp/decl.ec should_work/decl.lus} PASS: ./myec2c {-o /tmp/decl.c /tmp/decl.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/decl.lus PASS: ./lus2lic {-2c should_work/decl.lus -n decl} FAIL: Check that the generated C code compiles : gcc decl_decl.c decl_decl_ext.c decl_decl_loop.c PASS: ./lus2lic {-o /tmp/bred_lv4.lic should_work/bred_lv4.lus} @@ -1617,13 +1581,11 @@ PASS: ../utils/compare_exec_and_2c should_work/param_node.lus PASS: ./lus2lic {-o /tmp/simple.lic should_work/simple.lus} PASS: ./lus2lic {-ec -o /tmp/simple.ec should_work/simple.lus} PASS: ./myec2c {-o /tmp/simple.c /tmp/simple.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/simple.lus PASS: ./lus2lic {-2c should_work/simple.lus -n simple} FAIL: Check that the generated C code compiles : gcc simple_simple.c simple_simple_loop.c PASS: ./lus2lic {-o /tmp/func_with_body.lic should_work/func_with_body.lus} PASS: ./lus2lic {-ec -o /tmp/func_with_body.ec should_work/func_with_body.lus} PASS: ./myec2c {-o /tmp/func_with_body.c /tmp/func_with_body.ec} -PASS: ../utils/test_lus2lic_no_node should_work/func_with_body.lus PASS: ./lus2lic {-2c should_work/func_with_body.lus -n func_with_body} PASS: gcc func_with_body_func_with_body.c func_with_body_func_with_body_loop.c PASS: ./lus2lic {-o /tmp/minus.lic should_work/minus.lus} @@ -1636,7 +1598,6 @@ PASS: ../utils/compare_exec_and_2c should_work/minus.lus PASS: ./lus2lic {-o /tmp/remplissage-1.0.lic should_work/remplissage-1.0.lus} PASS: ./lus2lic {-ec -o /tmp/remplissage-1.0.ec should_work/remplissage-1.0.lus} PASS: ./myec2c {-o /tmp/remplissage-1.0.c /tmp/remplissage-1.0.ec} -FAIL: Try to compare lus2lic -exec and ecexe: ../utils/test_lus2lic_no_node should_work/remplissage-1.0.lus PASS: ./lus2lic {-2c should_work/remplissage-1.0.lus -n remplissage-1.0} XFAIL: Test bad programs (syntax): test_lus2lic_no_node should_fail/syntax/old_style_and_pack.lus XFAIL: Test bad programs (syntax): test_lus2lic_no_node should_fail/syntax/record.lus @@ -1708,7 +1669,10 @@ XPASS: Test bad programs (semantics): lus2lic {-o /tmp/bug.lic should_fail/seman === lus2lic Summary === -# of expected passes 1508 -# of unexpected failures 130 +# of expected passes 1512 +# of unexpected failures 84 # of unexpected successes 21 # of expected failures 37 +# of unresolved testcases 3 +testcase ./lus2lic.tests/non-reg.exp completed in 259 seconds +testcase ./lus2lic.tests/progression.exp completed in 0 seconds diff --git a/test/lus2lic.tests/non-reg.exp b/test/lus2lic.tests/non-reg.exp index 7418a0bd..f8803db8 100644 --- a/test/lus2lic.tests/non-reg.exp +++ b/test/lus2lic.tests/non-reg.exp @@ -14,25 +14,27 @@ foreach f $ok_files { set id1 [should_work "without any option" "$lus2lic" "-o $bf.lic $f"] wait -i $id1 - set id2 [should_work "Generate ec code " "$lus2lic" "-ec -o $bf.ec $f"] - wait -i $id2 - - if { [nonemptyfile "$bf.ec"] } { - set id3 [should_work "Try ec2c on the result" "$ec2c" "-o $bf.c $bf.ec"] - wait -i $id3 - catch { exp_close -i $id3 } + # if { [nonemptyfile "$bf.lic"] } { + set id2 [should_work "Generate ec code " "$lus2lic" "-ec -o $bf.ec $f"] + wait -i $id2 + + if { [nonemptyfile "$bf.ec"] } { + set id3 [should_work "Try ec2c on the result" "$ec2c" "-o $bf.c $bf.ec"] + wait -i $id3 + catch { exp_close -i $id3 } catch { exp_wait -i $id3 } output - } - if { [nonemptyfile "$bf.c"] } { - set id4 [should_work "Try to compare lus2lic -exec and ecexe" "$test_lus2lic_no_node" "$f"] - catch { exp_close -i $id4 } - catch { exp_wait -i $id4 } output - + } + + if { [nonemptyfile "$bf.c"] && [do_ecexe_vs_exec "$f"] } { + set id4 [should_work "Try to compare lus2lic -exec and ecexe" "$test_lus2lic_no_node" "$f"] + catch { exp_close -i $id4 } + catch { exp_wait -i $id4 } output + } set id5 [should_work "Generate c code " "$lus2lic" "-2c $f -n $basef"] wait -i $id5 - + if { [nonemptyfile "${basef}_${basef}.c"] } { - eval spawn "rm -f a.out" + eval spawn "rm -f a.out" if { [nonemptyfile "${basef}_${basef}_ext.c"] } { set id6 [should_work "Check that the generated C code compiles " "gcc ${basef}_${basef}.c ${basef}_${basef}_ext.c ${basef}_${basef}_loop.c"] } else { @@ -41,24 +43,21 @@ foreach f $ok_files { wait -i $id6 catch { exp_close -i $id6 } catch { exp_wait -i $id6 } output - - # do_test is used to avoid to perforn a comparison on files that contains extern nodes - if { [nonemptyfile a.out] && [contains_extern "$f"] } { + + if { [nonemptyfile a.out] && [do_2c_vs_exec "$f"] } { set id7 [should_work "Try to compare lus2lic -exec and -2c" "$compare_exec_and_2c" "$f"] catch { exp_close -i $id7 } catch { exp_wait -i $id7 } output - } + } } catch { exp_close -i $id5 } catch { exp_wait -i $id5 } output - } - + catch { exp_close -i $id2 } + catch { exp_wait -i $id2 } output + #} catch { exp_close -i $id1 } catch { exp_wait -i $id1 } output - catch { exp_close -i $id2 } - catch { exp_wait -i $id2 } output - - } +} # Programs that should fail diff --git a/test/lus2lic.time b/test/lus2lic.time index e69de29b..3d42a2c8 100644 --- a/test/lus2lic.time +++ b/test/lus2lic.time @@ -0,0 +1,2 @@ +testcase ./lus2lic.tests/non-reg.exp completed in 259 seconds +testcase ./lus2lic.tests/progression.exp completed in 0 seconds diff --git a/test/should_work/CURRENT.lus b/test/should_work/CURRENT.lus index 462150c8..94856251 100644 --- a/test/should_work/CURRENT.lus +++ b/test/should_work/CURRENT.lus @@ -1,4 +1,9 @@ -node CURRENT(x: bool; y: bool when x) +node CURRENT(x: bool; y: bool) +returns (z: bool); +let + z = current(CURRENT_clk(x,y when x)); +tel +node CURRENT_clk(x: bool; y: bool when x) returns (z: bool when x); let z = y; diff --git a/test/should_work/PCOND.lus b/test/should_work/PCOND.lus index ff9f4b82..21211251 100644 --- a/test/should_work/PCOND.lus +++ b/test/should_work/PCOND.lus @@ -1,4 +1,29 @@ node PCOND( + h0:bool; + hA,hB,hC:bool; + A:int ; + B:int ; + C:bool; + hD:bool; + D:bool ) +returns (hX:bool; X:int); +var + hX_on_h0 : bool when h0; + X_on_hX : int when hX_on_h0; +let + hX = current(hX_on_h0); + X = current(X_on_hX); + hX_on_h0, X_on_hX = PCOND_clk( + h0, + hA,hB,hC when h0, + A when hA, + B when hB, + C when hC, + hD when hC, + D when hD); +tel + +node PCOND_clk( h0:bool; hA,hB,hC:bool when h0; A:int when hA; @@ -8,14 +33,14 @@ node PCOND( D:bool when hD) returns (hX:bool when h0; X:int when hX); let - hX = hC and current(hD) and ( ( hA and - current(current(D)) ) - or - ( hB and not - current(current(D)) ) ); + hX = hC and current(hD) and ( ( hA and + current(current(D)) ) + or + ( hB and not + current(current(D)) ) ); - X = ( if ( hA and current(current(D)) ) - then current(A) - else current(B) - ) when hX; + X = ( if ( hA and current(current(D)) ) + then current(A) + else current(B) + ) when hX; tel diff --git a/test/should_work/PCOND1.lus b/test/should_work/PCOND1.lus index 7c116c25..a7509c5c 100644 --- a/test/should_work/PCOND1.lus +++ b/test/should_work/PCOND1.lus @@ -1,7 +1,29 @@ -node PCOND1( h0:bool; hA,hB,hC:bool when h0; -A:int when hA; B:int when hB; C:bool when hC; +node PCOND1(h0:bool; hA,hB,hC:bool ; + A:int ; B:int ; C:bool; + hD:bool; D:bool) +returns (hX:bool); +var + hX_on_h0: bool when h0; + hA_on_h0: bool when h0; + hB_on_h0: bool when h0; + hC_on_h0: bool when h0; + hD_on_hC_on_h0: bool when hC_on_h0; +let + hX = current(hX_on_h0); + hA_on_h0 = hA when h0; + hB_on_h0 = hB when h0; + hC_on_h0 = hC when h0; + hD_on_hC_on_h0 = hD when hC_on_h0; + hX_on_h0 = PCOND1_clk(h0,hA when h0,hB when h0, + hC when h0,A when hA_on_h0,B when hB_on_h0,C when hC_on_h0, + hD when hC_on_h0,D when hD_on_hC_on_h0); +tel + + +node PCOND1_clk(h0:bool; hA,hB,hC:bool when h0; + A:int when hA; B:int when hB; C:bool when hC; hD:bool when hC; D:bool when hD) returns (hX:bool when h0); let - hX = hC and current(hD) and h0 when h0; + hX = hC and current(hD) and h0 when h0; tel diff --git a/test/should_work/X.lus b/test/should_work/X.lus index 948a2650..8a824698 100644 --- a/test/should_work/X.lus +++ b/test/should_work/X.lus @@ -1,4 +1,16 @@ -node X (c: bool; n:int when c) +node X (c: bool; n:int) +returns (d: bool; m: int; p:int); +var + m_on_c :int when c; + p_on_d:int when d; + +let + d,m_on_c,p_on_d = X_clk(c, n when c); + m = current (m_on_c); + p = current (p_on_d); +tel + +node X_clk (c: bool; n:int when c) returns (d: bool; m: int when c; p:int when d); let m = 0 when c -> pre(m) + n; diff --git a/test/should_work/X6.lus b/test/should_work/X6.lus index aaadd238..d6a86c15 100644 --- a/test/should_work/X6.lus +++ b/test/should_work/X6.lus @@ -1,5 +1,28 @@ node X6(n:int; b: bool) +returns + (m: int; + c: bool; + d: bool; + p,u : int; + q,r: int); +var + c': bool when b; + d': bool when c; + p',u' : int when b; + q',r': int when c ; +let + m,c',d',p',u',q',r'= X6_clk(n,b); + c = current(c'); + d = current(d'); + p = current(p'); + u = current(u'); + q = current(q'); + r = current(r'); +tel + + +node X6_clk(n:int; b: bool) returns (m: int; c: bool when b; diff --git a/test/should_work/bob.lus b/test/should_work/bob.lus index 4aa724d2..a3a4e8ac 100644 --- a/test/should_work/bob.lus +++ b/test/should_work/bob.lus @@ -1,4 +1,8 @@ -node bob(i : bool ) returns (o : bool when i); +node bob(i : bool ) returns (o : bool); +let + o = current(bob_clk(i)); +tel +node bob_clk(i : bool ) returns (o : bool when i); let o = (true -> pre(false -> pre(i))) when i; assert (true -> i <> pre(i)) ; diff --git a/test/should_work/ck2.lus b/test/should_work/ck2.lus index 7563fa1b..9d04932c 100644 --- a/test/should_work/ck2.lus +++ b/test/should_work/ck2.lus @@ -1,5 +1,16 @@ -node ck2 (c: bool; d: bool when c ; e: int when d) +node ck2 (c: bool; d: bool ; e: int) +returns (n: int); +var + d_on_c : bool when c; + +let + d_on_c = d when c; + n = ck2_clk(c, d_on_c , e when d_on_c); +tel + + +node ck2_clk (c: bool; d: bool when c ; e: int when d) returns (n: int); let n = if c and current(d) then 0 else current(current(e)); diff --git a/test/should_work/ck3.lus b/test/should_work/ck3.lus index eb95d0e5..34dc16ca 100644 --- a/test/should_work/ck3.lus +++ b/test/should_work/ck3.lus @@ -1,4 +1,14 @@ -node ck3 (a: bool; b: bool when a; c: bool when b) +node ck3 (a: bool; b: bool; c: bool) +returns (x: bool); +var + b_on_a : bool when a; +let + b_on_a = b when a; + x = ck3_clk(a,b when a, c when b_on_a); +tel + + +node ck3_clk (a: bool; b: bool when a; c: bool when b) returns (x: bool); let x = current(current(c)); diff --git a/test/should_work/ck4.lus b/test/should_work/ck4.lus index 70d7f2ac..5e58459a 100644 --- a/test/should_work/ck4.lus +++ b/test/should_work/ck4.lus @@ -1,4 +1,9 @@ -node ck4 (a: int when b; b: bool) +node ck4 (a: int; b: bool) +returns (c: int); +let + c = ck4_clk(a when b, b); +tel +node ck4_clk (a: int when b; b: bool) returns (c: int); let c = current(a); diff --git a/test/should_work/ck7.lus b/test/should_work/ck7.lus index 7cee30e1..7e2f3df5 100644 --- a/test/should_work/ck7.lus +++ b/test/should_work/ck7.lus @@ -1,4 +1,16 @@ node ck7(a: bool; m,n:int) +returns(q:int; r: int); +var + r_on_a : int when a; +let + q,r_on_a = ck7_clk(a,m,n); + r = current (r_on_a); +tel + + + + +node ck7_clk(a: bool; m,n:int) returns(q:int; r: int when a); let q = m+n; diff --git a/test/should_work/clock1_2ms.lus b/test/should_work/clock1_2ms.lus index 4b0a51af..1ebac921 100644 --- a/test/should_work/clock1_2ms.lus +++ b/test/should_work/clock1_2ms.lus @@ -11,10 +11,17 @@ let Clock2ms = true -> ( not pre(Clock2ms) ) ; tel -node clock1_2ms(dummy : bool) +node clock1_2ms_clk(dummy : bool) returns (Clock1ms: bool; Clock2ms : bool when Clock1ms) ; let Clock1ms = Clock1ms_node(dummy); Clock2ms = Clock2ms_node(dummy when Clock1ms); tel +node clock1_2ms(dummy : bool) returns (Clock1ms: bool; Clock2ms : bool) ; +var + Clock2ms_on_Clock1ms : bool when Clock1ms; +let + Clock1ms, Clock2ms_on_Clock1ms = clock1_2ms_clk(dummy); + Clock2ms = current( Clock2ms_on_Clock1ms); +tel diff --git a/test/should_work/clock_ite.lus b/test/should_work/clock_ite.lus index cb7c16a3..a639db83 100644 --- a/test/should_work/clock_ite.lus +++ b/test/should_work/clock_ite.lus @@ -1,6 +1,14 @@ -node clock_ite(a: bool; b: bool) returns (c: bool when a); +node clock_ite(a: bool; b: bool) returns (c: bool); + var + c_on_a: bool when a; + +let + c_on_a = clock_ite_clk(a,b); + c = current(c_on_a); +tel +node clock_ite_clk(a: bool; b: bool) returns (c: bool when a); -- var -- z: bool; diff --git a/test/should_work/filliter.lus b/test/should_work/filliter.lus index 3ce384e5..e29f7ff2 100644 --- a/test/should_work/filliter.lus +++ b/test/should_work/filliter.lus @@ -16,8 +16,16 @@ let acc_out = res + 1; tel -node filliter(c: bool; i1, i2: int when c) returns (s1, s2: int^NBC when c); +node filliter(c: bool; i1, i2: int) returns (s1, s2: int^NBC); +var + s1_on_c,s2_on_c: int^NBC when c; +let + s1_on_c,s2_on_c = filliter_clk(c, i1 when c, i2 when c); + s1 = current (s1_on_c); + s2 = current (s2_on_c); +tel +node filliter_clk(c: bool; i1, i2: int when c) returns (s1, s2: int^NBC when c); var x : int^4 when c; bid1, bid2 : int when c; diff --git a/test/should_work/hanane.lus b/test/should_work/hanane.lus index c770c2eb..8e8fd2af 100644 --- a/test/should_work/hanane.lus +++ b/test/should_work/hanane.lus @@ -9,7 +9,12 @@ const b: bool = true; c: real = 3.14; -node hanane(a1: bool; b1: string2d when a1; c1: tabStruct when a1) +node hanane(a1: bool; b1: string2d; c1: tabStruct) + returns (res: bool); +let + res = current(hanane_clk(a1,b1 when a1, c1 when a1)); +tel +node hanane_clk(a1: bool; b1: string2d when a1; c1: tabStruct when a1) returns (res: bool when a1); var h1: int^4; diff --git a/test/should_work/lustre_test1_ok.lus b/test/should_work/lustre_test1_ok.lus index 0c2d029e..cc56889c 100644 --- a/test/should_work/lustre_test1_ok.lus +++ b/test/should_work/lustre_test1_ok.lus @@ -10,6 +10,14 @@ let tel node lustre_test1_ok + (In1:real;cl1_2:bool;cl1_4:bool; In2:real;cl2_6:bool; In3:bool) +returns (out1:real;Out2:real;Out3:real); + +let + out1, Out2, Out3 = lustre_test1_ok_clk(In1,cl1_2,cl1_4, In2,cl2_6 when cl1_2, In3 when cl1_4); +tel + +node lustre_test1_ok_clk (In1:real;cl1_2:bool;cl1_4:bool; In2:real;cl2_6:bool when cl1_2; In3:bool when cl1_4) returns (out1:real;Out2:real;Out3:real); var Sum:real; diff --git a/test/should_work/multiclock.lus b/test/should_work/multiclock.lus index 1d4a07b5..74416720 100644 --- a/test/should_work/multiclock.lus +++ b/test/should_work/multiclock.lus @@ -1,4 +1,13 @@ -node multiclock ( x, y: int; c: bool; z: int when c ) +node multiclock ( x, y: int; c: bool; z: int ) + returns ( s: int); +var + h: bool when c ; + u: int when h ; +let + s = current(multiclock_clk ( x, y; c; z when c )); +tel + +node multiclock_clk ( x, y: int; c: bool; z: int when c ) returns ( s: int when c); var h: bool when c ; diff --git a/test/should_work/sample_time_change.lus b/test/should_work/sample_time_change_MainNode.lus similarity index 97% rename from test/should_work/sample_time_change.lus rename to test/should_work/sample_time_change_MainNode.lus index 024a17c7..dc8ee31f 100644 --- a/test/should_work/sample_time_change.lus +++ b/test/should_work/sample_time_change_MainNode.lus @@ -5,7 +5,7 @@ using the compiler : Simulink to Lustre CURRENT VERSION!!! /**************** The MainNode node of the model ****************/ -node MainNode (In3:real) +node sample_time_change_MainNode (In3:real) returns (Out2:real); var cl1_4_2, cl1_12_3 :bool; Out2_ :real when cl1_4_2 ; @@ -18,6 +18,7 @@ tel /****************** All the nodes of the Model ******************/ + node sample_time_change (cl1_4_2, cl1_12_3:bool; In3:real when cl1_12_3) returns (Out2:real when cl1_4_2); var Unit_Delay1:real when cl1_12_3; diff --git a/test/should_work/test_merge.lus b/test/should_work/test_merge.lus index 6aefb4e8..6ef5e1e1 100644 --- a/test/should_work/test_merge.lus +++ b/test/should_work/test_merge.lus @@ -1,5 +1,15 @@ type piece = enum { Pile, Face, Tranche }; --- node test_merge(clk: piece; --- + i1 : int ; + i2 : int; + i3 : int) +returns (y: int); --- + let + y = test_merge_clk(clk,i1 when Pile(clk), i2 when Face(clk), i3 when Tranche(clk)); + tel + + +node test_merge_clk(clk: piece; --- i1 : int when Pile(clk) ; i2 : int when Face(clk); i3 : int when Tranche(clk)) diff --git a/test/site.exp b/test/site.exp index 4c109584..221e6682 100644 --- a/test/site.exp +++ b/test/site.exp @@ -130,11 +130,34 @@ proc nonemptyfile {filename} { package require fileutil -proc contains_extern {f} { - - set pattern {extern} - set match [llength [fileutil::grep $pattern $f]] - return [expr {$match == 0 }] +# test if file $f contain the string $str +proc does_not_contain_string {f str} { + set occ [llength [fileutil::grep $str $f]] + if { ($occ == 1 ) } { puts " $f contains $occ occurence of $str" } + if { ($occ > 1 ) } { puts " $f contains $occ occurence(s) of $str" } + return [expr { $occ == 0 }] } +# do no try to use lurette on files that contains extern nodes or package. +# Package won't work because appending the tested lustre file with the +# generated oracle as I do is wrong in presence of package (fixme) +proc do_ecexe_vs_exec {f} { + if { + [does_not_contain_string "$f" "enum "] && + [does_not_contain_string "$f" "extern"] && + [does_not_contain_string "$f" "package"] + } { + return 1 + } + return 0 +} +proc do_2c_vs_exec {f} { + if { + [does_not_contain_string "$f" "extern"] && + [does_not_contain_string "$f" "package"] + } { + return 1 + } + return 0 +} diff --git a/todo.org b/todo.org index e6ccf8b4..07b150f4 100644 --- a/todo.org +++ b/todo.org @@ -102,39 +102,91 @@ et que ca marche tres bien. Ce qui prouve bien que ca ne sert a rien cette affai ** TODO divergence -exec et -2c - State "TODO" from "" [2014-07-11 Fri 12:02] +grep "FAIL:" lus2lic.log | grep "exec" | grep "\-2c" | sed s/'FAIL: Try to compare lus2lic -exec and -2c:'/-/ 1. ../utils/compare_exec_and_2c should_work/ck5.lus -2. ../utils/compare_exec_and_2c should_work/testPilote.lus -3. ../utils/compare_exec_and_2c should_work/testCapt.lus -4. ../utils/compare_exec_and_2c should_work/test_node_expand2.lus -5. ../utils/compare_exec_and_2c should_work/test_node_expand.lus -6. ../utils/compare_exec_and_2c should_work/X6.lus -7. ../utils/compare_exec_and_2c should_work/sincos.lus -8. ../utils/compare_exec_and_2c should_work/clock_ite.lus -9. ../utils/compare_exec_and_2c should_work/integrator.lus -10. ../utils/compare_exec_and_2c should_work/complex.lus -11. ../utils/compare_exec_and_2c should_work/PCOND1.lus -12. ../utils/compare_exec_and_2c should_work/lustre_test1_ok.lus -13. ../utils/compare_exec_and_2c should_work/sample_time_change.lus -14. ../utils/compare_exec_and_2c should_work/CURRENT.lus -15. ../utils/compare_exec_and_2c should_work/multiclock.lus -16. ../utils/compare_exec_and_2c should_work/TIME_STABLE.lus -17. ../utils/compare_exec_and_2c should_work/multipar.lus -18. ../utils/compare_exec_and_2c should_work/pack1.lus -19. ../utils/compare_exec_and_2c should_work/bob.lus -20. ../utils/compare_exec_and_2c should_work/test_condact.lus -21. ../utils/compare_exec_and_2c should_work/ck4.lus -22. ../utils/compare_exec_and_2c should_work/filliter.lus -23. ../utils/compare_exec_and_2c should_work/X2.lus -24. ../utils/compare_exec_and_2c should_work/hanane.lus -25. ../utils/compare_exec_and_2c should_work/ck3.lus -26. ../utils/compare_exec_and_2c should_work/ck7.lus -27. ../utils/compare_exec_and_2c should_work/PCOND.lus -28. ../utils/compare_exec_and_2c should_work/ck2.lus -29. ../utils/compare_exec_and_2c should_work/X.lus -30. ../utils/compare_exec_and_2c should_work/clock1_2ms.lus + -> erreur de clock ! +2. ../utils/compare_exec_and_2c should_work/test_node_expand2.lus + -> -2110104000 est n'est pas un entier acceptable pour lutin sur les machines 32 bits... +3. ../utils/compare_exec_and_2c should_work/test_node_expand.lus + -> idem + +4. ../utils/compare_exec_and_2c should_work/sincos.lus + -> une erreur en mode -exec au step 2 (nil) + +5. ../utils/compare_exec_and_2c should_work/clock_ite.lus + -> pb! + +6. ../utils/compare_exec_and_2c should_work/integrator.lus + -> pb d'arrondi (1305025.02198 vs 1305025.) + +7. ../utils/compare_exec_and_2c should_work/PCOND1.lus + -> pb d'arrondi / 32bits + +8. ../utils/compare_exec_and_2c should_work/CURRENT.lus + -> manisfestement, le comportement du current diverge... + +9. ../utils/compare_exec_and_2c should_work/TIME_STABLE.lus + -> pb! + +10. ../utils/compare_exec_and_2c should_work/multipar.lus + -> pb d'arrondi / 32bits + +11. ../utils/compare_exec_and_2c should_work/bob.lus + -> manisfestement, le comportement du current diverge... + +12. ../utils/compare_exec_and_2c should_work/test_condact.lus + -> pb! + +13. ../utils/compare_exec_and_2c should_work/array_concat.lus + -> le a.out fait un segmentation fault + +14. ../utils/compare_exec_and_2c should_work/ck4.lus + -> manisfestement, le comportement du current diverge... + +15. ../utils/compare_exec_and_2c should_work/filliter.lus + -> manisfestement, le comportement du current diverge... + +16. ../utils/compare_exec_and_2c should_work/X2.lus + -> pb! + +17. ../utils/compare_exec_and_2c should_work/hanane.lus + -> manisfestement, le comportement du current diverge... + +18. ../utils/compare_exec_and_2c should_work/ck3.lus + -> manisfestement, le comportement du current diverge... + +19. ../utils/compare_exec_and_2c should_work/ck2.lus + -> manisfestement, le comportement du current diverge... + + +** TODO Divergences -exec et ecexe + - State "TODO" from "" [2014-07-11 Fri 16:54] + + grep "FAIL:" lus2lic.log | grep "exec" | grep "ecexe" | sed s/'FAIL: Try to compare lus2lic -exec and ecexe:'/-/ + +1. ../utils/test_lus2lic_no_node should_work/Gyroscope2.lus +2. ../utils/test_lus2lic_no_node should_work/test_node_expand2.lus +3. ../utils/test_lus2lic_no_node should_work/test_node_expand.lus +4. ../utils/test_lus2lic_no_node should_work/modes3x2_v2.lus +5. ../utils/test_lus2lic_no_node should_work/X6.lus +6. ../utils/test_lus2lic_no_node should_work/filter.lus +7. ../utils/test_lus2lic_no_node should_work/sincos.lus +8. ../utils/test_lus2lic_no_node should_work/integrator.lus +9. ../utils/test_lus2lic_no_node should_work/PCOND1.lus +10. ../utils/test_lus2lic_no_node should_work/multiclock.lus +11. ../utils/test_lus2lic_no_node should_work/multipar.lus +12. ../utils/test_lus2lic_no_node should_work/activation2.lus +13. ../utils/test_lus2lic_no_node should_work/bob.lus +14. ../utils/test_lus2lic_no_node should_work/test_condact.lus +15. ../utils/test_lus2lic_no_node should_work/activation1.lus +16. ../utils/test_lus2lic_no_node should_work/Gyroscope.lus +17. ../utils/test_lus2lic_no_node should_work/hanane.lus +18. ../utils/test_lus2lic_no_node should_work/cond01.lus +19. ../utils/test_lus2lic_no_node should_work/speedcontrol.lus +20. ../utils/test_lus2lic_no_node should_work/PCOND.lus * Packages, modeles, etc. diff --git a/utils/compare_exec_and_2c b/utils/compare_exec_and_2c index b8ea179f..c19259ad 100755 --- a/utils/compare_exec_and_2c +++ b/utils/compare_exec_and_2c @@ -39,7 +39,7 @@ else exit 2 fi -PORT=2000 +PORT=2001 ./call-via-socket -server -addr 127.0.0.1 -port $PORT ./a.out & export PATH=/usr/local/tools/lustre/bin/:$PATH -- GitLab