vary ports across socket repl tests (#1539)
* use different port for socket repl tests - update socket-command to socket-command-on-port, which takes a port and then returns the socket-command function - change port numbers across tests * undo little formatting change * grr... newlines
This commit is contained in:
parent
a945ea8146
commit
19bfd172fc
1 changed files with 103 additions and 99 deletions
|
|
@ -15,8 +15,9 @@
|
||||||
|
|
||||||
(set! *warn-on-reflection* true)
|
(set! *warn-on-reflection* true)
|
||||||
|
|
||||||
(defn socket-command [expr expected & [log?]]
|
(defn socket-command-on-port [^long port]
|
||||||
(with-open [socket (java.net.Socket. "127.0.0.1" 1666)
|
(fn [expr expected & [log?]]
|
||||||
|
(with-open [socket (java.net.Socket. "127.0.0.1" port)
|
||||||
reader (io/reader socket)
|
reader (io/reader socket)
|
||||||
sw (java.io.StringWriter.)
|
sw (java.io.StringWriter.)
|
||||||
writer (io/writer socket)]
|
writer (io/writer socket)]
|
||||||
|
|
@ -38,7 +39,7 @@
|
||||||
(recur)))))
|
(recur)))))
|
||||||
(binding [*out* writer]
|
(binding [*out* writer]
|
||||||
(println ":repl/quit\n"))
|
(println ":repl/quit\n"))
|
||||||
:success))
|
:success)))
|
||||||
|
|
||||||
(def server-process (volatile! nil))
|
(def server-process (volatile! nil))
|
||||||
|
|
||||||
|
|
@ -46,6 +47,7 @@
|
||||||
|
|
||||||
(deftest ^:flaky socket-repl-test
|
(deftest ^:flaky socket-repl-test
|
||||||
(when exec?
|
(when exec?
|
||||||
|
(let [socket-command (socket-command-on-port 1666)]
|
||||||
(try
|
(try
|
||||||
(if tu/jvm?
|
(if tu/jvm?
|
||||||
(let [ctx (init {:namespaces main/namespaces
|
(let [ctx (init {:namespaces main/namespaces
|
||||||
|
|
@ -74,10 +76,11 @@
|
||||||
(do (stop-repl!)
|
(do (stop-repl!)
|
||||||
(ctx-store/reset-ctx! nil)
|
(ctx-store/reset-ctx! nil)
|
||||||
(Thread/sleep 100))
|
(Thread/sleep 100))
|
||||||
(p/destroy-tree @server-process))))))
|
(p/destroy-tree @server-process)))))))
|
||||||
|
|
||||||
(deftest ^:flaky socket-repl-opts-test
|
(deftest ^:flaky socket-repl-opts-test
|
||||||
(when exec?
|
(when exec?
|
||||||
|
(let [socket-command (socket-command-on-port 1667)]
|
||||||
(try
|
(try
|
||||||
(if tu/jvm?
|
(if tu/jvm?
|
||||||
(let [ctx (init {:bindings {'*command-line-args*
|
(let [ctx (init {:bindings {'*command-line-args*
|
||||||
|
|
@ -86,11 +89,11 @@
|
||||||
:namespaces {'clojure.core.server clojure-core-server-namespace}
|
:namespaces {'clojure.core.server clojure-core-server-namespace}
|
||||||
:features #{:bb}})]
|
:features #{:bb}})]
|
||||||
(ctx-store/reset-ctx! ctx)
|
(ctx-store/reset-ctx! ctx)
|
||||||
(start-repl! "{:address \"localhost\" :accept clojure.core.server/repl :port 1666}"
|
(start-repl! "{:address \"localhost\" :accept clojure.core.server/repl :port 1667}"
|
||||||
ctx))
|
ctx))
|
||||||
(do (vreset! server-process
|
(do (vreset! server-process
|
||||||
(p/process ["./bb" "--socket-repl" "{:address \"localhost\" :accept clojure.core.server/repl :port 1666}"]))
|
(p/process ["./bb" "--socket-repl" "{:address \"localhost\" :accept clojure.core.server/repl :port 1667}"]))
|
||||||
(w/wait-for-port "localhost" 1666)))
|
(w/wait-for-port "localhost" 1667)))
|
||||||
(Thread/sleep 50)
|
(Thread/sleep 50)
|
||||||
(is (socket-command "(+ 1 2 3)" "user=> 6"))
|
(is (socket-command "(+ 1 2 3)" "user=> 6"))
|
||||||
(finally
|
(finally
|
||||||
|
|
@ -98,10 +101,11 @@
|
||||||
(do (stop-repl!)
|
(do (stop-repl!)
|
||||||
(ctx-store/reset-ctx! nil)
|
(ctx-store/reset-ctx! nil)
|
||||||
(Thread/sleep 100))
|
(Thread/sleep 100))
|
||||||
(p/destroy-tree @server-process))))))
|
(p/destroy-tree @server-process)))))))
|
||||||
|
|
||||||
(deftest ^:flaky socket-prepl-test
|
(deftest ^:flaky socket-prepl-test
|
||||||
(when exec?
|
(when exec?
|
||||||
|
(let [socket-command (socket-command-on-port 1668)]
|
||||||
(try
|
(try
|
||||||
(if tu/jvm?
|
(if tu/jvm?
|
||||||
(let [ctx (init {:bindings {'*command-line-args*
|
(let [ctx (init {:bindings {'*command-line-args*
|
||||||
|
|
@ -110,11 +114,11 @@
|
||||||
:namespaces {'clojure.core.server clojure-core-server-namespace}
|
:namespaces {'clojure.core.server clojure-core-server-namespace}
|
||||||
:features #{:bb}})]
|
:features #{:bb}})]
|
||||||
(ctx-store/reset-ctx! ctx)
|
(ctx-store/reset-ctx! ctx)
|
||||||
(start-repl! "{:address \"localhost\" :accept clojure.core.server/io-prepl :port 1666}"
|
(start-repl! "{:address \"localhost\" :accept clojure.core.server/io-prepl :port 1668}"
|
||||||
ctx))
|
ctx))
|
||||||
(do (vreset! server-process
|
(do (vreset! server-process
|
||||||
(p/process ["./bb" "--socket-repl" "{:address \"localhost\" :accept clojure.core.server/io-prepl :port 1666}"]))
|
(p/process ["./bb" "--socket-repl" "{:address \"localhost\" :accept clojure.core.server/io-prepl :port 1668}"]))
|
||||||
(w/wait-for-port "localhost" 1666)))
|
(w/wait-for-port "localhost" 1668)))
|
||||||
(Thread/sleep 50)
|
(Thread/sleep 50)
|
||||||
(is (socket-command "(+ 1 2 3)" (fn [s]
|
(is (socket-command "(+ 1 2 3)" (fn [s]
|
||||||
(let [m (edn/read-string s)]
|
(let [m (edn/read-string s)]
|
||||||
|
|
@ -126,7 +130,7 @@
|
||||||
(do (stop-repl!)
|
(do (stop-repl!)
|
||||||
(ctx-store/reset-ctx! nil)
|
(ctx-store/reset-ctx! nil)
|
||||||
(Thread/sleep 100))
|
(Thread/sleep 100))
|
||||||
(p/destroy-tree @server-process))))))
|
(p/destroy-tree @server-process)))))))
|
||||||
|
|
||||||
;;;; Scratch
|
;;;; Scratch
|
||||||
|
|
||||||
|
|
@ -141,5 +145,5 @@
|
||||||
'*command-line-args*
|
'*command-line-args*
|
||||||
["a" "b" "c"]}
|
["a" "b" "c"]}
|
||||||
:env (atom {})})
|
:env (atom {})})
|
||||||
(socket-command "(+ 1 2 3)" "6")
|
((socket-command-on-port 1666) "(+ 1 2 3)" "6")
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue