foreign-c/test.scm

45 lines
1.2 KiB
Scheme

(import (scheme base)
(scheme write)
(scheme load)
(scheme process-context)
(retropikzel r7rs-pffi version main))
(define tag 'none)
(define-syntax assert
(syntax-rules ()
((_ check value)
(when (not (apply check (list value)))
(display "[")
(display tag)
(display "] ")
(display "Assert failed: ")
(write (list 'check 'value))
(newline)))))
(set! tag 'size-of)
(assert number? (pffi-size-of 'int8))
(assert number? (pffi-size-of 'uint8))
(assert number? (pffi-size-of 'int16))
(assert number? (pffi-size-of 'uint16))
(assert number? (pffi-size-of 'int32))
(assert number? (pffi-size-of 'uint32))
(assert number? (pffi-size-of 'int64))
(assert number? (pffi-size-of 'uint64))
(assert number? (pffi-size-of 'char))
(assert number? (pffi-size-of 'unsigned-char))
(assert number? (pffi-size-of 'short))
(assert number? (pffi-size-of 'unsigned-short))
(assert number? (pffi-size-of 'int))
(assert number? (pffi-size-of 'unsigned-int))
(assert number? (pffi-size-of 'long))
(assert number? (pffi-size-of 'unsigned-long))
(assert number? (pffi-size-of 'float))
(assert number? (pffi-size-of 'double))
(assert number? (pffi-size-of 'string))
(assert string? (pffi-size-of 'pointer))
(exit 0)