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