Added test for bug [#14076] (initialization analysis)

Bug [#14076]:
node sum(x:int) returns (y:int) let y = x + (0 fby y); tel
node main(x : int) returns (y : int)
let
y = 0 -> sum(pre x);
tel

is accepted whereas the node "sum" will memorize an absent value (pre x)
and use it at next instant.

Removed auto2.ept (duplicate of auto.ept)
This commit is contained in:
Gwenaël Delaval 2017-03-17 15:15:27 +01:00
parent 7f9b72755a
commit faf707db4a
3 changed files with 18 additions and 32 deletions

View file

@ -20,6 +20,7 @@ ADD_TEST(compile_fail_linear_mapfold "scripts/compile_fail" "bad/linear_mapfold.
ADD_TEST(compile_fail_side_effect "scripts/compile_fail" "bad/side_effect.ept" "-memalloc")
ADD_TEST(compile_fail_t10-initialization "scripts/compile_fail" "bad/t10-initialization.ept" "-memalloc")
ADD_TEST(compile_fail_t11-initialization "scripts/compile_fail" "bad/t11-initialization.ept" "-memalloc")
ADD_TEST(compile_fail_t12-initialization "scripts/compile_fail" "bad/t12-initialization.ept" "-memalloc")
ADD_TEST(compile_fail_t1 "scripts/compile_fail" "bad/t1.ept" "-memalloc")
ADD_TEST(compile_fail_t2 "scripts/compile_fail" "bad/t2.ept" "-memalloc")
ADD_TEST(compile_fail_t3 "scripts/compile_fail" "bad/t3.ept" "-memalloc")
@ -38,7 +39,7 @@ ADD_TEST(compile_only_array_fill "scripts/compile_only" "good/array_fill.ept")
ADD_TEST(compile_only_array_iterators2 "scripts/compile_only" "good/array_iterators2.ept")
ADD_TEST(compile_only_array_iterators "scripts/compile_only" "good/array_iterators.ept")
ADD_TEST(compile_only_array_power "scripts/compile_only" "good/array_power.ept")
ADD_TEST(compile_only_auto2 "scripts/compile_only" "good/auto2.ept")
ADD_TEST(compile_only_auto_clock "scripts/compile_only" "good/auto_clock.ept")
ADD_TEST(compile_only_auto "scripts/compile_only" "good/auto.ept")
ADD_TEST(compile_only_autohiera2 "scripts/compile_only" "good/autohiera2.ept")
ADD_TEST(compile_only_autohiera3 "scripts/compile_only" "good/autohiera3.ept")
@ -122,7 +123,7 @@ ADD_TEST(compile_gcc_run_array_fill "scripts/compile_gcc_run" "good/array_fill.e
ADD_TEST(compile_gcc_run_array_iterators2 "scripts/compile_gcc_run" "good/array_iterators2.ept")
ADD_TEST(compile_gcc_run_array_iterators "scripts/compile_gcc_run" "good/array_iterators.ept")
ADD_TEST(compile_gcc_run_array_power "scripts/compile_gcc_run" "good/array_power.ept")
ADD_TEST(compile_gcc_run_auto2 "scripts/compile_gcc_run" "good/auto2.ept")
ADD_TEST(compile_gcc_run_auto_clock "scripts/compile_gcc_run" "good/auto_clock.ept")
ADD_TEST(compile_gcc_run_auto "scripts/compile_gcc_run" "good/auto.ept")
ADD_TEST(compile_gcc_run_autohiera2 "scripts/compile_gcc_run" "good/autohiera2.ept")
ADD_TEST(compile_gcc_run_autohiera3 "scripts/compile_gcc_run" "good/autohiera3.ept")
@ -206,7 +207,7 @@ ADD_TEST(test_option_bool_array_fill "scripts/test_option" "good/array_fill.ept"
ADD_TEST(test_option_bool_array_iterators2 "scripts/test_option" "good/array_iterators2.ept" "-bool")
ADD_TEST(test_option_bool_array_iterators "scripts/test_option" "good/array_iterators.ept" "-bool")
ADD_TEST(test_option_bool_array_power "scripts/test_option" "good/array_power.ept" "-bool")
ADD_TEST(test_option_bool_auto2 "scripts/test_option" "good/auto2.ept" "-bool")
ADD_TEST(test_option_bool_auto_clock "scripts/test_option" "good/auto_clock.ept" "-bool")
ADD_TEST(test_option_bool_auto "scripts/test_option" "good/auto.ept" "-bool")
ADD_TEST(test_option_bool_autohiera2 "scripts/test_option" "good/autohiera2.ept" "-bool")
ADD_TEST(test_option_bool_autohiera3 "scripts/test_option" "good/autohiera3.ept" "-bool")
@ -290,7 +291,7 @@ ADD_TEST(test_option_deadcode_array_fill "scripts/test_option" "good/array_fill.
ADD_TEST(test_option_deadcode_array_iterators2 "scripts/test_option" "good/array_iterators2.ept" "-deadcode")
ADD_TEST(test_option_deadcode_array_iterators "scripts/test_option" "good/array_iterators.ept" "-deadcode")
ADD_TEST(test_option_deadcode_array_power "scripts/test_option" "good/array_power.ept" "-deadcode")
ADD_TEST(test_option_deadcode_auto2 "scripts/test_option" "good/auto2.ept" "-deadcode")
ADD_TEST(test_option_deadcode_auto_clock "scripts/test_option" "good/auto_clock.ept" "-deadcode")
ADD_TEST(test_option_deadcode_auto "scripts/test_option" "good/auto.ept" "-deadcode")
ADD_TEST(test_option_deadcode_autohiera2 "scripts/test_option" "good/autohiera2.ept" "-deadcode")
ADD_TEST(test_option_deadcode_autohiera3 "scripts/test_option" "good/autohiera3.ept" "-deadcode")
@ -374,7 +375,7 @@ ADD_TEST(test_option_tomato_array_fill "scripts/test_option" "good/array_fill.ep
ADD_TEST(test_option_tomato_array_iterators2 "scripts/test_option" "good/array_iterators2.ept" "-tomato")
ADD_TEST(test_option_tomato_array_iterators "scripts/test_option" "good/array_iterators.ept" "-tomato")
ADD_TEST(test_option_tomato_array_power "scripts/test_option" "good/array_power.ept" "-tomato")
ADD_TEST(test_option_tomato_auto2 "scripts/test_option" "good/auto2.ept" "-tomato")
ADD_TEST(test_option_tomato_auto_clock "scripts/test_option" "good/auto_clock.ept" "-tomato")
ADD_TEST(test_option_tomato_auto "scripts/test_option" "good/auto.ept" "-tomato")
ADD_TEST(test_option_tomato_autohiera2 "scripts/test_option" "good/autohiera2.ept" "-tomato")
ADD_TEST(test_option_tomato_autohiera3 "scripts/test_option" "good/autohiera3.ept" "-tomato")
@ -458,7 +459,7 @@ ADD_TEST(test_option_flatten_array_fill "scripts/test_option" "good/array_fill.e
ADD_TEST(test_option_flatten_array_iterators2 "scripts/test_option" "good/array_iterators2.ept" "-flatten")
ADD_TEST(test_option_flatten_array_iterators "scripts/test_option" "good/array_iterators.ept" "-flatten")
ADD_TEST(test_option_flatten_array_power "scripts/test_option" "good/array_power.ept" "-flatten")
ADD_TEST(test_option_flatten_auto2 "scripts/test_option" "good/auto2.ept" "-flatten")
ADD_TEST(test_option_flatten_auto_clock "scripts/test_option" "good/auto_clock.ept" "-flatten")
ADD_TEST(test_option_flatten_auto "scripts/test_option" "good/auto.ept" "-flatten")
ADD_TEST(test_option_flatten_autohiera2 "scripts/test_option" "good/autohiera2.ept" "-flatten")
ADD_TEST(test_option_flatten_autohiera3 "scripts/test_option" "good/autohiera3.ept" "-flatten")
@ -542,7 +543,7 @@ ADD_TEST(test_option_itfusion_array_fill "scripts/test_option" "good/array_fill.
ADD_TEST(test_option_itfusion_array_iterators2 "scripts/test_option" "good/array_iterators2.ept" "-itfusion")
ADD_TEST(test_option_itfusion_array_iterators "scripts/test_option" "good/array_iterators.ept" "-itfusion")
ADD_TEST(test_option_itfusion_array_power "scripts/test_option" "good/array_power.ept" "-itfusion")
ADD_TEST(test_option_itfusion_auto2 "scripts/test_option" "good/auto2.ept" "-itfusion")
ADD_TEST(test_option_itfusion_auto_clock "scripts/test_option" "good/auto_clock.ept" "-itfusion")
ADD_TEST(test_option_itfusion_auto "scripts/test_option" "good/auto.ept" "-itfusion")
ADD_TEST(test_option_itfusion_autohiera2 "scripts/test_option" "good/autohiera2.ept" "-itfusion")
ADD_TEST(test_option_itfusion_autohiera3 "scripts/test_option" "good/autohiera3.ept" "-itfusion")
@ -626,7 +627,7 @@ ADD_TEST(test_option_memalloc_array_fill "scripts/test_option" "good/array_fill.
ADD_TEST(test_option_memalloc_array_iterators2 "scripts/test_option" "good/array_iterators2.ept" "-memalloc")
ADD_TEST(test_option_memalloc_array_iterators "scripts/test_option" "good/array_iterators.ept" "-memalloc")
ADD_TEST(test_option_memalloc_array_power "scripts/test_option" "good/array_power.ept" "-memalloc")
ADD_TEST(test_option_memalloc_auto2 "scripts/test_option" "good/auto2.ept" "-memalloc")
ADD_TEST(test_option_memalloc_auto_clock "scripts/test_option" "good/auto_clock.ept" "-memalloc")
ADD_TEST(test_option_memalloc_auto "scripts/test_option" "good/auto.ept" "-memalloc")
ADD_TEST(test_option_memalloc_autohiera2 "scripts/test_option" "good/autohiera2.ept" "-memalloc")
ADD_TEST(test_option_memalloc_autohiera3 "scripts/test_option" "good/autohiera3.ept" "-memalloc")
@ -710,7 +711,7 @@ ADD_TEST(test_option_unroll_array_fill "scripts/test_option" "good/array_fill.ep
ADD_TEST(test_option_unroll_array_iterators2 "scripts/test_option" "good/array_iterators2.ept" "-unroll")
ADD_TEST(test_option_unroll_array_iterators "scripts/test_option" "good/array_iterators.ept" "-unroll")
ADD_TEST(test_option_unroll_array_power "scripts/test_option" "good/array_power.ept" "-unroll")
ADD_TEST(test_option_unroll_auto2 "scripts/test_option" "good/auto2.ept" "-unroll")
ADD_TEST(test_option_unroll_auto_clock "scripts/test_option" "good/auto_clock.ept" "-unroll")
ADD_TEST(test_option_unroll_auto "scripts/test_option" "good/auto.ept" "-unroll")
ADD_TEST(test_option_unroll_autohiera2 "scripts/test_option" "good/autohiera2.ept" "-unroll")
ADD_TEST(test_option_unroll_autohiera3 "scripts/test_option" "good/autohiera3.ept" "-unroll")
@ -794,7 +795,7 @@ ADD_TEST(test_option_O_array_fill "scripts/test_option" "good/array_fill.ept" "-
ADD_TEST(test_option_O_array_iterators2 "scripts/test_option" "good/array_iterators2.ept" "-O")
ADD_TEST(test_option_O_array_iterators "scripts/test_option" "good/array_iterators.ept" "-O")
ADD_TEST(test_option_O_array_power "scripts/test_option" "good/array_power.ept" "-O")
ADD_TEST(test_option_O_auto2 "scripts/test_option" "good/auto2.ept" "-O")
ADD_TEST(test_option_O_auto_clock "scripts/test_option" "good/auto_clock.ept" "-O")
ADD_TEST(test_option_O_auto "scripts/test_option" "good/auto.ept" "-O")
ADD_TEST(test_option_O_autohiera2 "scripts/test_option" "good/autohiera2.ept" "-O")
ADD_TEST(test_option_O_autohiera3 "scripts/test_option" "good/autohiera3.ept" "-O")
@ -878,7 +879,7 @@ ADD_TEST(compile_javac_run_array_fill "scripts/compile_javac_run" "good/array_fi
ADD_TEST(compile_javac_run_array_iterators2 "scripts/compile_javac_run" "good/array_iterators2.ept")
ADD_TEST(compile_javac_run_array_iterators "scripts/compile_javac_run" "good/array_iterators.ept")
ADD_TEST(compile_javac_run_array_power "scripts/compile_javac_run" "good/array_power.ept")
ADD_TEST(compile_javac_run_auto2 "scripts/compile_javac_run" "good/auto2.ept")
ADD_TEST(compile_javac_run_auto_clock "scripts/compile_javac_run" "good/auto_clock.ept")
ADD_TEST(compile_javac_run_auto "scripts/compile_javac_run" "good/auto.ept")
ADD_TEST(compile_javac_run_autohiera2 "scripts/compile_javac_run" "good/autohiera2.ept")
ADD_TEST(compile_javac_run_autohiera3 "scripts/compile_javac_run" "good/autohiera3.ept")

View file

@ -0,0 +1,6 @@
node sum(x:int) returns (y:int) let y = x + (0 fby y); tel
node main(x : int) returns (y : int)
let
y = 0 -> sum(pre x);
tel

View file

@ -1,21 +0,0 @@
node count() returns (o : int)
let
o = 0 fby (o + 1);
tel
node f() returns(x,y : bool)
let
(x,y) = (true,false)
tel
node main() returns (c,c1 : bool)
let
automaton
state One
do (c,c1) = f()
until count() = 5 then Two
state Two
do (c,c1) = f()
until count() = 3 then One
end
tel