test-sizeof.ss
#lang scheme

(require (prefix-in my: "main.ss"))
(require scheme/foreign)

(require (planet schematics/schemeunit))

(define cases
  `(("short integer"              ,_int8   "int8_t")
    ("unsigned short integer"     ,_uint8  "uint8_t")
    ("integer"                    ,_int16  "int16_t")
    ("unsigned integer"           ,_uint16 "int16_t")
    ("long integer"               ,_int32  "int32_t")
    ("unsigned long integer"      ,_uint32 "uint32_t")
    ("long long integer"          ,_int64  "int64_t")
    ("unsigned long long integer" ,_uint64 "uint64_t")))

(define tests
  (test-suite
   "sizeof"
   (for-each 
    (λ (case)
      (test-case
       (car case)
       (check-equal? (ctype-sizeof (cadr case)) (my:sizeof (caddr case) "stdint"))))
    cases)))

(require (planet schematics/schemeunit/text-ui))
(define (test)
  (run-tests tests 'verbose))