aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorJosef Pospíšil <josef.pospisil@laststar.eu>2020-06-28 16:39:56 +0200
committerJosef Pospíšil <josef.pospisil@laststar.eu>2020-06-28 16:57:40 +0200
commit06882551f890808a91b59a31d1a1c56fcfe88838 (patch)
treef06bc4231c4395e49161462b2cbdd1be6c8ca7c1 /test
parentStart with the test suite (diff)
Add msg and rpc test suite
Only reliable way to test it I found is to use threads. Also I had to add os/sleep so server has chance to start.
Diffstat (limited to 'test')
-rw-r--r--test/suite2.janet22
-rw-r--r--test/suite3.janet25
2 files changed, 47 insertions, 0 deletions
diff --git a/test/suite2.janet b/test/suite2.janet
new file mode 100644
index 0000000..7842163
--- /dev/null
+++ b/test/suite2.janet
@@ -0,0 +1,22 @@
+(use test/helper)
+(import spork/rpc)
+
+(start-suite 2)
+
+(def fns
+ {:hi (fn [self msg]
+ (assert (= msg "spork") "RPC server")
+ (string "Hello " msg))})
+
+(defn wrk [m] (rpc/server fns "localhost" 8000))
+
+(def wt (thread/new wrk 1 :h)) # so need heavy thread for the assert
+
+(os/sleep 0.1) # give server thread little time to start
+
+(defer (:close wt)
+ (def c (rpc/client "localhost" 8000))
+ (assert (= (:hi c "spork") "Hello spork") "RPC client")
+ (:close c))
+
+(end-suite)
diff --git a/test/suite3.janet b/test/suite3.janet
new file mode 100644
index 0000000..1d6ac7c
--- /dev/null
+++ b/test/suite3.janet
@@ -0,0 +1,25 @@
+(use test/helper)
+(import spork/msg)
+
+(start-suite 3)
+
+(defn handler [s]
+ (def recv (msg/make-recv s))
+ (def send (msg/make-send s))
+ (while (def msg (recv))
+ (assert (= msg "spork") "Message 1")
+ (send msg)))
+
+(defn wrk [m] (net/server "localhost" 8000 handler))
+
+(def wt (thread/new wrk 1 :h)) # we need heavy thread for the assert
+
+(os/sleep 0.1) # give server thread little time to start
+
+(defer (:close wt)
+ (def s (net/connect "localhost" 8000))
+ (def recv (msg/make-recv s))
+ (def send (msg/make-send s))
+ (send "spork")
+ (assert (= (recv) "spork") "Message 2"))
+(end-suite)