Files
port-channel/test/main.rkt
T

26 lines
698 B
Racket

#lang racket/base
(require rackunit
racket/serialize
port-channel)
(serializable-struct msg (id payload) #:transparent)
(define-values (in out) (make-pipe))
(define reader (make-port-channel in #:source 'test-reader))
(define writer (make-port-channel out #:source 'test-writer))
(port-channel-put writer '(hello 1 2 3))
(port-channel-put writer (hasheq 'a 10 'b 20))
(port-channel-put writer (msg 7 '(a b c)))
(check-equal? (sync reader) '(hello 1 2 3))
(check-equal? (sync reader) (hasheq 'a 10 'b 20))
(check-equal? (sync reader) (msg 7 '(a b c)))
(close-port-channel writer)
(check-true (eof-object? (sync reader)))
(module+ main
(displayln "port-channel tests ok"))