(define-library (chibi pty-test) (import (scheme base) (scheme file) (scheme write) (chibi io) (chibi pty) (chibi stty) (chibi test)) (export run-tests) (begin (define (run-tests . o) (when (file-exists? "/usr/bin/units") (test-begin "pty") (test '("\t* 3.2808399" "\t/ 0.3048") (call-with-pty-process-io '("/usr/bin/units" "-q") (lambda (pid in out name) (with-raw-io out (lambda () ;; input with tab completion (display "mete\t" out) (newline out) (display "fee\t" out) (newline out) (display (integer->char 4) out) (flush-output-port out) ;; result (let* ((l1 (read-line in)) (l2 (read-line in))) (list l1 l2))))))) (test-end)))))