changeset 627:cb35a9ec4428

Tests: adjusted proxy_limit_rate test timeouts. Sometimes, on slow hosts, it may get quite some time to complete request delayed with proxy_limit_rate, and we still need to known how much it took. The timeout value used internally in the http() library routine is not enough.
author Sergey Kandaurov <pluknet@nginx.com>
date Thu, 09 Jul 2015 13:46:43 +0300
parents 5f9dfe85a1f2
children 0940773278c7
files proxy_limit_rate.t
diffstat 1 files changed, 28 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/proxy_limit_rate.t
+++ b/proxy_limit_rate.t
@@ -58,7 +58,8 @@ EOF
 
 ###############################################################################
 
-my $r = http_get('/');
+my $s = http_get('/', start => 1);
+my $r = http_end_gentle($s);
 
 my ($t1) = $r =~ /X-Msec: (\d+)/;
 my $diff = time() - $t1;
@@ -69,3 +70,29 @@ cmp_ok(abs($diff - 3), '<=', 1, 'proxy_l
 like($r, qr/^(XXXXXXXXXX){4000}\x0d?\x0a?$/m, 'response body');
 
 ###############################################################################
+
+sub http_end_gentle {
+	my ($s) = @_;
+	my $reply;
+
+	eval {
+		local $SIG{ALRM} = sub { die "timeout\n" };
+		local $SIG{PIPE} = sub { die "sigpipe\n" };
+		alarm(8);
+
+		local $/;
+		$reply = $s->getline();
+
+		alarm(0);
+	};
+	alarm(0);
+	if ($@) {
+		log_in("died: $@");
+		return undef;
+	}
+
+	log_in($reply);
+	return $reply;
+}
+
+###############################################################################