diff --git a/test/babashka/main_test.clj b/test/babashka/main_test.clj index 53f5d303..c1a5d79b 100644 --- a/test/babashka/main_test.clj +++ b/test/babashka/main_test.clj @@ -188,7 +188,11 @@ (let [server (test-utils/start-server! 1777)] (is (= 1777 (:port (bb nil "(wait/wait-for-port \"127.0.0.1\" 1777)")))) (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 (let [temp-dir-path (System/getProperty "java.io.tmpdir")] diff --git a/test/babashka/scripts/socket_server.bb b/test/babashka/scripts/socket_server.bb new file mode 100644 index 00000000..76467255 --- /dev/null +++ b/test/babashka/scripts/socket_server.bb @@ -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))