Skip to content

Commit df2c2ca

Browse files
committed
Fix TCPServer "Should disconnect client" test
"Should disconnect client" test was failing randomly on Mac CI tests, so this PR is making it more reliable reading on the closed client instead of writing to it
1 parent 0f20e67 commit df2c2ca

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

tests/core/io/test_tcp_server.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,8 @@ Error poll(Ref<StreamPeerTCP> p_client) {
8585
const uint64_t time = OS::get_singleton()->get_ticks_usec();
8686
Error err = p_client->poll();
8787
while (err != Error::OK && (OS::get_singleton()->get_ticks_usec() - time) < MAX_WAIT_USEC) {
88-
err = p_client->poll();
8988
OS::get_singleton()->delay_usec(SLEEP_DURATION);
89+
err = p_client->poll();
9090
}
9191
return err;
9292
}
@@ -183,8 +183,8 @@ TEST_CASE("[TCPServer] When stopped shouldn't accept new connections") {
183183
time = OS::get_singleton()->get_ticks_usec();
184184
Error err = new_client->poll();
185185
while (err != Error::OK && err != Error::ERR_CONNECTION_ERROR && (OS::get_singleton()->get_ticks_usec() - time) < MAX_WAIT_USEC) {
186-
err = new_client->poll();
187186
OS::get_singleton()->delay_usec(SLEEP_DURATION);
187+
err = new_client->poll();
188188
}
189189
REQUIRE((err == Error::OK || err == Error::ERR_CONNECTION_ERROR));
190190
StreamPeerTCP::Status status = new_client->get_status();
@@ -210,7 +210,10 @@ TEST_CASE("[TCPServer] Should disconnect client") {
210210
server->stop();
211211
CHECK_FALSE(server->is_listening());
212212

213-
client->put_string(hello_world);
213+
// Reading for a closed connection will print an error.
214+
ERR_PRINT_OFF;
215+
CHECK_EQ(client->get_string(), String());
216+
ERR_PRINT_ON;
214217
REQUIRE_EQ(poll(client), Error::OK);
215218
CHECK_EQ(client->get_status(), StreamPeerTCP::STATUS_NONE);
216219
}

0 commit comments

Comments
 (0)