annotate gzip_flush.t @ 1427:eb1d883305ea

Tests: avoid edge cases in upstream random two test. Unavailable servers contribute to the number of attempts, if selected, before the balancer would fall back to the default round-robin method. This means that it's quite possible to get server with more connections. To facilitate with selecting two alive servers, down server was removed from the upstream configuration at the cost of slightly worse coverage.
author Sergey Kandaurov <pluknet@nginx.com>
date Thu, 10 Jan 2019 17:42:34 +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 ###############################################################################