فهرست منبع

Merge pull request #99960 from pafuent/fixing_tcp_server_flappy_disconnect_test

Fix `TCPServer` "Should disconnect client" test
Rémi Verschelde 7 ماه پیش
والد
کامیت
aa8d9b83f6
1فایلهای تغییر یافته به همراه6 افزوده شده و 3 حذف شده
  1. 6 3
      tests/core/io/test_tcp_server.h

+ 6 - 3
tests/core/io/test_tcp_server.h

@@ -85,8 +85,8 @@ Error poll(Ref<StreamPeerTCP> p_client) {
 	const uint64_t time = OS::get_singleton()->get_ticks_usec();
 	const uint64_t time = OS::get_singleton()->get_ticks_usec();
 	Error err = p_client->poll();
 	Error err = p_client->poll();
 	while (err != Error::OK && (OS::get_singleton()->get_ticks_usec() - time) < MAX_WAIT_USEC) {
 	while (err != Error::OK && (OS::get_singleton()->get_ticks_usec() - time) < MAX_WAIT_USEC) {
-		err = p_client->poll();
 		OS::get_singleton()->delay_usec(SLEEP_DURATION);
 		OS::get_singleton()->delay_usec(SLEEP_DURATION);
+		err = p_client->poll();
 	}
 	}
 	return err;
 	return err;
 }
 }
@@ -183,8 +183,8 @@ TEST_CASE("[TCPServer] When stopped shouldn't accept new connections") {
 	time = OS::get_singleton()->get_ticks_usec();
 	time = OS::get_singleton()->get_ticks_usec();
 	Error err = new_client->poll();
 	Error err = new_client->poll();
 	while (err != Error::OK && err != Error::ERR_CONNECTION_ERROR && (OS::get_singleton()->get_ticks_usec() - time) < MAX_WAIT_USEC) {
 	while (err != Error::OK && err != Error::ERR_CONNECTION_ERROR && (OS::get_singleton()->get_ticks_usec() - time) < MAX_WAIT_USEC) {
-		err = new_client->poll();
 		OS::get_singleton()->delay_usec(SLEEP_DURATION);
 		OS::get_singleton()->delay_usec(SLEEP_DURATION);
+		err = new_client->poll();
 	}
 	}
 	REQUIRE((err == Error::OK || err == Error::ERR_CONNECTION_ERROR));
 	REQUIRE((err == Error::OK || err == Error::ERR_CONNECTION_ERROR));
 	StreamPeerTCP::Status status = new_client->get_status();
 	StreamPeerTCP::Status status = new_client->get_status();
@@ -210,7 +210,10 @@ TEST_CASE("[TCPServer] Should disconnect client") {
 	server->stop();
 	server->stop();
 	CHECK_FALSE(server->is_listening());
 	CHECK_FALSE(server->is_listening());
 
 
-	client->put_string(hello_world);
+	// Reading for a closed connection will print an error.
+	ERR_PRINT_OFF;
+	CHECK_EQ(client->get_string(), String());
+	ERR_PRINT_ON;
 	REQUIRE_EQ(poll(client), Error::OK);
 	REQUIRE_EQ(poll(client), Error::OK);
 	CHECK_EQ(client->get_status(), StreamPeerTCP::STATUS_NONE);
 	CHECK_EQ(client->get_status(), StreamPeerTCP::STATUS_NONE);
 }
 }