aboutsummaryrefslogtreecommitdiffhomepage
path: root/test
diff options
context:
space:
mode:
authorMichael Camilleri <mike@inqk.net>2021-02-28 15:38:01 +0900
committerMichael Camilleri <mike@inqk.net>2021-02-28 17:05:33 +0900
commita40e56cd54672871ca94df53a253745bdd07f5ff (patch)
treec0cd8068c03bd0a347be15005400f1b5b93304ec /test
parentSupport sending arguments with out-of-band messages (diff)
Add tests for netrepl
Diffstat (limited to 'test')
-rw-r--r--test/suite9.janet47
1 files changed, 47 insertions, 0 deletions
diff --git a/test/suite9.janet b/test/suite9.janet
new file mode 100644
index 0000000..b04fbf7
--- /dev/null
+++ b/test/suite9.janet
@@ -0,0 +1,47 @@
+(use ../spork/test)
+(import ../spork/msg)
+(import ../spork/netrepl)
+
+(start-suite 9)
+
+(defn wrk [m]
+ (netrepl/server "localhost" "8000"))
+
+(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 "test")
+
+ (assert (= (recv) "test:1: ") "Prompt 1")
+ (send "(+ 1 2)\n")
+ (assert (= (recv) "\e[32m3\e[0m\n") "Result 1")
+
+ (assert (= (recv) "test:2: ") "Prompt 2")
+ (send "\xFF(parser/where (dyn :parser) 100)")
+ (assert (= (recv) "(true (100 0))") "Response 2")
+ (send "(+ 1 2)\n")
+ (assert (= (recv) "\e[32m3\e[0m\n") "Result 2")
+
+ (assert (= (recv) "test:101: ") "Prompt 3")
+ (send "\xFEcancel")
+ (assert (= (recv) nil) "Response 3")
+
+ (assert (= (recv) "test:101: ") "Prompt 4")
+ (send "\xFEsource \"foobar.janet\"")
+ (assert (= (recv) nil) "Response 4")
+
+ (assert (= (recv) "test:101: ") "Prompt 5")
+ (send "(def foo :bar)\n")
+ (assert (= (recv) "\e[33m:bar\e[0m\n") "Result 5")
+
+ (assert (= (recv) "test:102: ") "Prompt 6")
+ (send "(get (dyn 'foo) :source-map)\n")
+ (assert (= (recv) "(\e[35m\"foobar.janet\"\e[0m \e[32m101\e[0m \e[32m1\e[0m)\n") "Result 6")
+
+ (assert (= (recv) "test:103: ") "Prompt 7"))
+(end-suite)