From cbe833962b81c141ce4bf022b98d5b46337ab38e Mon Sep 17 00:00:00 2001 From: Calvin Rose Date: Sun, 19 Jun 2022 10:01:10 -0500 Subject: [PATCH] Remove bad suite0009 test. Close #871 The issue is that there was no synchronization on writes. The stability of the test relied on the fact that the server would read in an entire message in one call to ev/read, which would _almost_ always happen since the messages are so small. --- src/core/net.c | 1 - test/suite0009.janet | 29 ++++++++++------------------- 2 files changed, 10 insertions(+), 20 deletions(-) diff --git a/src/core/net.c b/src/core/net.c index 52293427..5f719841 100644 --- a/src/core/net.c +++ b/src/core/net.c @@ -884,7 +884,6 @@ static JanetStream *make_stream(JSock handle, uint32_t flags) { return janet_stream((JanetHandle) handle, flags | JANET_STREAM_SOCKET, net_stream_methods); } - void janet_lib_net(JanetTable *env) { JanetRegExt net_cfuns[] = { JANET_CORE_REG("net/address", cfun_net_sockaddr), diff --git a/test/suite0009.janet b/test/suite0009.janet index 7da725cd..018a7052 100644 --- a/test/suite0009.janet +++ b/test/suite0009.janet @@ -164,35 +164,26 @@ (:close s)) -(defn check-matching-names [stream tag] - (def ln (net/localname stream)) - (def pn (net/peername stream)) - (def [my-ip my-port] ln) - (def [remote-ip remote-port] pn) - (def msg (string my-ip " " my-port " " remote-ip " " remote-port)) - (def buf @"") - (ev/gather - (net/write stream msg) - (net/read stream 1024 buf)) - (def comparison (string/split " " buf)) - (assert (and (= my-ip (get comparison 2)) - (= (string my-port) (get comparison 3)) - (= remote-ip (get comparison 0)) - (= (string remote-port) (get comparison 1))) - (string/format "%s: localname should match peername: msg=%j, buf=%j" tag msg buf))) - # Test on both server and client (defn names-handler [stream] (defer (:close stream) - (check-matching-names stream "server"))) + # prevent immediate close + (ev/read stream 1) + (def [host port] (net/localname stream)) + (assert (= host "127.0.0.1") "localname host server") + (assert (= port 8000) "localname port server"))) # Test localname and peername (repeat 10 (with [s (net/server "127.0.0.1" "8000" names-handler)] (repeat 10 (with [conn (net/connect "127.0.0.1" "8000")] - (check-matching-names conn "client")))) + (def [host port] (net/peername conn)) + (assert (= host "127.0.0.1") "peername host client ") + (assert (= port 8000) "peername port client") + # let server close + (ev/write conn " ")))) (gccollect)) # Create pipe