PageRenderTime 28ms CodeModel.GetById 15ms app.highlight 9ms RepoModel.GetById 1ms app.codeStats 0ms

/trunk/Examples/test-suite/chicken/throw_exception_runme.ss

#
Scheme | 29 lines | 20 code | 7 blank | 2 comment | 0 complexity | 0185883782886857885e82e0fd4f237e MD5 | raw file
 1(load "throw_exception.so")
 2
 3(define-macro (check-throw expr check)
 4 `(if (handle-exceptions exvar (if ,check #f (begin (print "Error executing: " ',expr " " exvar) (exit 1))) ,expr #t)
 5    (print "Expression did not throw an error: " ',expr)))
 6
 7(define f (new-Foo))
 8
 9(check-throw (Foo-test-int f) (= exvar 37))
10(check-throw (Foo-test-msg f) (string=? exvar "Dead"))
11(check-throw (Foo-test-cls f) (test-is-Error exvar))
12(check-throw (Foo-test-cls-ptr f) (test-is-Error exvar))
13(check-throw (Foo-test-cls-ref f) (test-is-Error exvar))
14(check-throw (Foo-test-cls-td f) (test-is-Error exvar))
15(check-throw (Foo-test-cls-ptr-td f) (test-is-Error exvar))
16(check-throw (Foo-test-cls-ref-td f) (test-is-Error exvar))
17(check-throw (Foo-test-enum f) (= exvar (enum2)))
18
19; don't know how to test this... it is returning a SWIG wrapped int *
20;(check-throw (Foo-test-array f) (equal? exvar '(0 1 2 3 4 5 6 7 8 9)))
21
22(check-throw (Foo-test-multi f 1) (= exvar 37))
23(check-throw (Foo-test-multi f 2) (string=? exvar "Dead"))
24(check-throw (Foo-test-multi f 3) (test-is-Error exvar))
25
26(set! f #f)
27(gc #t)
28
29(exit 0)