Mercurial > hg > nginx-tests
view http_location.t @ 289:cbd4f6eca676
Tests: check if started process is alive while starting nginx.
This allows faster test execution in case of startup failures, e.g.
due to configuration errors. Note that just adding waitpid() to
waitforfile() causes hang on win32 in wait(). To fix this, wait()
calls were changed to waitpid() with pid specified.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Mon, 27 May 2013 17:15:17 +0400 |
parents | 6a0d934950bc |
children | 98c6af2a5138 |
line wrap: on
line source
#!/usr/bin/perl # (C) Maxim Dounin # Tests for location selection. ############################################################################### use warnings; use strict; use Test::More; BEGIN { use FindBin; chdir($FindBin::Bin); } use lib 'lib'; use Test::Nginx; ############################################################################### select STDERR; $| = 1; select STDOUT; $| = 1; my $t = Test::Nginx->new()->has(qw/http rewrite/)->plan(8) ->write_file_expand('nginx.conf', <<'EOF'); %%TEST_GLOBALS%% daemon off; events { } http { %%TEST_GLOBALS_HTTP%% server { listen 127.0.0.1:8080; server_name localhost; location = / { add_header X-Location exactlyroot; return 204; } location / { add_header X-Location root; return 204; } location ^~ /images/ { add_header X-Location images; return 204; } location ~* \.(gif|jpg|jpeg)$ { add_header X-Location regex; return 204; } location ~ casefull { add_header X-Location casefull; return 204; } } } EOF $t->run(); ############################################################################### like(http_get('/'), qr/X-Location: exactlyroot/, 'exactlyroot'); like(http_get('/x'), qr/X-Location: root/, 'root'); like(http_get('/images/t.gif'), qr/X-Location: images/, 'images'); like(http_get('/t.gif'), qr/X-Location: regex/, 'regex'); like(http_get('/t.GIF'), qr/X-Location: regex/, 'regex with mungled case'); like(http_get('/casefull/t.gif'), qr/X-Location: regex/, 'first regex wins'); like(http_get('/casefull/'), qr/X-Location: casefull/, 'casefull regex'); SKIP: { skip 'caseless os', 1 if $^O eq 'MSWin32' or $^O eq 'darwin'; like(http_get('/CASEFULL/'), qr/X-Location: root/, 'casefull regex do not match wrong case'); } ###############################################################################