]> ocean-lang.org Git - ocean/blobdiff - csrc/oceani-tests.mdc
oceani: make anon types more formal
[ocean] / csrc / oceani-tests.mdc
index 4dceab407eee8c163f4a3e69fedca3b8ccf3afe6..58fde75620d45c479b8840abea87fc5db643eca7 100644 (file)
@@ -97,7 +97,7 @@ arguments separated from the name by commas.  For each test, there is a section
                ## valgrind test code
                @[ -n "$$SKIP_COVERAGE_CHECK" ] || awk '/NOTEST/ { next } /^ *[1-9]/ {ran+=1} /^ *###/ {skip+=1} \
                    END {printf "coverage: %6.2f%%\n", ran * 100 / (ran + skip); \
-                        if (ran < (ran + skip) *0.968) exit(1) }' \
+                        if (ran < (ran + skip) *0.972) exit(1) }' \
                        coverage/oceani.mdc.gcov
 
        coverage_oceani: oceani.c
@@ -647,9 +647,21 @@ Test functions.  They don't return anything, so we need to get them to print
                        test(n-1, "."++s)
                else
                        print "done"
+
+       func to_polar
+               x:number; y:number
+       return
+               rho:number
+               theta:number
+       do
+               rho = x + y
+               theta = x - y
+
        func main()
                for i:=0; then i = i + 1; while i < 5:
                        test(i, " ")
+               angular := to_polar(32, 23)
+               print angular.rho, angular.theta
 
 ###### output: functions
        done
@@ -657,6 +669,7 @@ Test functions.  They don't return anything, so we need to get them to print
        2  1 . done
        3  2 . 1 .. done
        4  3 . 2 .. 1 ... done
+       55 9
 
 ###### test: func_ret_type
 
@@ -960,7 +973,7 @@ various places that `type_err()` are called.
                print foo
 
 ###### output: bad_main
-       .tmp.code:??:??: error: expected  argv but variable 'foo' is string
+       .tmp.code:??:??: error: expected []string but variable 'foo' is string
        .tmp.code:??:??: info: this is where 'NOTVAR' was set to string
        oceani: main has wrong type.
 
@@ -999,7 +1012,17 @@ Test for type errors with functions
        func test5(a:number):string
                print a
 
+       struct foo
+               a: number
+               b:string = "hello"
+
+       func test6(a:number):foo
+               b:foo
+               b.a = a
+               use b
+
 ###### output: func_err_args
+       .tmp.code:34:5: error: function cannot return value of type foo
        .tmp.code:28:14: error: expected string, found none
        .tmp.code:25:8: error: expected string, found number
        .tmp.code:15:14: error: insufficient arguments to function.
@@ -1011,8 +1034,8 @@ Test for type errors with functions
        .tmp.code:20:14: error: attempt to call a non-function.
        .tmp.code:20:32: error: expected string found number
        .tmp.code:20:28: error: insufficient arguments to function.
-       .tmp.code:21:20: error: expected  func but variable 'test2' is  func
-       .tmp.code:??:??: info: this is where 'NOTVAR' was set to  func
+       .tmp.code:21:20: error: expected *invalid*type* but variable 'test2' is *invalid*type*
+       .tmp.code:??:??: info: this is where 'NOTVAR' was set to *invalid*type*
        .tmp.code:10:14: error: variable used but not declared: a
        .tmp.code:10:17: error: variable used but not declared: z
        oceani: type error in program - not running.