From 73d4b0f0a05d50a4426911d9092a0a249224901f Mon Sep 17 00:00:00 2001 From: david Date: Sun, 30 Jun 2013 06:08:45 +0000 Subject: [PATCH] Ncat: Add tests for idle timeout in listen mode This patch adds tests for idle timeout in listen mode for all supported protocols. It also modifies existing test for idle time in connection mode to test the option for all supported protocols. Signed-off-by: Tomas Hozza --- ncat/test/ncat-test.pl | 44 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) diff --git a/ncat/test/ncat-test.pl b/ncat/test/ncat-test.pl index 083727b82..2876d8883 100755 --- a/ncat/test/ncat-test.pl +++ b/ncat/test/ncat-test.pl @@ -1140,7 +1140,7 @@ kill_children; # Test that both reads and writes reset the idle counter, and that the client # properly exits after the timeout expires. -server_client_test "idle timeout", +server_client_test_all "idle timeout (connect mode)", [], ["-i", "3000ms"], sub { my $resp; @@ -1158,6 +1158,48 @@ server_client_test "idle timeout", !$resp or die "Client received \"$resp\" after delay of 4000 ms with idle timeout of 3000 ms." }; +# Test that both reads and writes reset the idle counter, and that the server +# properly exits after the timeout expires. +server_client_test_tcp_sctp_ssl "idle timeout (listen mode)", +["-i", "3000ms"], [], sub { + my $resp; + + syswrite($s_in, "abc\n"); + $resp = timeout_read($c_out) or die "Read timeout"; + sleep 2; + syswrite($c_in, "abc\n"); + $resp = timeout_read($s_out) or die "Read timeout"; + sleep 2; + syswrite($s_in, "abc\n"); + $resp = timeout_read($c_out) or die "Read timeout"; + sleep 4; + syswrite($c_in, "abc\n"); + $resp = timeout_read($s_out); + !$resp or die "Server received \"$resp\" after delay of 4000 ms with idle timeout of 3000 ms." +}; + +server_client_test_multi ["udp"], "idle timeout (listen mode)", +["-i", "3000ms"], [], sub { + my $resp; + + # when using UDP client must at least write something to the server + syswrite($c_in, "abc\n"); + $resp = timeout_read($s_out) or die "Server didn't receive the message"; + + syswrite($s_in, "abc\n"); + $resp = timeout_read($c_out) or die "Read timeout"; + sleep 2; + syswrite($c_in, "abc\n"); + $resp = timeout_read($s_out) or die "Read timeout"; + sleep 2; + syswrite($s_in, "abc\n"); + $resp = timeout_read($c_out) or die "Read timeout"; + sleep 4; + syswrite($c_in, "abc\n"); + $resp = timeout_read($s_out); + !$resp or die "Server received \"$resp\" after delay of 4000 ms with idle timeout of 3000 ms." +}; + # --send-only tests. server_client_test_all "--send-only client",