File: struct_in_union-test.scm

package info (click to toggle)
gauche-c-wrapper 0.6.1-18
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 7,440 kB
  • sloc: ansic: 17,899; sh: 14,025; asm: 6,456; lisp: 5,485; yacc: 2,109; makefile: 520; exp: 194; cpp: 157; objc: 144; perl: 2
file content (34 lines) | stat: -rw-r--r-- 737 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
;;;
;;; Test struct_in_union 
;;; 

(use gauche.test)

(test-start "struct_in_union")
(use c-wrapper)
(test-module 'c-wrapper)

(c-include "./struct_in_union.h")

(test "reference"
      0
      (lambda ()
        (ref (ref (ref (make <c-struct:struct_in_union>) 'u) 's1) 'v1)))

(test "set"
      1
      (lambda ()
        (let ((struct (make <c-struct:struct_in_union>)))
          (set! (ref (ref (ref struct 'u) 's1) 'v1) 1)
          (ref (ref (ref struct 'u) 's1) 'v1))))

(test "a union in an array"
      2
      (lambda ()
        (let ((array (make (<c-struct:struct_in_union> 3))))
          (set! (ref (ref (ref (ref array 1) 'u) 's1) 'v1) 2)
          (ref (ref (ref (ref array 1) 'u) 's1) 'v1))))

;; epilogue
(test-end)