(library (tests fasl) (export run-tests) (import (ikarus) (tests framework)) (define (test x) (printf "test-fasl ~s\n" x) (let ([y (deserialize (serialize x))]) (unless (equal? x y) (error 'test-fasl "failed/expected" y x)))) (define (serialize x) (let-values ([(p e) (open-bytevector-output-port)]) (fasl-write x p) (e))) (define (deserialize x) (fasl-read (open-bytevector-input-port x))) (define (test-cycle) (let ([x (cons 1 2)]) (set-car! x x) (set-cdr! x x) (printf "test-fasl ~s\n" x) (let ([x (deserialize (serialize x))]) (assert (pair? x)) (assert (eq? x (car x))) (assert (eq? x (cdr x)))))) (define (run-tests) (test 12) (test -12) (test (greatest-fixnum)) (test (least-fixnum)) (test 0) (test #t) (test #f) (test '()) (test "Hello") (test "He\x3bb;\x3bb;o") (test 'hello) (test '(Hello There)) (test 3498798327498723894789237489324) (test -3498798327498723894789237489324) (test 2389478923749872389723894/23498739874892379482374) (test -2389478923749872389723894/23498739874892379482374) (test 127487384734.4) (test (make-rectangular 12 13)) (test (make-rectangular 12.0 13.0)) (test (string #\a)) (test (string #\x3bb)) (test-cycle)) )