annotate msie_refresh.t @ 1263:ea3c7659b6c1

Tests: handled early pidfile write on win32 in the run() routine. In addition to the present waiting for pidfile, which is insufficient on win32 due to the CreateProcess model, and may lead to rare startup races, search now for the certain error message which indicates started worker process. This change allows tolerating moderate hiccups on win32 hosts.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 19 Dec 2017 19:55:01 +0300
parents 05b2033f5377
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1056
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
1257
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
6 # Test for msie_refresh.
1056
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 use lib 'lib';
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20 ###############################################################################
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22 select STDERR; $| = 1;
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 select STDOUT; $| = 1;
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24
1257
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
25 my $t = Test::Nginx->new()->has(qw/http rewrite ssi/)->plan(5)
1056
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
26 ->write_file_expand('nginx.conf', <<'EOF');
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28 %%TEST_GLOBALS%%
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30 daemon off;
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32 events {
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33 }
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35 http {
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36 %%TEST_GLOBALS_HTTP%%
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38 server {
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39 listen 127.0.0.1:8080;
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40 server_name localhost;
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41
1257
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
42 msie_refresh on;
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
43
1056
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44 location / {
1257
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
45 return 301 text;
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
46 }
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
47
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
48 location /space {
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
49 return 301 "space ";
1056
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50 }
1257
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
51
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
52 location /error_page {
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
53 return 301;
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
54 error_page 301 text;
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
55 }
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
56
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
57 location /off {
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
58 msie_refresh off;
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
59 return 301 text;
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
60 }
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
61
1056
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62 location /ssi {
1257
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
63 ssi on;
1056
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
64 }
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 }
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66 }
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68 EOF
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
69
1257
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
70 $t->write_file('ssi.html', 'X<!--#include virtual="/" -->X');
1056
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
71 $t->run();
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
72
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
73 ###############################################################################
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
74
1257
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
75 like(get('/'), qr/Refresh.*URL=text"/, 'msie refresh');
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
76 like(get('/space'), qr/URL=space%20"/, 'msie refresh escaped url');
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
77 like(get('/error_page'), qr/URL=text"/, 'msie refresh error page');
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
78
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
79 unlike(get('/off'), qr/Refresh/, 'msie refresh disabled');
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
80
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
81 unlike(get('/ssi.html'), qr/^0\x0d\x0a?\x0d\x0a?\w/m, 'only final chunk');
1056
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
82
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
83 ###############################################################################
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
84
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
85 sub get {
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
86 my ($url, $extra) = @_;
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
87 return http(<<EOF);
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
88 GET $url HTTP/1.1
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
89 Host: localhost
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
90 Connection: close
1257
05b2033f5377 Tests: msie_refresh generic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1251
diff changeset
91 User-Agent: MSIE foo
1056
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
92
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
93 EOF
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
94 }
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
95
1e41a0de0772 Tests: various last_buf tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
96 ###############################################################################