From eec3669ed40ef9b782a63c59cce85b7e7e952981 Mon Sep 17 00:00:00 2001 From: henri Date: Thu, 8 Nov 2012 08:04:16 +0000 Subject: [PATCH] Update ncat test suite to take new ncat behavior into account. Since r29743, ncat closes connection after reading EOF. This patch first introduces a new test to verify it, and also updates two existing tests to prevent them from closing STDIN too early. --- ncat/test/ncat-test.pl | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/ncat/test/ncat-test.pl b/ncat/test/ncat-test.pl index 0f186d822..20c74c970 100755 --- a/ncat/test/ncat-test.pl +++ b/ncat/test/ncat-test.pl @@ -659,11 +659,10 @@ server_client_test_all "Messages are logged to output file", ["--output", "server.log"], ["--output", "client.log"], sub { syswrite($c_in, "abc\n"); - close($c_in); sleep 1; syswrite($s_in, "def\n"); - close($s_in); sleep 1; + close($c_in); open(FH, "server.log"); my $contents = join("", ); close(FH); @@ -682,11 +681,11 @@ server_client_test_tcp_sctp_ssl "Debug messages go to stderr", my $resp; syswrite($c_in, "abc\n"); - close($c_in); $resp = timeout_read($s_out) or die "Read timeout"; $resp eq "abc\n" or die "Server got \"$resp\", not \"abc\\n\""; syswrite($s_in, "abc\n"); close($s_in); + close($c_in); $resp = timeout_read($c_out) or die "Read timeout"; $resp eq "abc\n" or die "Server got \"$resp\", not \"abc\\n\""; }; @@ -712,6 +711,21 @@ server_client_test_tcp_sctp_ssl "Server sends EOF after client disconnect", }; kill_children; +server_client_test "Shutdown() connection when reading EOF", +[], [], sub { + my $resp; + + syswrite($c_in, "abc\n"); + $resp = timeout_read($s_out) or die "Read timeout"; + $resp eq "abc\n" or die "Server got \"$resp\", not \"abc\\n\""; + + close($c_in); + + $resp = timeout_read($s_out); + !defined($resp) or die "Server didn't send EOF (got \"$resp\")"; +}; +kill_children; + # Tests to check that server defaults to non-persistent without --keep-open. # Server immediately quits after the first connection closed without --keep-open