(use test) (use thread-utils) (use srfi-18) (test-group "thread-timeout" (test-assert "timeout? #f" (thread-timeout? #f)) (test-assert "timeout? time" (thread-timeout? (current-time))) (test-assert "timeout? #" (thread-timeout? 5)) (test-assert "timeout? X" (not (thread-timeout? 'X))) (test #f (make-thread-timeout #f)) (let ((t (current-time))) (test "time (base ignored)" t (make-thread-timeout t 27)) ) (let* ((b (current-time)) (t (make-thread-timeout 5 b)) ) (test "# w/ time base" (+ 5 (time->seconds b)) (time->seconds t)) ) (let* ((b 5) (t (make-thread-timeout 5 b)) ) (test "# w/ # base" (+ 5 b) (inexact->exact (time->seconds t))) ) (test-error "bad offset" (make-thread-timeout "")) (test-error "bad base" (make-thread-timeout 5 "")) ) ;FIXME needs MORE tests (test-exit)