/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)