]> ocean-lang.org Git - ocean/blobdiff - csrc/oceani-tests.mdc
oceani: drop "program" in favour of "func"
[ocean] / csrc / oceani-tests.mdc
index 11c3f19ffcd93a4c8760d9cbe85a3505befd46ae..881fee7229e7642869bca66b3cc79c9d808ad63d 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); \
                @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.9495) exit(1) }' \
+                        if (ran < (ran + skip) *0.944) exit(1) }' \
                        coverage/oceani.mdc.gcov
                @rm -f .tmp*
 
                        coverage/oceani.mdc.gcov
                @rm -f .tmp*
 
@@ -110,7 +110,9 @@ calculations on them.
 
 ###### test: valvar
 
 
 ###### test: valvar
 
-       program:
+       func main
+               argv:[argc::]string
+       do
                a := 23; b:=12 ; b1 := -b
                print a, b, a+b, a-b, a*b, a/b, a%b
                print a<b, a<=b, a>b, a>=b, a<a, a==b, a==a
                a := 23; b:=12 ; b1 := -b
                print a, b, a+b, a-b, a*b, a/b, a%b
                print a<b, a<=b, a>b, a>=b, a<a, a==b, a==a
@@ -147,7 +149,7 @@ Next we change the value of variables
 
 ###### test: setvar
 
 
 ###### test: setvar
 
-       program:
+       func main()
                a := 4
                a = a * a
                a = (a + a) * (a + a)
                a := 4
                a = a * a
                a = (a + a) * (a + a)
@@ -170,7 +172,7 @@ Now some contants
                cake ::= "The cake is"
                  ++ " a lie"
 
                cake ::= "The cake is"
                  ++ " a lie"
 
-       program:
+       func main()
                print "Hello World, what lovely oceans you have!"
                print "are there", five, "?"
                print pi, pie, "but", cake
                print "Hello World, what lovely oceans you have!"
                print "are there", five, "?"
                print pi, pie, "but", cake
@@ -187,7 +189,7 @@ Test merging of variables from multiple cases
 
 ###### test: varmerge
 
 
 ###### test: varmerge
 
-       program:
+       func main()
                for i:=0; then i=i+1; while i < 5:
                        switch i:
                                case 0: num:="zero"
                for i:=0; then i=i+1; while i < 5:
                        switch i:
                                case 0: num:="zero"
@@ -223,7 +225,7 @@ Now we need to test if/else and some different loops
 
 ###### test: cond_loop
 
 
 ###### test: cond_loop
 
-       program:
+       func main()
                a := 4
                if a < 5:
                        print "Success"
                a := 4
                if a < 5:
                        print "Success"
@@ -295,7 +297,7 @@ Here I break it into two parts, keeping the array code separate.
 
 ###### test: sayhello
 
 
 ###### test: sayhello
 
-       program ac av:
+       func main(av:[ac::number]string)
                A := $av[1]; B := $av[2]
                astr := av[3]
                bbool := av[ac-1] == "True"
                A := $av[1]; B := $av[2]
                astr := av[3]
                bbool := av[ac-1] == "True"
@@ -392,7 +394,7 @@ Here I break it into two parts, keeping the array code separate.
 ###### test list
        oceani_tests += "insert_sort"
 ###### test: insert_sort
 ###### test list
        oceani_tests += "insert_sort"
 ###### test: insert_sort
-       program:
+       func main()
                size::=55
                list:[size]number
                list[0] = 1_234
                size::=55
                list:[size]number
                list[0] = 1_234
@@ -538,7 +540,7 @@ ad-hoc things array related.
 
 ###### test: arrays
 
 
 ###### test: arrays
 
-       program:
+       func main()
                bools:[5]Boolean
                strings:[4]string
 
                bools:[5]Boolean
                strings:[4]string
 
@@ -573,7 +575,8 @@ Time to test if structure declarations and accesses work correctly.
 
        struct baz { a:number; b:Boolean; }
 
 
        struct baz { a:number; b:Boolean; }
 
-       program:
+       func main
+       do
                info:[4]foo
 
                for i:=0; then i=i+1; while i < 4:
                info:[4]foo
 
                for i:=0; then i=i+1; while i < 4:
@@ -634,14 +637,14 @@ separate file first, then run from there.
 
 ###### test: syn1
 
 
 ###### test: syn1
 
-       program:
+       func main()
                if then else while do
 
 ###### output: syn1
        .tmp.code:3:11: Syntax error in statement: then
 
 ###### test: tokerr
                if then else while do
 
 ###### output: syn1
        .tmp.code:3:11: Syntax error in statement: then
 
 ###### test: tokerr
-       program:
+       func main()
                a := 1i  // imaginary numbers aren't understood
                b:[2i]number // array sizes are handled separately
                c:[3.14159]Boolean // array sizes must be integers
                a := 1i  // imaginary numbers aren't understood
                b:[2i]number // array sizes are handled separately
                c:[3.14159]Boolean // array sizes must be integers
@@ -691,7 +694,7 @@ various places that `type_err()` are called.
 
 ###### test: type_err1
 
 
 ###### test: type_err1
 
-       program:
+       func main()
                print "hello" ++ 5, 5 ++ "hello"
 
                b ::= 3
                print "hello" ++ 5, 5 ++ "hello"
 
                b ::= 3
@@ -711,7 +714,7 @@ various places that `type_err()` are called.
 
 ###### test: type_err2
 
 
 ###### test: type_err2
 
-       program:
+       func main()
                a := 1
                a := 2
                a ::= 3
                a := 1
                a := 2
                a ::= 3
@@ -736,7 +739,7 @@ various places that `type_err()` are called.
                a: number
                b:string = "hello"
 
                a: number
                b:string = "hello"
 
-       program:
+       func main()
                c := "hello"
                c = c + 1
                c = "hello" ++ (True and False)
                c := "hello"
                c = c + 1
                c = "hello" ++ (True and False)
@@ -798,7 +801,7 @@ various places that `type_err()` are called.
        oceani: type error in program - not running.
 
 ###### test: type_err4
        oceani: type error in program - not running.
 
 ###### test: type_err4
-       program:
+       func main()
                a:=1; b=2; c::=3
                print a, b, c
 
                a:=1; b=2; c::=3
                print a, b, c
 
@@ -817,7 +820,7 @@ various places that `type_err()` are called.
                bar ::= "string" + 56
        const
                bar ::= "baz"
                bar ::= "string" + 56
        const
                bar ::= "baz"
-       program:
+       func main()
                foo := 4
                print foo, bar
 
                foo := 4
                print foo, bar
 
@@ -832,7 +835,7 @@ various places that `type_err()` are called.
        const
                foo : number = 45
                bar := "string"
        const
                foo : number = 45
                bar := "string"
-       program:
+       func main()
                foo := 4
                print foo, bar
 
                foo := 4
                print foo, bar
 
@@ -845,7 +848,7 @@ various places that `type_err()` are called.
                foo::="bar"
 
 ###### output: missing_program
                foo::="bar"
 
 ###### output: missing_program
-       oceani: no program found.
+       oceani: no main function found.
 
 ## Test erroneous command line args
 
 
 ## Test erroneous command line args