Kaynağa Gözat

Set timeout within nc, rather than the test script

git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1359 f882894a-f735-0410-b71e-b25c423dba1c
Ton Voon 20 yıl önce
ebeveyn
işleme
7dc2749047
1 değiştirilmiş dosya ile 5 ekleme ve 5 silme
  1. 5 5
      plugins/t/check_udp.t

+ 5 - 5
plugins/t/check_udp.t

@@ -38,10 +38,11 @@ SKIP: {
 	like  ( $res->output, '/\[barbar\]/', "Output OK");
 	close NC;
 
-	my $pid = open(NC, "nc -l -p 3333 -u |");	# Start up a udp server listening on port 3333
-	alarm(7);
-	sleep 1;
-	$SIG{ALRM} = sub { kill 'INT', $pid };
+	# Start up a udp server listening on port 3333, quit after 3 seconds
+	# Otherwise will hang at close
+	my $pid = open(NC, "nc -l -p 3333 -u -w 3 </dev/null |");
+	sleep 1;	# Allow nc to startup
+
 	my $start = time;
 	$res = NPTest->testCmd( "./check_udp2 -H localhost -p 3333 -s foofoo -e barbar -t 5 -4" );
 	my $duration = time - $start;
@@ -49,7 +50,6 @@ SKIP: {
 	like  ( $res->output, '/Socket timeout after 5 seconds/', "Timeout message");
 	cmp_ok( $duration, '==', 5, "Timeout exactly right");
 	my $read_nc = <NC>;
-	# nc gets killed here - I think expects a linefeed from stdin, so doesn't exit itself
 	close NC;
 	cmp_ok( $read_nc, 'eq', "foofoo", "Data received correctly" );
 }