diff options
Diffstat (limited to 'plugins/tests')
-rwxr-xr-x | plugins/tests/check_http.t | 48 |
1 files changed, 36 insertions, 12 deletions
diff --git a/plugins/tests/check_http.t b/plugins/tests/check_http.t index b0df960..88b77d3 100755 --- a/plugins/tests/check_http.t +++ b/plugins/tests/check_http.t | |||
@@ -125,11 +125,11 @@ sub run_server { | |||
125 | } elsif ($r->url->path eq "/redirect") { | 125 | } elsif ($r->url->path eq "/redirect") { |
126 | $c->send_redirect( "/redirect2" ); | 126 | $c->send_redirect( "/redirect2" ); |
127 | } elsif ($r->url->path eq "/redir_external") { | 127 | } elsif ($r->url->path eq "/redir_external") { |
128 | $c->send_redirect( "http://169.254.169.254/redirect2" ); | 128 | $c->send_redirect(($d->isa('HTTP::Daemon::SSL') ? "https" : "http") . "://169.254.169.254/redirect2" ); |
129 | } elsif ($r->url->path eq "/redirect2") { | 129 | } elsif ($r->url->path eq "/redirect2") { |
130 | $c->send_basic_header; | 130 | $c->send_basic_header; |
131 | $c->send_crlf; | 131 | $c->send_crlf; |
132 | $c->send_response("redirected"); | 132 | $c->send_response(HTTP::Response->new( 200, 'OK', undef, 'redirected' )); |
133 | } elsif ($r->url->path eq "/redir_timeout") { | 133 | } elsif ($r->url->path eq "/redir_timeout") { |
134 | $c->send_redirect( "/timeout" ); | 134 | $c->send_redirect( "/timeout" ); |
135 | } elsif ($r->url->path eq "/timeout") { | 135 | } elsif ($r->url->path eq "/timeout") { |
@@ -157,7 +157,7 @@ if ($ARGV[0] && $ARGV[0] eq "-d") { | |||
157 | } | 157 | } |
158 | } | 158 | } |
159 | 159 | ||
160 | my $common_tests = 55; | 160 | my $common_tests = 62; |
161 | my $ssl_only_tests = 6; | 161 | my $ssl_only_tests = 6; |
162 | if (-x "./check_http") { | 162 | if (-x "./check_http") { |
163 | plan tests => $common_tests * 2 + $ssl_only_tests; | 163 | plan tests => $common_tests * 2 + $ssl_only_tests; |
@@ -181,7 +181,6 @@ SKIP: { | |||
181 | is( $result->return_code, 1, "$command -p $port_https -S -C 14000" ); | 181 | is( $result->return_code, 1, "$command -p $port_https -S -C 14000" ); |
182 | like( $result->output, '/WARNING - Certificate expires in \d+ day\(s\) \(03/03/2019 21:41\)./', "output ok" ); | 182 | like( $result->output, '/WARNING - Certificate expires in \d+ day\(s\) \(03/03/2019 21:41\)./', "output ok" ); |
183 | 183 | ||
184 | |||
185 | # Expired cert tests | 184 | # Expired cert tests |
186 | $result = NPTest->testCmd( "$command -p $port_https_expired -S -C 7" ); | 185 | $result = NPTest->testCmd( "$command -p $port_https_expired -S -C 7" ); |
187 | is( $result->return_code, 2, "$command -p $port_https_expired -S -C 7" ); | 186 | is( $result->return_code, 2, "$command -p $port_https_expired -S -C 7" ); |
@@ -316,7 +315,6 @@ sub run_common_tests { | |||
316 | is( $result->return_code, 0, $cmd); | 315 | is( $result->return_code, 0, $cmd); |
317 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 316 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); |
318 | 317 | ||
319 | |||
320 | $cmd = "$command -u /redirect -k 'follow: me'"; | 318 | $cmd = "$command -u /redirect -k 'follow: me'"; |
321 | $result = NPTest->testCmd( $cmd ); | 319 | $result = NPTest->testCmd( $cmd ); |
322 | is( $result->return_code, 0, $cmd); | 320 | is( $result->return_code, 0, $cmd); |
@@ -327,25 +325,50 @@ sub run_common_tests { | |||
327 | is( $result->return_code, 0, $cmd); | 325 | is( $result->return_code, 0, $cmd); |
328 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 326 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); |
329 | 327 | ||
328 | $cmd = "$command -f sticky -u /redirect -k 'follow: me'"; | ||
329 | $result = NPTest->testCmd( $cmd ); | ||
330 | is( $result->return_code, 0, $cmd); | ||
331 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | ||
332 | |||
333 | $cmd = "$command -f stickyport -u /redirect -k 'follow: me'"; | ||
334 | $result = NPTest->testCmd( $cmd ); | ||
335 | is( $result->return_code, 0, $cmd); | ||
336 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | ||
337 | |||
330 | # These tests may block | 338 | # These tests may block |
331 | print "ALRM\n"; | 339 | print "ALRM\n"; |
332 | 340 | ||
333 | $cmd = "$command -f sticky -u /redir_external -t 5"; | 341 | # stickyport - on full urlS port is set back to 80 otherwise |
342 | $cmd = "$command -f stickyport -u /redir_external -t 5 -s redirected"; | ||
334 | eval { | 343 | eval { |
335 | local $SIG{ALRM} = sub { die "alarm\n" }; | 344 | local $SIG{ALRM} = sub { die "alarm\n" }; |
336 | alarm(2); | 345 | alarm(2); |
337 | $result = NPTest->testCmd( $cmd ); | 346 | $result = NPTest->testCmd( $cmd ); |
338 | alarm(0); }; | 347 | alarm(0); }; |
339 | isnt( $@, "alarm\n", $cmd); | 348 | isnt( $@, "alarm\n", $cmd ); |
349 | is( $result->return_code, 0, $cmd ); | ||
340 | 350 | ||
341 | # Will this one work everywhere??? | 351 | # Let's hope there won't be any web server on :80 returning "redirected"! |
342 | $cmd = "$command -f follow -u /redir_external -t 5"; | 352 | $cmd = "$command -f sticky -u /redir_external -t 5 -s redirected"; |
343 | eval { | 353 | eval { |
344 | local $SIG{ALRM} = sub { die "alarm\n" }; | 354 | local $SIG{ALRM} = sub { die "alarm\n" }; |
345 | alarm(2); | 355 | alarm(2); |
346 | $result = NPTest->testCmd( $cmd ); | 356 | $result = NPTest->testCmd( $cmd ); |
347 | alarm(0); }; | 357 | alarm(0); }; |
348 | is( $@, "alarm\n", $cmd); | 358 | isnt( $@, "alarm\n", $cmd ); |
359 | isnt( $result->return_code, 0, $cmd ); | ||
360 | |||
361 | # Test an external address - timeout | ||
362 | SKIP: { | ||
363 | skip "This doesn't seems to work all the time", 1 unless ($ENV{HTTP_EXTERNAL}); | ||
364 | $cmd = "$command -f follow -u /redir_external -t 5"; | ||
365 | eval { | ||
366 | local $SIG{ALRM} = sub { die "alarm\n" }; | ||
367 | alarm(2); | ||
368 | $result = NPTest->testCmd( $cmd ); | ||
369 | alarm(0); }; | ||
370 | is( $@, "alarm\n", $cmd ); | ||
371 | } | ||
349 | 372 | ||
350 | $cmd = "$command -u /timeout -t 5"; | 373 | $cmd = "$command -u /timeout -t 5"; |
351 | eval { | 374 | eval { |
@@ -353,7 +376,7 @@ sub run_common_tests { | |||
353 | alarm(2); | 376 | alarm(2); |
354 | $result = NPTest->testCmd( $cmd ); | 377 | $result = NPTest->testCmd( $cmd ); |
355 | alarm(0); }; | 378 | alarm(0); }; |
356 | is( $@, "alarm\n", $cmd); | 379 | is( $@, "alarm\n", $cmd ); |
357 | 380 | ||
358 | $cmd = "$command -f follow -u /redir_timeout -t 2"; | 381 | $cmd = "$command -f follow -u /redir_timeout -t 2"; |
359 | eval { | 382 | eval { |
@@ -361,6 +384,7 @@ sub run_common_tests { | |||
361 | alarm(5); | 384 | alarm(5); |
362 | $result = NPTest->testCmd( $cmd ); | 385 | $result = NPTest->testCmd( $cmd ); |
363 | alarm(0); }; | 386 | alarm(0); }; |
364 | isnt( $@, "alarm\n", $cmd); | 387 | isnt( $@, "alarm\n", $cmd ); |
365 | 388 | ||
366 | } | 389 | } |
390 | |||