From 914917f670cc9eea7e41077c48a645f265f71f15 Mon Sep 17 00:00:00 2001 From: Mikhail Novikov Date: Thu, 20 Jun 2013 00:01:28 +0300 Subject: [PATCH] Some sending tests. --- tests/main.lisp | 34 ++++++++++++++++++++++++++++++++++ zeromq.asd | 2 +- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/tests/main.lisp b/tests/main.lisp index 750cce0..83717f2 100644 --- a/tests/main.lisp +++ b/tests/main.lisp @@ -9,6 +9,21 @@ (defparameter *test-endpoint* "tcp://127.0.0.1:31723") +(defmacro with-test-reciever (socket &body body) + (let ((result-var (gensym "result")) + (msg-var (gensym "msg")) + (thread-var (gensym "thread"))) + `(let* ((,result-var) + (,thread-var + (bordeaux-threads:make-thread + (lambda () + (let ((,msg-var (zmq:make-msg))) + (zmq:msg-recv ,socket ,msg-var) + (setf ,result-var ,msg-var)))))) + ,@body + (bordeaux-threads:join-thread ,thread-var) + ,result-var))) + ;; Version (test version @@ -193,3 +208,22 @@ (is (= 4 (zmq:msg-size dst-msg))) (is (equalp #(1 2 3 4) (zmq:msg-data-as-array dst-msg))))) + +;; Sending and recieving the messages + +(test test-send-recv-msg + "Messages should be sent and recieved correctly with msg-send and msg-recv." + (let ((msg (zmq:make-msg :data #(1 2 3 4)))) + (zmq:with-context (ctx) + (zmq:with-socket (sender ctx :push) + (zmq:with-socket (reciever ctx :pull) + (zmq:bind sender *test-endpoint*) + (zmq:connect reciever *test-endpoint*) + (let ((result-msg + (with-test-reciever reciever + (zmq:msg-send sender msg)))) + (is (equalp #(1 2 3 4) + (zmq:msg-data-as-array result-msg))) + (is (equalp #() + (zmq:msg-data-as-array msg)) + "Sent message should be emptied."))))))) diff --git a/zeromq.asd b/zeromq.asd index 69370c2..0469ad2 100644 --- a/zeromq.asd +++ b/zeromq.asd @@ -23,7 +23,7 @@ (:file "zeromq-api"))))) (asdf:defsystem zeromq.tests - :depends-on (:zeromq :fiveam) + :depends-on (:zeromq :fiveam :bordeaux-threads) :components ((:module "tests" :serial t -- 2.11.4.GIT