This commit is contained in:
Michiel Borkent 2019-12-31 14:18:00 +01:00
parent a9ac2cabbe
commit a5f26aca3f
2 changed files with 27 additions and 1 deletions

View file

@ -188,7 +188,11 @@
(let [server (test-utils/start-server! 1777)] (let [server (test-utils/start-server! 1777)]
(is (= 1777 (:port (bb nil "(wait/wait-for-port \"127.0.0.1\" 1777)")))) (is (= 1777 (:port (bb nil "(wait/wait-for-port \"127.0.0.1\" 1777)"))))
(test-utils/stop-server! server) (test-utils/stop-server! server)
(is (= :timed-out (bb nil "(wait/wait-for-port \"127.0.0.1\" 1777 {:default :timed-out :timeout 50})"))))) (is (= :timed-out (bb nil "(wait/wait-for-port \"127.0.0.1\" 1777 {:default :timed-out :timeout 50})"))))
(let [edn (bb nil (io/file "test" "babashka" "scripts" "socket_server.bb"))]
(is (= "127.0.0.1" (:host edn)))
(is (= 1777 (:port edn)))
(is (number? (:took edn)))))
(deftest wait-for-path-test (deftest wait-for-path-test
(let [temp-dir-path (System/getProperty "java.io.tmpdir")] (let [temp-dir-path (System/getProperty "java.io.tmpdir")]

View file

@ -0,0 +1,22 @@
(require '[babashka.wait :as wait])
(defn socket-loop [^java.net.ServerSocket server]
(with-open [listener server]
(loop []
(with-open [socket (.accept listener)]
(let [input-stream (.getInputStream socket)]
(print (slurp input-stream))
(flush)))
(recur))))
(defn start-server! [port]
(let [server (java.net.ServerSocket. port)]
(future (socket-loop server))
server))
(defn stop-server! [^java.net.ServerSocket server]
(.close server))
(let [server (start-server! 1777)]
(prn (wait/wait-for-port "127.0.0.1" 1777))
(stop-server! server))