Skip to content

Commit 0851b2f

Browse files
committed
test: use own clients for tests leaving connections
There are some test cases that do not close its connections - it violates isolation of the future test cases. The problem is they cannot close them because they are dead (see #122) - let's simply use separate instances of `Connector` for such cases. Also, there is a test case `many_conn_ping` that waits for any of several connections and then closes them. The problem is other connections can be ready to decode, hence, they won't be dropped because of #123 - I tried to simply wait for all of them after the case, but then I faced another #124 bug, so let's simply use separate instance of `Connector` here as well. Workaround for #122 Workaround for #123 Workaround for #124
1 parent 0cdff51 commit 0851b2f

File tree

1 file changed

+12
-8
lines changed

1 file changed

+12
-8
lines changed

test/ClientTest.cpp

+12-8
Original file line numberDiff line numberDiff line change
@@ -264,9 +264,11 @@ auto_close(Connector<BUFFER, NetProvider> &client)
264264
/** Several connection, separate/sequence pings, no errors */
265265
template <class BUFFER, class NetProvider>
266266
void
267-
many_conn_ping(Connector<BUFFER, NetProvider> &client)
267+
many_conn_ping(void)
268268
{
269269
TEST_INIT(0);
270+
/* FIXME(gh-123,gh-124): use own client not to leave hanging connection. */
271+
Connector<Buf_t, NetProvider> client;
270272
Connection<Buf_t, NetProvider> conn1(client);
271273
Connection<Buf_t, NetProvider> conn2(client);
272274
Connection<Buf_t, NetProvider> conn3(client);
@@ -1033,15 +1035,16 @@ test_auth(Connector<BUFFER, NetProvider> &client)
10331035
}
10341036

10351037
/** Single connection, write to closed connection. */
1036-
template <class BUFFER, class NetProvider>
10371038
void
1038-
test_sigpipe(Connector<BUFFER, NetProvider> &client)
1039+
test_sigpipe(void)
10391040
{
10401041
TEST_INIT(0);
10411042

10421043
int rc = ::launchDummyServer(localhost, dummy_server_port);
10431044
fail_unless(rc == 0);
10441045

1046+
/* FIXME(gh-122): use own client not to leave hanging dead connection. */
1047+
Connector<Buf_t, NetProvider> client;
10451048
Connection<Buf_t, NetProvider> conn(client);
10461049
rc = ::test_connect(client, conn, localhost, dummy_server_port);
10471050
fail_unless(rc == 0);
@@ -1063,15 +1066,16 @@ test_sigpipe(Connector<BUFFER, NetProvider> &client)
10631066
}
10641067

10651068
/** Single connection, wait response from closed connection. */
1066-
template <class BUFFER, class NetProvider>
10671069
void
1068-
test_dead_connection_wait(Connector<BUFFER, NetProvider> &client)
1070+
test_dead_connection_wait(void)
10691071
{
10701072
TEST_INIT(0);
10711073

10721074
int rc = ::launchDummyServer(localhost, dummy_server_port);
10731075
fail_unless(rc == 0);
10741076

1077+
/* FIXME(gh-122): use own client not to leave hanging dead connection. */
1078+
Connector<Buf_t, NetProvider> client;
10751079
Connection<Buf_t, NetProvider> conn(client);
10761080
rc = ::test_connect(client, conn, localhost, dummy_server_port);
10771081
fail_unless(rc == 0);
@@ -1167,7 +1171,7 @@ int main()
11671171
trivial<Buf_t, NetProvider>(client);
11681172
single_conn_ping<Buf_t, NetProvider>(client);
11691173
auto_close<Buf_t, NetProvider>(client);
1170-
many_conn_ping<Buf_t, NetProvider>(client);
1174+
many_conn_ping<Buf_t, NetProvider>();
11711175
single_conn_error<Buf_t, NetProvider>(client);
11721176
single_conn_replace<Buf_t, NetProvider>(client);
11731177
single_conn_insert<Buf_t, NetProvider>(client);
@@ -1185,9 +1189,9 @@ int main()
11851189
* an a lot more complex state machine.
11861190
*/
11871191
#ifndef TNTCXX_ENABLE_SSL
1188-
::test_sigpipe(client);
1192+
::test_sigpipe();
11891193
#endif
1190-
::test_dead_connection_wait(client);
1194+
::test_dead_connection_wait();
11911195
response_decoding(client);
11921196
return 0;
11931197
}

0 commit comments

Comments
 (0)