racket-ssh-2012/test-safe-io.rkt

24 lines
822 B
Racket

#lang racket/base
(require "safe-io.rkt")
(require rackunit)
(define (s str)
(open-input-string str))
(check-equal? (read-line-limited (s "") 5) eof)
(check-equal? (read-line-limited (s "abc") 5) "abc")
(check-equal? (read-line-limited (s "abc\r\ndef") 5) "abc")
(check-equal? (read-line-limited (s "abcxy\r\ndef") 5) "abcxy")
(check-exn #rx"read-line-limited: Invalid character #<eof> after #\\\\return"
(lambda () (read-line-limited (s "abc\r") 5)))
(check-exn #rx"read-line-limited: Invalid character #\\\\d after #\\\\return"
(lambda () (read-line-limited (s "abc\rdef") 5)))
(check-exn #rx"Bare #\\\\linefeed encountered"
(lambda () (read-line-limited (s "abc\ndef") 5)))
(check-exn #rx"Line too long \\(more than 5 bytes before CRLF\\)"
(lambda () (read-line-limited (s "abcxyz\r\ndef") 5)))