]> ocean-lang.org Git - ocean/commitdiff
oceani-tests: add test for declaring a CondScope variable
authorNeilBrown <neil@brown.name>
Sat, 30 Oct 2021 04:49:08 +0000 (15:49 +1100)
committerNeilBrown <neil@brown.name>
Mon, 8 Nov 2021 09:56:36 +0000 (20:56 +1100)
If a variable was declared in all branches of a structures command, it
may or may not be declared as something else afterwards.
We need to test both options.

Signed-off-by: NeilBrown <neil@brown.name>
csrc/oceani-tests.mdc

index 87b0206261b46ee68ff1959c776a1e732f284cdd..11c3f19ffcd93a4c8760d9cbe85a3505befd46ae 100644 (file)
@@ -80,7 +80,7 @@ arguments separated from the name by commas.  For each test, there is a section
                @mv *.gcov coverage ; [ -f .gcov ] && mv .gcov coverage || true
                @ awk '/NOTEST/ { next } /^ *[1-9]/ {ran+=1} /^ *###/ {skip+=1} \
                    END {printf "coverage: %6.2f%%\n", ran * 100 / (ran + skip); \
-                        if (ran < (ran + skip) *0.9469) exit(1) }' \
+                        if (ran < (ran + skip) *0.9495) exit(1) }' \
                        coverage/oceani.mdc.gcov
                @rm -f .tmp*
 
@@ -198,8 +198,21 @@ Test merging of variables from multiple cases
                        print num,", ",
                print
 
+               for i:=0; then i=i+1; while i < 5:
+                       switch i:
+                               case 0: num:="zero"
+                               case 1: num:="one"
+                               case 2: num:="two"
+                               case 3: num:="three"
+                               else    num:="many"
+                       // re-declare a CondScope variable
+                       num := i*i
+                       print num,", ",
+               print
+
 ###### output: varmerge
        zero , one , two , three , many , 
+       0 , 1 , 4 , 9 , 16 , 
 
 ## Conditions and Loops