annotate gzip_flush.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 882267679006
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
143
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for gzip filter module.
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx qw/ :DEFAULT :gzip /;
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 my $t = Test::Nginx->new()->has(qw/http gzip perl/)->plan(2)
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 ->write_file_expand('nginx.conf', <<'EOF');
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 %%TEST_GLOBALS%%
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28
249
6a0d934950bc Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents: 224
diff changeset
29 daemon off;
143
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31 events {
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32 }
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 http {
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 %%TEST_GLOBALS_HTTP%%
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
38 listen 127.0.0.1:8080;
143
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 server_name localhost;
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41 gzip on;
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 gzip_min_length 0;
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 location / {
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 perl 'sub {
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 my $r = shift;
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 $r->send_http_header("text/html");
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 return OK if $r->header_only;
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 $r->print("DA");
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 $r->flush();
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 $r->flush();
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52 $r->print("TA");
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 return OK;
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 }';
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
55 }
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56 }
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 }
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 EOF
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 $t->run();
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63 ###############################################################################
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 like(http_get('/'), qr/DATA/, 'request with flush');
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66
224
ba992cfdc606 Tests: remove TODO from tests which pass in 1.2.x.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
67 # gzip filter wasn't able to handle empty flush buffers, see
143
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 # http://nginx.org/pipermail/nginx/2010-November/023693.html
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70 http_gzip_like(http_gzip_request('/'), qr/DATA/, 'gzip request with flush');
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71
e8546edb0267 Tests: gunzip empty flush buffers test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72 ###############################################################################