diff options
Diffstat (limited to 'plugins/tests/check_curl.t')
| -rwxr-xr-x | plugins/tests/check_curl.t | 101 |
1 files changed, 55 insertions, 46 deletions
diff --git a/plugins/tests/check_curl.t b/plugins/tests/check_curl.t index 3c914830..52c5ad1c 100755 --- a/plugins/tests/check_curl.t +++ b/plugins/tests/check_curl.t | |||
| @@ -15,13 +15,14 @@ | |||
| 15 | # Email Address []:devel@monitoring-plugins.org | 15 | # Email Address []:devel@monitoring-plugins.org |
| 16 | 16 | ||
| 17 | use strict; | 17 | use strict; |
| 18 | use warnings; | ||
| 18 | use Test::More; | 19 | use Test::More; |
| 19 | use NPTest; | 20 | use NPTest; |
| 20 | use FindBin qw($Bin); | 21 | use FindBin qw($Bin); |
| 21 | 22 | ||
| 22 | $ENV{'LC_TIME'} = "C"; | 23 | $ENV{'LC_TIME'} = "C"; |
| 23 | 24 | ||
| 24 | my $common_tests = 73; | 25 | my $common_tests = 75; |
| 25 | my $ssl_only_tests = 8; | 26 | my $ssl_only_tests = 8; |
| 26 | # Check that all dependent modules are available | 27 | # Check that all dependent modules are available |
| 27 | eval "use HTTP::Daemon 6.01;"; | 28 | eval "use HTTP::Daemon 6.01;"; |
| @@ -178,6 +179,11 @@ sub run_server { | |||
| 178 | $c->send_basic_header; | 179 | $c->send_basic_header; |
| 179 | $c->send_crlf; | 180 | $c->send_crlf; |
| 180 | $c->send_response(HTTP::Response->new( 200, 'OK', undef, 'redirected' )); | 181 | $c->send_response(HTTP::Response->new( 200, 'OK', undef, 'redirected' )); |
| 182 | } elsif ($r->url->path eq "/redirect_rel") { | ||
| 183 | $c->send_basic_header(302); | ||
| 184 | $c->send_header("Location", "/redirect2" ); | ||
| 185 | $c->send_crlf; | ||
| 186 | $c->send_response('moved to /redirect2'); | ||
| 181 | } elsif ($r->url->path eq "/redir_timeout") { | 187 | } elsif ($r->url->path eq "/redir_timeout") { |
| 182 | $c->send_redirect( "/timeout" ); | 188 | $c->send_redirect( "/timeout" ); |
| 183 | } elsif ($r->url->path eq "/timeout") { | 189 | } elsif ($r->url->path eq "/timeout") { |
| @@ -240,21 +246,21 @@ SKIP: { | |||
| 240 | 246 | ||
| 241 | $result = NPTest->testCmd( "$command -p $port_https -S -C 14" ); | 247 | $result = NPTest->testCmd( "$command -p $port_https -S -C 14" ); |
| 242 | is( $result->return_code, 0, "$command -p $port_https -S -C 14" ); | 248 | is( $result->return_code, 0, "$command -p $port_https -S -C 14" ); |
| 243 | is( $result->output, "OK - Certificate 'Monitoring Plugins' will expire on $expiry.", "output ok" ); | 249 | like( $result->output, '/.*Certificate \'Monitoring Plugins\' will expire on ' . quotemeta($expiry) . '.*/', "output ok" ); |
| 244 | 250 | ||
| 245 | $result = NPTest->testCmd( "$command -p $port_https -S -C 14000" ); | 251 | $result = NPTest->testCmd( "$command -p $port_https -S -C 14000" ); |
| 246 | is( $result->return_code, 1, "$command -p $port_https -S -C 14000" ); | 252 | is( $result->return_code, 1, "$command -p $port_https -S -C 14000" ); |
| 247 | like( $result->output, '/WARNING - Certificate \'Monitoring Plugins\' expires in \d+ day\(s\) \(' . quotemeta($expiry) . '\)./', "output ok" ); | 253 | like( $result->output, '/.*Certificate \'Monitoring Plugins\' expires in \d+ day\(s\) \(' . quotemeta($expiry) . '\).*/', "output ok" ); |
| 248 | 254 | ||
| 249 | # Expired cert tests | 255 | # Expired cert tests |
| 250 | $result = NPTest->testCmd( "$command -p $port_https -S -C 13960,14000" ); | 256 | $result = NPTest->testCmd( "$command -p $port_https -S -C 13960,14000" ); |
| 251 | is( $result->return_code, 2, "$command -p $port_https -S -C 13960,14000" ); | 257 | is( $result->return_code, 2, "$command -p $port_https -S -C 13960,14000" ); |
| 252 | like( $result->output, '/CRITICAL - Certificate \'Monitoring Plugins\' expires in \d+ day\(s\) \(' . quotemeta($expiry) . '\)./', "output ok" ); | 258 | like( $result->output, '/.*Certificate \'Monitoring Plugins\' expires in \d+ day\(s\) \(' . quotemeta($expiry) . '\).*/', "output ok" ); |
| 253 | 259 | ||
| 254 | $result = NPTest->testCmd( "$command -p $port_https_expired -S -C 7" ); | 260 | $result = NPTest->testCmd( "$command -p $port_https_expired -S -C 7" ); |
| 255 | is( $result->return_code, 2, "$command -p $port_https_expired -S -C 7" ); | 261 | is( $result->return_code, 2, "$command -p $port_https_expired -S -C 7" ); |
| 256 | is( $result->output, | 262 | like( $result->output, |
| 257 | 'CRITICAL - Certificate \'Monitoring Plugins\' expired on Wed Jan 2 12:00:00 2008 +0000.', | 263 | '/.*Certificate \'Monitoring Plugins\' expired on Wed Jan\s+2 12:00:00 2008 \+0000.*/', |
| 258 | "output ok" ); | 264 | "output ok" ); |
| 259 | 265 | ||
| 260 | } | 266 | } |
| @@ -269,19 +275,19 @@ SKIP: { | |||
| 269 | $cmd = "./$plugin -H $virtual_host -I 127.0.0.1 -p $port_http -u /virtual_port -r ^$virtual_host:$port_http\$"; | 275 | $cmd = "./$plugin -H $virtual_host -I 127.0.0.1 -p $port_http -u /virtual_port -r ^$virtual_host:$port_http\$"; |
| 270 | $result = NPTest->testCmd( $cmd ); | 276 | $result = NPTest->testCmd( $cmd ); |
| 271 | is( $result->return_code, 0, $cmd); | 277 | is( $result->return_code, 0, $cmd); |
| 272 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 278 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 273 | 279 | ||
| 274 | # http with virtual port (!= 80) | 280 | # http with virtual port (!= 80) |
| 275 | $cmd = "./$plugin -H $virtual_host:$virtual_port -I 127.0.0.1 -p $port_http -u /virtual_port -r ^$virtual_host:$virtual_port\$"; | 281 | $cmd = "./$plugin -H $virtual_host:$virtual_port -I 127.0.0.1 -p $port_http -u /virtual_port -r ^$virtual_host:$virtual_port\$"; |
| 276 | $result = NPTest->testCmd( $cmd ); | 282 | $result = NPTest->testCmd( $cmd ); |
| 277 | is( $result->return_code, 0, $cmd); | 283 | is( $result->return_code, 0, $cmd); |
| 278 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 284 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 279 | 285 | ||
| 280 | # http with virtual port (80) | 286 | # http with virtual port (80) |
| 281 | $cmd = "./$plugin -H $virtual_host:80 -I 127.0.0.1 -p $port_http -u /virtual_port -r ^$virtual_host\$"; | 287 | $cmd = "./$plugin -H $virtual_host:80 -I 127.0.0.1 -p $port_http -u /virtual_port -r ^$virtual_host\$"; |
| 282 | $result = NPTest->testCmd( $cmd ); | 288 | $result = NPTest->testCmd( $cmd ); |
| 283 | is( $result->return_code, 0, $cmd); | 289 | is( $result->return_code, 0, $cmd); |
| 284 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 290 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 285 | } | 291 | } |
| 286 | 292 | ||
| 287 | # and the same for SSL | 293 | # and the same for SSL |
| @@ -291,19 +297,19 @@ SKIP: { | |||
| 291 | $cmd = "./$plugin -H $virtual_host -I 127.0.0.1 -p $port_https --ssl -u /virtual_port -r ^$virtual_host:$port_https\$"; | 297 | $cmd = "./$plugin -H $virtual_host -I 127.0.0.1 -p $port_https --ssl -u /virtual_port -r ^$virtual_host:$port_https\$"; |
| 292 | $result = NPTest->testCmd( $cmd ); | 298 | $result = NPTest->testCmd( $cmd ); |
| 293 | is( $result->return_code, 0, $cmd); | 299 | is( $result->return_code, 0, $cmd); |
| 294 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 300 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 295 | 301 | ||
| 296 | # https with virtual port (!= 443) | 302 | # https with virtual port (!= 443) |
| 297 | $cmd = "./$plugin -H $virtual_host:$virtual_port -I 127.0.0.1 -p $port_https --ssl -u /virtual_port -r ^$virtual_host:$virtual_port\$"; | 303 | $cmd = "./$plugin -H $virtual_host:$virtual_port -I 127.0.0.1 -p $port_https --ssl -u /virtual_port -r ^$virtual_host:$virtual_port\$"; |
| 298 | $result = NPTest->testCmd( $cmd ); | 304 | $result = NPTest->testCmd( $cmd ); |
| 299 | is( $result->return_code, 0, $cmd); | 305 | is( $result->return_code, 0, $cmd); |
| 300 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 306 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 301 | 307 | ||
| 302 | # https with virtual port (443) | 308 | # https with virtual port (443) |
| 303 | $cmd = "./$plugin -H $virtual_host:443 -I 127.0.0.1 -p $port_https --ssl -u /virtual_port -r ^$virtual_host\$"; | 309 | $cmd = "./$plugin -H $virtual_host:443 -I 127.0.0.1 -p $port_https --ssl -u /virtual_port -r ^$virtual_host\$"; |
| 304 | $result = NPTest->testCmd( $cmd ); | 310 | $result = NPTest->testCmd( $cmd ); |
| 305 | is( $result->return_code, 0, $cmd); | 311 | is( $result->return_code, 0, $cmd); |
| 306 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 312 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 307 | } | 313 | } |
| 308 | 314 | ||
| 309 | 315 | ||
| @@ -316,164 +322,167 @@ sub run_common_tests { | |||
| 316 | 322 | ||
| 317 | $result = NPTest->testCmd( "$command -u /file/root" ); | 323 | $result = NPTest->testCmd( "$command -u /file/root" ); |
| 318 | is( $result->return_code, 0, "/file/root"); | 324 | is( $result->return_code, 0, "/file/root"); |
| 319 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - 274 bytes in [\d\.]+ second/', "Output correct" ); | 325 | like( $result->output, '/.*HTTP/1.1 200 OK - 274 bytes in [\d\.]+ second.*/', "Output correct" ); |
| 320 | 326 | ||
| 321 | $result = NPTest->testCmd( "$command -u /file/root -s Root" ); | 327 | $result = NPTest->testCmd( "$command -u /file/root -s Root" ); |
| 322 | is( $result->return_code, 0, "/file/root search for string"); | 328 | is( $result->return_code, 0, "/file/root search for string"); |
| 323 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - 274 bytes in [\d\.]+ second/', "Output correct" ); | 329 | like( $result->output, '/.*HTTP/1.1 200 OK - 274 bytes in [\d\.]+ second.*/', "Output correct" ); |
| 324 | 330 | ||
| 325 | $result = NPTest->testCmd( "$command -u /file/root -s NonRoot" ); | 331 | $result = NPTest->testCmd( "$command -u /file/root -s NonRoot" ); |
| 326 | is( $result->return_code, 2, "Missing string check"); | 332 | is( $result->return_code, 2, "Missing string check"); |
| 327 | like( $result->output, qr%^HTTP CRITICAL: HTTP/1\.1 200 OK - string 'NonRoot' not found on 'https?://127\.0\.0\.1:\d+/file/root'%, "Shows search string and location"); | 333 | like( $result->output, qr%string 'NonRoot' not found on 'https?://127\.0\.0\.1:\d+/file/root'%, "Shows search string and location"); |
| 328 | 334 | ||
| 329 | $result = NPTest->testCmd( "$command -u /file/root -s NonRootWithOver30charsAndMoreFunThanAWetFish" ); | 335 | $result = NPTest->testCmd( "$command -u /file/root -s NonRootWithOver30charsAndMoreFunThanAWetFish" ); |
| 330 | is( $result->return_code, 2, "Missing string check"); | 336 | is( $result->return_code, 2, "Missing string check"); |
| 331 | like( $result->output, qr%HTTP CRITICAL: HTTP/1\.1 200 OK - string 'NonRootWithOver30charsAndM...' not found on 'https?://127\.0\.0\.1:\d+/file/root'%, "Shows search string and location"); | 337 | like( $result->output, qr%string 'NonRootWithOver30charsAndM...' not found on 'https?://127\.0\.0\.1:\d+/file/root'%, "Shows search string and location"); |
| 332 | 338 | ||
| 333 | $result = NPTest->testCmd( "$command -u /header_check -d foo" ); | 339 | $result = NPTest->testCmd( "$command -u /header_check -d foo" ); |
| 334 | is( $result->return_code, 0, "header_check search for string"); | 340 | is( $result->return_code, 0, "header_check search for string"); |
| 335 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - 96 bytes in [\d\.]+ second/', "Output correct" ); | 341 | like( $result->output, '/.*HTTP/1.1 200 OK - 96 bytes in [\d\.]+ second.*/', "Output correct" ); |
| 336 | 342 | ||
| 337 | $result = NPTest->testCmd( "$command -u /header_check -d bar" ); | 343 | $result = NPTest->testCmd( "$command -u /header_check -d bar" ); |
| 338 | is( $result->return_code, 2, "Missing header string check"); | 344 | is( $result->return_code, 2, "Missing header string check"); |
| 339 | like( $result->output, qr%^HTTP CRITICAL: HTTP/1\.1 200 OK - header 'bar' not found on 'https?://127\.0\.0\.1:\d+/header_check'%, "Shows search string and location"); | 345 | like( $result->output, qr%header 'bar' not found on 'https?://127\.0\.0\.1:\d+/header_check'%, "Shows search string and location"); |
| 340 | 346 | ||
| 341 | $result = NPTest->testCmd( "$command -u /header_broken_check" ); | 347 | $result = NPTest->testCmd( "$command -u /header_broken_check" ); |
| 342 | is( $result->return_code, 0, "header_check search for string"); | 348 | is( $result->return_code, 0, "header_check search for string"); |
| 343 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - 138 bytes in [\d\.]+ second/', "Output correct" ); | 349 | like( $result->output, '/.*HTTP/1.1 200 OK - 138 bytes in [\d\.]+ second.*/', "Output correct" ); |
| 344 | 350 | ||
| 345 | my $cmd; | 351 | my $cmd; |
| 346 | $cmd = "$command -u /slow"; | 352 | $cmd = "$command -u /slow"; |
| 347 | $result = NPTest->testCmd( $cmd ); | 353 | $result = NPTest->testCmd( $cmd ); |
| 348 | is( $result->return_code, 0, "$cmd"); | 354 | is( $result->return_code, 0, "$cmd"); |
| 349 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 355 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 350 | $result->output =~ /in ([\d\.]+) second/; | 356 | $result->output =~ /in ([\d\.]+) second/; |
| 351 | cmp_ok( $1, ">", 1, "Time is > 1 second" ); | 357 | cmp_ok( $1, ">", 1, "Time is > 1 second" ); |
| 352 | 358 | ||
| 353 | $cmd = "$command -u /statuscode/200"; | 359 | $cmd = "$command -u /statuscode/200"; |
| 354 | $result = NPTest->testCmd( $cmd ); | 360 | $result = NPTest->testCmd( $cmd ); |
| 355 | is( $result->return_code, 0, $cmd); | 361 | is( $result->return_code, 0, $cmd); |
| 356 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 362 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 357 | 363 | ||
| 358 | $cmd = "$command -u /statuscode/200 -e 200"; | 364 | $cmd = "$command -u /statuscode/200 -e 200"; |
| 359 | $result = NPTest->testCmd( $cmd ); | 365 | $result = NPTest->testCmd( $cmd ); |
| 360 | is( $result->return_code, 0, $cmd); | 366 | is( $result->return_code, 0, $cmd); |
| 361 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - Status line output matched "200" - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 367 | like( $result->output, '/.*Status line output matched "200".*/', "Output correct: ".$result->output ); |
| 362 | 368 | ||
| 363 | $cmd = "$command -u /statuscode/201"; | 369 | $cmd = "$command -u /statuscode/201"; |
| 364 | $result = NPTest->testCmd( $cmd ); | 370 | $result = NPTest->testCmd( $cmd ); |
| 365 | is( $result->return_code, 0, $cmd); | 371 | is( $result->return_code, 0, $cmd); |
| 366 | like( $result->output, '/^HTTP OK: HTTP/1.1 201 Created - \d+ bytes in [\d\.]+ second /', "Output correct: ".$result->output ); | 372 | like( $result->output, '/.*HTTP/1.1 201 Created - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 367 | 373 | ||
| 368 | $cmd = "$command -u /statuscode/201 -e 201"; | 374 | $cmd = "$command -u /statuscode/201 -e 201"; |
| 369 | $result = NPTest->testCmd( $cmd ); | 375 | $result = NPTest->testCmd( $cmd ); |
| 370 | is( $result->return_code, 0, $cmd); | 376 | is( $result->return_code, 0, $cmd); |
| 371 | like( $result->output, '/^HTTP OK: HTTP/1.1 201 Created - Status line output matched "201" - \d+ bytes in [\d\.]+ second /', "Output correct: ".$result->output ); | 377 | like( $result->output, '/.*Status line output matched "201".*/', "Output correct: ".$result->output ); |
| 372 | 378 | ||
| 373 | $cmd = "$command -u /statuscode/201 -e 200"; | 379 | $cmd = "$command -u /statuscode/201 -e 200"; |
| 374 | $result = NPTest->testCmd( $cmd ); | 380 | $result = NPTest->testCmd( $cmd ); |
| 375 | is( $result->return_code, 2, $cmd); | 381 | is( $result->return_code, 2, $cmd); |
| 376 | like( $result->output, '/^HTTP CRITICAL - Invalid HTTP response received from host on port \d+: HTTP/1.1 201 Created/', "Output correct: ".$result->output ); | 382 | like( $result->output, '/.*Invalid HTTP response received from host on port \d+: HTTP/1.1 201 Created.*/', "Output correct: ".$result->output ); |
| 377 | 383 | ||
| 378 | $cmd = "$command -u /statuscode/200 -e 200,201,202"; | 384 | $cmd = "$command -u /statuscode/200 -e 200,201,202"; |
| 379 | $result = NPTest->testCmd( $cmd ); | 385 | $result = NPTest->testCmd( $cmd ); |
| 380 | is( $result->return_code, 0, $cmd); | 386 | is( $result->return_code, 0, $cmd); |
| 381 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - Status line output matched "200,201,202" - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 387 | like( $result->output, '/.*Status line output matched "200,201,202".*/', "Output correct: ".$result->output ); |
| 382 | 388 | ||
| 383 | $cmd = "$command -u /statuscode/201 -e 200,201,202"; | 389 | $cmd = "$command -u /statuscode/201 -e 200,201,202"; |
| 384 | $result = NPTest->testCmd( $cmd ); | 390 | $result = NPTest->testCmd( $cmd ); |
| 385 | is( $result->return_code, 0, $cmd); | 391 | is( $result->return_code, 0, $cmd); |
| 386 | like( $result->output, '/^HTTP OK: HTTP/1.1 201 Created - Status line output matched "200,201,202" - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 392 | like( $result->output, '/.*Status line output matched "200,201,202".*/', "Output correct: ".$result->output ); |
| 387 | 393 | ||
| 388 | $cmd = "$command -u /statuscode/203 -e 200,201,202"; | 394 | $cmd = "$command -u /statuscode/203 -e 200,201,202"; |
| 389 | $result = NPTest->testCmd( $cmd ); | 395 | $result = NPTest->testCmd( $cmd ); |
| 390 | is( $result->return_code, 2, $cmd); | 396 | is( $result->return_code, 2, $cmd); |
| 391 | like( $result->output, '/^HTTP CRITICAL - Invalid HTTP response received from host on port (\d+): HTTP/1.1 203 Non-Authoritative Information/', "Output correct: ".$result->output ); | 397 | like( $result->output, '/.*Invalid HTTP response received from host on port (\d+): HTTP/1.1 203 Non-Authoritative Information.*/', "Output correct: ".$result->output ); |
| 392 | 398 | ||
| 393 | $cmd = "$command -j HEAD -u /method"; | 399 | $cmd = "$command -j HEAD -u /method"; |
| 394 | $result = NPTest->testCmd( $cmd ); | 400 | $result = NPTest->testCmd( $cmd ); |
| 395 | is( $result->return_code, 0, $cmd); | 401 | is( $result->return_code, 0, $cmd); |
| 396 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 HEAD - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 402 | like( $result->output, '/.*HTTP/1.1 200 HEAD - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 397 | 403 | ||
| 398 | $cmd = "$command -j POST -u /method"; | 404 | $cmd = "$command -j POST -u /method"; |
| 399 | $result = NPTest->testCmd( $cmd ); | 405 | $result = NPTest->testCmd( $cmd ); |
| 400 | is( $result->return_code, 0, $cmd); | 406 | is( $result->return_code, 0, $cmd); |
| 401 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 POST - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 407 | like( $result->output, '/.*HTTP/1.1 200 POST - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 402 | 408 | ||
| 403 | $cmd = "$command -j GET -u /method"; | 409 | $cmd = "$command -j GET -u /method"; |
| 404 | $result = NPTest->testCmd( $cmd ); | 410 | $result = NPTest->testCmd( $cmd ); |
| 405 | is( $result->return_code, 0, $cmd); | 411 | is( $result->return_code, 0, $cmd); |
| 406 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 GET - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 412 | like( $result->output, '/.*HTTP/1.1 200 GET - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 407 | 413 | ||
| 408 | $cmd = "$command -u /method"; | 414 | $cmd = "$command -u /method"; |
| 409 | $result = NPTest->testCmd( $cmd ); | 415 | $result = NPTest->testCmd( $cmd ); |
| 410 | is( $result->return_code, 0, $cmd); | 416 | is( $result->return_code, 0, $cmd); |
| 411 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 GET - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 417 | like( $result->output, '/.*HTTP/1.1 200 GET - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 412 | 418 | ||
| 413 | $cmd = "$command -P foo -u /method"; | 419 | $cmd = "$command -P foo -u /method"; |
| 414 | $result = NPTest->testCmd( $cmd ); | 420 | $result = NPTest->testCmd( $cmd ); |
| 415 | is( $result->return_code, 0, $cmd); | 421 | is( $result->return_code, 0, $cmd); |
| 416 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 POST - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 422 | like( $result->output, '/.*HTTP/1.1 200 POST - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 417 | 423 | ||
| 418 | $cmd = "$command -j DELETE -u /method"; | 424 | $cmd = "$command -j DELETE -u /method"; |
| 419 | $result = NPTest->testCmd( $cmd ); | 425 | $result = NPTest->testCmd( $cmd ); |
| 420 | is( $result->return_code, 1, $cmd); | 426 | is( $result->return_code, 1, $cmd); |
| 421 | like( $result->output, '/^HTTP WARNING: HTTP/1.1 405 Method Not Allowed/', "Output correct: ".$result->output ); | 427 | like( $result->output, '/.*HTTP/1.1 405 Method Not Allowed.*/', "Output correct: ".$result->output ); |
| 422 | 428 | ||
| 423 | $cmd = "$command -j foo -u /method"; | 429 | $cmd = "$command -j foo -u /method"; |
| 424 | $result = NPTest->testCmd( $cmd ); | 430 | $result = NPTest->testCmd( $cmd ); |
| 425 | is( $result->return_code, 2, $cmd); | 431 | is( $result->return_code, 2, $cmd); |
| 426 | like( $result->output, '/^HTTP CRITICAL: HTTP/1.1 501 Not Implemented/', "Output correct: ".$result->output ); | 432 | like( $result->output, '/.*HTTP/1.1 501 Not Implemented.*/', "Output correct: ".$result->output ); |
| 427 | 433 | ||
| 428 | $cmd = "$command -P stufftoinclude -u /postdata -s POST:stufftoinclude"; | 434 | $cmd = "$command -P stufftoinclude -u /postdata -s POST:stufftoinclude"; |
| 429 | $result = NPTest->testCmd( $cmd ); | 435 | $result = NPTest->testCmd( $cmd ); |
| 430 | is( $result->return_code, 0, $cmd); | 436 | is( $result->return_code, 0, $cmd); |
| 431 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 437 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 432 | 438 | ||
| 433 | $cmd = "$command -j PUT -P stufftoinclude -u /postdata -s PUT:stufftoinclude"; | 439 | $cmd = "$command -j PUT -P stufftoinclude -u /postdata -s PUT:stufftoinclude"; |
| 434 | $result = NPTest->testCmd( $cmd ); | 440 | $result = NPTest->testCmd( $cmd ); |
| 435 | is( $result->return_code, 0, $cmd); | 441 | is( $result->return_code, 0, $cmd); |
| 436 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 442 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 437 | 443 | ||
| 438 | # To confirm that the free doesn't segfault | 444 | # To confirm that the free doesn't segfault |
| 439 | $cmd = "$command -P stufftoinclude -j PUT -u /postdata -s PUT:stufftoinclude"; | 445 | $cmd = "$command -P stufftoinclude -j PUT -u /postdata -s PUT:stufftoinclude"; |
| 440 | $result = NPTest->testCmd( $cmd ); | 446 | $result = NPTest->testCmd( $cmd ); |
| 441 | is( $result->return_code, 0, $cmd); | 447 | is( $result->return_code, 0, $cmd); |
| 442 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 448 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 443 | 449 | ||
| 444 | $cmd = "$command -u /redirect"; | 450 | $cmd = "$command -u /redirect"; |
| 445 | $result = NPTest->testCmd( $cmd ); | 451 | $result = NPTest->testCmd( $cmd ); |
| 446 | is( $result->return_code, 0, $cmd); | 452 | is( $result->return_code, 0, $cmd); |
| 447 | like( $result->output, '/^HTTP OK: HTTP/1.1 301 Moved Permanently - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 453 | like( $result->output, '/.*HTTP/1.1 301 Moved Permanently - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 448 | 454 | ||
| 449 | $cmd = "$command -f follow -u /redirect"; | 455 | $cmd = "$command -f follow -u /redirect"; |
| 450 | $result = NPTest->testCmd( $cmd ); | 456 | $result = NPTest->testCmd( $cmd ); |
| 451 | is( $result->return_code, 0, $cmd); | 457 | is( $result->return_code, 0, $cmd); |
| 452 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 458 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 453 | 459 | ||
| 454 | $cmd = "$command -u /redirect -k 'follow: me'"; | 460 | $cmd = "$command -u /redirect -k 'follow: me'"; |
| 455 | $result = NPTest->testCmd( $cmd ); | 461 | $result = NPTest->testCmd( $cmd ); |
| 456 | is( $result->return_code, 0, $cmd); | 462 | is( $result->return_code, 0, $cmd); |
| 457 | like( $result->output, '/^HTTP OK: HTTP/1.1 301 Moved Permanently - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 463 | like( $result->output, '/.*HTTP/1.1 301 Moved Permanently - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 458 | 464 | ||
| 459 | $cmd = "$command -f follow -u /redirect -k 'follow: me'"; | 465 | $cmd = "$command -f follow -u /redirect -k 'follow: me'"; |
| 460 | $result = NPTest->testCmd( $cmd ); | 466 | $result = NPTest->testCmd( $cmd ); |
| 461 | is( $result->return_code, 0, $cmd); | 467 | is( $result->return_code, 0, $cmd); |
| 462 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 468 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 463 | 469 | ||
| 464 | $cmd = "$command -f sticky -u /redirect -k 'follow: me'"; | 470 | $cmd = "$command -f sticky -u /redirect -k 'follow: me'"; |
| 465 | $result = NPTest->testCmd( $cmd ); | 471 | $result = NPTest->testCmd( $cmd ); |
| 466 | is( $result->return_code, 0, $cmd); | 472 | is( $result->return_code, 0, $cmd); |
| 467 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 473 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 468 | 474 | ||
| 469 | $cmd = "$command -f stickyport -u /redirect -k 'follow: me'"; | 475 | $cmd = "$command -f stickyport -u /redirect -k 'follow: me'"; |
| 470 | $result = NPTest->testCmd( $cmd ); | 476 | $result = NPTest->testCmd( $cmd ); |
| 471 | is( $result->return_code, 0, $cmd); | 477 | is( $result->return_code, 0, $cmd); |
| 472 | like( $result->output, '/^HTTP OK: HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second/', "Output correct: ".$result->output ); | 478 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); |
| 473 | 479 | ||
| 474 | # These tests may block | 480 | $cmd = "$command -f follow -u /redirect_rel -s redirected"; |
| 475 | print "ALRM\n"; | 481 | $result = NPTest->testCmd( $cmd ); |
| 482 | is( $result->return_code, 0, $cmd); | ||
| 483 | like( $result->output, '/.*HTTP/1.1 200 OK - \d+ bytes in [\d\.]+ second.*/', "Output correct: ".$result->output ); | ||
| 476 | 484 | ||
| 485 | # These tests may block | ||
| 477 | # stickyport - on full urlS port is set back to 80 otherwise | 486 | # stickyport - on full urlS port is set back to 80 otherwise |
| 478 | $cmd = "$command -f stickyport -u /redir_external -t 5 -s redirected"; | 487 | $cmd = "$command -f stickyport -u /redir_external -t 5 -s redirected"; |
| 479 | eval { | 488 | eval { |
