aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMaxime Devos <maximedevos@telenet.be>2021-09-02 18:55:54 +0200
committerMaxime Devos <maximedevos@telenet.be>2021-09-21 12:20:56 +0200
commit289c4adba9ab875223a269aaee1b9b28b3981537 (patch)
tree5a95830b22ca8e5792ab0bd55e31434437d9184c /tests
parent299ccf8c7cf22816da4d1acf4fb711fe375c076f (diff)
downloadgnunet-scheme-289c4adba9ab875223a269aaee1b9b28b3981537.tar.gz
gnunet-scheme-289c4adba9ab875223a269aaee1b9b28b3981537.zip
mq: Inject errors when message verification has negative result.
* README.org (List of errors): Document logic:ill-formed. * doc/scheme-gnunet.tm (logic:ill-formed): New explanation. * gnu/gnunet/mq.scm (inject-message!): Document logic:ill-formed error. Inject that error when the verificator returns falsehood. * tests/mq.scm ("ill-formed message error"): New test.
Diffstat (limited to 'tests')
-rw-r--r--tests/mq.scm26
1 files changed, 25 insertions, 1 deletions
diff --git a/tests/mq.scm b/tests/mq.scm
index 3485022..c4763c9 100644
--- a/tests/mq.scm
+++ b/tests/mq.scm
@@ -631,7 +631,31 @@ with @code{x}."
631 (! mq (make-message-queue no-handlers error-handler #f))) 631 (! mq (make-message-queue no-handlers error-handler #f)))
632 (inject-message! mq slice) 632 (inject-message! mq slice)
633 errored?)) 633 errored?))
634;; TODO: what if the message is (otherwise) malformed? 634
635(test-assert "ill-formed message error"
636 (let^ ((! errored? #f)
637 (! slice (bv-slice/read-write #vu8(0 4 0 0)))
638 (! handlers
639 (message-handlers
640 (message-handler
641 (type 0)
642 ((interpose code) code)
643 ((well-formed? s)
644 (assert (eq? s slice))
645 #f)
646 ((handle! slice)
647 (error "unreachable")))))
648 (! (error-handler . e)
649 (match e
650 ;; Note: it theoretically may have some unspecified rest
651 ;; rest arguments. In ‘real code’, use
652 ;; (logic:ill-formed 0 . rest) instead.
653 ('(logic:ill-formed 0)
654 (assert (not errored?))
655 (set! errored? #t))))
656 (! mq (make-message-queue handlers error-handler #f)))
657 (inject-message! mq slice)
658 errored?))
635 659
636 660
637 661