Blob Blame History Raw
From c466bfcff28805a730beddde9b88f70ce58e0021 Mon Sep 17 00:00:00 2001
From: Tomas Hozza <thozza@redhat.com>
Date: Wed, 5 Jun 2013 14:30:44 +0200
Subject: [PATCH 2/2] 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 <thozza@redhat.com>
---
 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 083727b..b793ca2 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",
-- 
1.8.1.4