/trunk/Examples/test-suite/schemerunme/unions_proxy.scm
# · Lisp · 37 lines · 23 code · 7 blank · 7 comment · 0 complexity · b0092d99f2b0a18df5a924c69bc65648 MD5 · raw file
- ;;; This is the union runtime testcase. It ensures that values within a
- ;;; union embedded within a struct can be set and read correctly.
- ;; Create new instances of SmallStruct and BigStruct for later use
- (define small (make <SmallStruct>))
- (slot-set! small 'jill 200)
- (define big (make <BigStruct>))
- (slot-set! big 'smallstruct small)
- (slot-set! big 'jack 300)
- ;; Use SmallStruct then BigStruct to setup EmbeddedUnionTest.
- ;; Ensure values in EmbeddedUnionTest are set correctly for each.
- (define eut (make <EmbeddedUnionTest>))
- ;; First check the SmallStruct in EmbeddedUnionTest
- (slot-set! eut 'number 1)
- (slot-set! (slot-ref eut 'uni) 'small small)
- (let ((Jill1 (slot-ref
- (slot-ref
- (slot-ref eut 'uni)
- 'small)
- 'jill)))
- (if (not (= Jill1 200))
- (begin
- (display "Runtime test 1 failed.")
- (exit 1))))
- (let ((Num1 (slot-ref eut 'number)))
- (if (not (= Num1 1))
- (begin
- (display "Runtime test 2 failed.")
- (exit 1))))
- ;; that should do
- (exit 0)