]> 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); \
-                        if (ran < (ran + skip) *0.9495) exit(1) }' \
+                        if (ran < (ran + skip) *0.944) exit(1) }' \
                        coverage/oceani.mdc.gcov
                @rm -f .tmp*
 
@@ -110,7 +110,9 @@ calculations on them.
 
 ###### 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
@@ -147,7 +149,7 @@ Next we change the value of variables
 
 ###### test: setvar
 
-       program:
+       func main()
                a := 4
                a = a * a
                a = (a + a) * (a + a)
@@ -170,7 +172,7 @@ Now some contants
                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
@@ -187,7 +189,7 @@ Test merging of variables from multiple cases
 
 ###### test: varmerge
 
-       program:
+       func main()
                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
 
-       program:
+       func main()
                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
 
-       program ac av:
+       func main(av:[ac::number]string)
                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
-       program:
+       func main()
                size::=55
                list:[size]number
                list[0] = 1_234
@@ -538,7 +540,7 @@ ad-hoc things array related.
 
 ###### test: arrays
 
-       program:
+       func main()
                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; }
 
-       program:
+       func main
+       do
                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
 
-       program:
+       func main()
                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
@@ -691,7 +694,7 @@ various places that `type_err()` are called.
 
 ###### test: type_err1
 
-       program:
+       func main()
                print "hello" ++ 5, 5 ++ "hello"
 
                b ::= 3
@@ -711,7 +714,7 @@ various places that `type_err()` are called.
 
 ###### test: type_err2
 
-       program:
+       func main()
                a := 1
                a := 2
                a ::= 3
@@ -736,7 +739,7 @@ various places that `type_err()` are called.
                a: number
                b:string = "hello"
 
-       program:
+       func main()
                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
-       program:
+       func main()
                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"
-       program:
+       func main()
                foo := 4
                print foo, bar
 
@@ -832,7 +835,7 @@ various places that `type_err()` are called.
        const
                foo : number = 45
                bar := "string"
-       program:
+       func main()
                foo := 4
                print foo, bar
 
@@ -845,7 +848,7 @@ various places that `type_err()` are called.
                foo::="bar"
 
 ###### output: missing_program
-       oceani: no program found.
+       oceani: no main function found.
 
 ## Test erroneous command line args