diff options
author | Maxime Devos <maximedevos@telenet.be> | 2021-09-08 16:03:27 +0200 |
---|---|---|
committer | Maxime Devos <maximedevos@telenet.be> | 2021-09-21 12:20:59 +0200 |
commit | dd8fd583a378486a93661e1d4cc4c1e112526fe7 (patch) | |
tree | 3d843a0ccd7186f581b79495063fc42d7452456d /tests | |
parent | be00f18f729acc6c73fb245ea3a61107392d8703 (diff) | |
download | gnunet-scheme-dd8fd583a378486a93661e1d4cc4c1e112526fe7.tar.gz gnunet-scheme-dd8fd583a378486a93661e1d4cc4c1e112526fe7.zip |
mq-impl/stream: Eliminate 'return' argument of 'handle-input!'.
* gnu/gnunet/mq-impl/stream.scm
(handle-input!): Remove 'return' argument. Return errors from
'add-from-port!' instead of injecting them.
(prepare-port-message-queue)[start-reader!]: Remove #:return argument.
* tests/mq-stream.scm
(handle-input*): New procedure.
("messages + eof are injected in-order")
("overly small message is detected (--> stop)")
("premature eof is detected (--> stop)"): Use new procedure.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/mq-stream.scm | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/tests/mq-stream.scm b/tests/mq-stream.scm index 6b1850a..360e41a 100644 --- a/tests/mq-stream.scm +++ b/tests/mq-stream.scm | |||
@@ -76,6 +76,12 @@ | |||
76 | ;; writing to a broken pipe. | 76 | ;; writing to a broken pipe. |
77 | (sigaction SIGPIPE SIG_IGN) | 77 | (sigaction SIGPIPE SIG_IGN) |
78 | 78 | ||
79 | (define (handle-input*! mq input) | ||
80 | (call-with-values (lambda () (handle-input! mq input)) | ||
81 | (lambda e | ||
82 | (apply inject-error! mq e) | ||
83 | (values)))) | ||
84 | |||
79 | (test-assert "messages + eof are injected in-order" | 85 | (test-assert "messages + eof are injected in-order" |
80 | (let^ ((! input/bv #vu8(0 4 0 1 ; Message type 1, size 4 | 86 | (let^ ((! input/bv #vu8(0 4 0 1 ; Message type 1, size 4 |
81 | 0 5 0 2 1 ; Message type 2, size 6 | 87 | 0 5 0 2 1 ; Message type 2, size 6 |
@@ -99,9 +105,9 @@ | |||
99 | (assert (equal? arguments '(input:regular-end-of-file))) | 105 | (assert (equal? arguments '(input:regular-end-of-file))) |
100 | (set! received 'end-of-file)) | 106 | (set! received 'end-of-file)) |
101 | (! mq (make-message-queue handlers error-handler no-sender)) | 107 | (! mq (make-message-queue handlers error-handler no-sender)) |
102 | (<-- () (handle-input! mq input))) | 108 | (<-- () (handle-input*! mq input))) |
103 | ;; TODO: should the port be closed? | 109 | ;; TODO: should the port be closed? |
104 | (assert (equal? received 'end-of-file)))) | 110 | (assert (equal? received 'end-of-file))) |
105 | 111 | ||
106 | (test-assert "overly small message is detected (--> stop)" | 112 | (test-assert "overly small message is detected (--> stop)" |
107 | (let^ ((! input/bv #vu8(0 4 0 0 ; Message type 0, size 4 | 113 | (let^ ((! input/bv #vu8(0 4 0 0 ; Message type 0, size 4 |
@@ -128,7 +134,7 @@ | |||
128 | (assert (equal? arguments `(input:overly-small ,(* 256 9) 3))) | 134 | (assert (equal? arguments `(input:overly-small ,(* 256 9) 3))) |
129 | (set! received 'overly-small)) | 135 | (set! received 'overly-small)) |
130 | (! mq (make-message-queue handlers error-handler no-sender)) | 136 | (! mq (make-message-queue handlers error-handler no-sender)) |
131 | (<-- () (handle-input! mq input))) | 137 | (<-- () (handle-input*! mq input))) |
132 | (assert (equal? received 'overly-small)))) | 138 | (assert (equal? received 'overly-small)))) |
133 | 139 | ||
134 | (test-assert "premature eof is detected (--> stop)" | 140 | (test-assert "premature eof is detected (--> stop)" |
@@ -140,7 +146,7 @@ | |||
140 | (assert (equal? arguments '(input:premature-end-of-file))) | 146 | (assert (equal? arguments '(input:premature-end-of-file))) |
141 | (set! received #t)) | 147 | (set! received #t)) |
142 | (! mq (make-message-queue no-handlers error-handler no-sender)) | 148 | (! mq (make-message-queue no-handlers error-handler no-sender)) |
143 | (<-- () (handle-input! mq input))) | 149 | (<-- () (handle-input*! mq input))) |
144 | (assert (equal? received #t)))) | 150 | (assert (equal? received #t)))) |
145 | 151 | ||
146 | (test-equal "envelopes are written (no blocking)" | 152 | (test-equal "envelopes are written (no blocking)" |