more tests for sync and input ports

svn: r1456
This commit is contained in:
Matthew Flatt 2005-12-01 16:49:47 +00:00
parent eae329515f
commit 923167419f
2 changed files with 40 additions and 0 deletions

View File

@ -574,6 +574,33 @@
(test (char->integer #\h) peek-byte r))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Check that breaks are enabled properly:
(let ([try
(lambda (read-char)
(let ([p (make-input-port
'test
(lambda (bstr) never-evt)
(lambda (bstr skip-count progress-evt) never-evt)
void)])
(let ([t (thread (lambda () (with-handlers ([exn:break? void])
(read-char p))))])
(sleep 0.1)
(break-thread t)
(sleep 0.1)
(test #f thread-running? t))))])
(try sync)
(try sync/enable-break)
(parameterize-break #f (try sync/enable-break))
(try read-char)
(try peek-char)
(try (lambda (x) (read-bytes-avail! (make-bytes 10) x)))
(try (lambda (x) (read-bytes-avail!/enable-break (make-bytes 10) x)))
(parameterize-break
#f
(try (lambda (x) (read-bytes-avail!/enable-break (make-bytes 10) x)))))
;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(report-errs)

View File

@ -1030,6 +1030,19 @@
(mk-capturing 'pre)
(mk-capturing 'act))))))
;; ----------------------------------------
;; Check wrap-evt result superceded by internally
;; installed constant (i.e., the input port):
(let ([p (make-input-port
'test
(lambda (bstr) never-evt)
(lambda (bstr skip-count progress-evt)
(wrap-evt always-evt (lambda (_) 17)))
void)])
;; Make sure we don't get 17
(test p sync p))
;; ----------------------------------------
(report-errs)