-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgzip_alloc.t
169 lines (138 loc) · 5.88 KB
/
gzip_alloc.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
#!/usr/bin/perl
# (C) Maxim Dounin
# Tests for nginx gzip filter module, preallocation sizes with various
# settings.
###############################################################################
use warnings;
use strict;
use Test::More;
BEGIN { use FindBin; chdir($FindBin::Bin); }
use lib 'lib';
use Test::Nginx qw/ :DEFAULT :gzip /;
###############################################################################
select STDERR; $| = 1;
select STDOUT; $| = 1;
my $t = Test::Nginx->new()->has(qw/http gzip/)->plan(50);
$t->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 / {
gzip on;
}
location /max/ {
alias %%TESTDIR%%/;
gzip on;
gzip_window 32k;
gzip_hash 128k;
}
location /min/ {
alias %%TESTDIR%%/;
gzip on;
gzip_window 512;
gzip_hash 512;
}
location /minw/ {
alias %%TESTDIR%%/;
gzip on;
gzip_window 512;
gzip_hash 128k;
}
location /minh/ {
alias %%TESTDIR%%/;
gzip on;
gzip_window 32k;
gzip_hash 512;
}
}
}
EOF
$t->write_file('64.html', 'X' x 64);
$t->write_file('512.html', 'X' x 512);
$t->write_file('1k.html', 'X' x 1024);
$t->write_file('2k.html', 'X' x 2048);
$t->write_file('4k.html', 'X' x 4096);
$t->write_file('8k.html', 'X' x 8196);
$t->write_file('16k.html', 'X' x 16384);
$t->write_file('32k.html', 'X' x 32768);
$t->write_file('64k.html', 'X' x 65536);
$t->write_file('128k.html', 'X' x 131072);
$t->run();
###############################################################################
http_gzip_like(http_gzip_request('/64.html'), qr/^X{64}\Z/, 'gzip 64');
http_gzip_like(http_gzip_request('/512.html'), qr/^X{512}\Z/, 'gzip 512');
http_gzip_like(http_gzip_request('/1k.html'), qr/^X{1024}\Z/, 'gzip 1k');
http_gzip_like(http_gzip_request('/2k.html'), qr/^X{2048}\Z/, 'gzip 2k');
http_gzip_like(http_gzip_request('/4k.html'), qr/^X{2048}X+\Z/, 'gzip 4k');
http_gzip_like(http_gzip_request('/8k.html'), qr/^X{2048}X+\Z/, 'gzip 8k');
http_gzip_like(http_gzip_request('/16k.html'), qr/^X{2048}X+\Z/, 'gzip 16k');
http_gzip_like(http_gzip_request('/32k.html'), qr/^X{2048}X+\Z/, 'gzip 32k');
http_gzip_like(http_gzip_request('/64k.html'), qr/^X{2048}X+\Z/, 'gzip 64k');
http_gzip_like(http_gzip_request('/128k.html'), qr/^X{2048}X+\Z/, 'gzip 128k');
http_gzip_like(http_gzip_request('/max/64.html'), qr/^X+\Z/, 'gzip max 64');
http_gzip_like(http_gzip_request('/max/512.html'), qr/^X+\Z/, 'gzip max 512');
http_gzip_like(http_gzip_request('/max/1k.html'), qr/^X+\Z/, 'gzip max 1k');
http_gzip_like(http_gzip_request('/max/2k.html'), qr/^X+\Z/, 'gzip max 2k');
http_gzip_like(http_gzip_request('/max/4k.html'), qr/^X+\Z/, 'gzip max 4k');
http_gzip_like(http_gzip_request('/max/8k.html'), qr/^X+\Z/, 'gzip max 8k');
http_gzip_like(http_gzip_request('/max/16k.html'), qr/^X+\Z/, 'gzip max 16k');
http_gzip_like(http_gzip_request('/max/32k.html'), qr/^X+\Z/, 'gzip max 32k');
http_gzip_like(http_gzip_request('/max/64k.html'), qr/^X+\Z/, 'gzip max 64k');
http_gzip_like(http_gzip_request('/max/128k.html'), qr/^X+\Z/, 'gzip max 128k');
http_gzip_like(http_gzip_request('/min/64.html'), qr/^X+\Z/, 'gzip min 64');
http_gzip_like(http_gzip_request('/max/512.html'), qr/^X+\Z/, 'gzip min 512');
http_gzip_like(http_gzip_request('/min/1k.html'), qr/^X+\Z/, 'gzip min 1k');
http_gzip_like(http_gzip_request('/min/2k.html'), qr/^X+\Z/, 'gzip min 2k');
http_gzip_like(http_gzip_request('/min/4k.html'), qr/^X+\Z/, 'gzip min 4k');
http_gzip_like(http_gzip_request('/min/8k.html'), qr/^X+\Z/, 'gzip min 8k');
http_gzip_like(http_gzip_request('/min/16k.html'), qr/^X+\Z/, 'gzip min 16k');
http_gzip_like(http_gzip_request('/min/32k.html'), qr/^X+\Z/, 'gzip min 32k');
http_gzip_like(http_gzip_request('/min/64k.html'), qr/^X+\Z/, 'gzip min 64k');
http_gzip_like(http_gzip_request('/min/128k.html'), qr/^X+\Z/, 'gzip min 128k');
http_gzip_like(http_gzip_request('/minw/64.html'), qr/^X+\Z/,
'gzip min window 64');
http_gzip_like(http_gzip_request('/minw/512.html'), qr/^X+\Z/,
'gzip min window 512');
http_gzip_like(http_gzip_request('/minw/1k.html'), qr/^X+\Z/,
'gzip min window 1k');
http_gzip_like(http_gzip_request('/minw/2k.html'), qr/^X+\Z/,
'gzip min window 2k');
http_gzip_like(http_gzip_request('/minw/4k.html'), qr/^X+\Z/,
'gzip min window 4k');
http_gzip_like(http_gzip_request('/minw/8k.html'), qr/^X+\Z/,
'gzip min window 8k');
http_gzip_like(http_gzip_request('/minw/16k.html'), qr/^X+\Z/,
'gzip min window 16k');
http_gzip_like(http_gzip_request('/minw/32k.html'), qr/^X+\Z/,
'gzip min window 32k');
http_gzip_like(http_gzip_request('/minw/64k.html'), qr/^X+\Z/,
'gzip min window 64k');
http_gzip_like(http_gzip_request('/minw/128k.html'), qr/^X+\Z/,
'gzip min window 128k');
http_gzip_like(http_gzip_request('/minh/64.html'), qr/^X+\Z/,
'gzip min hash 64');
http_gzip_like(http_gzip_request('/minh/512.html'), qr/^X+\Z/,
'gzip min hash 512');
http_gzip_like(http_gzip_request('/minh/1k.html'), qr/^X+\Z/,
'gzip min hash 1k');
http_gzip_like(http_gzip_request('/minh/2k.html'), qr/^X+\Z/,
'gzip min hash 2k');
http_gzip_like(http_gzip_request('/minh/4k.html'), qr/^X+\Z/,
'gzip min hash 4k');
http_gzip_like(http_gzip_request('/minh/8k.html'), qr/^X+\Z/,
'gzip min hash 8k');
http_gzip_like(http_gzip_request('/minh/16k.html'), qr/^X+\Z/,
'gzip min hash 16k');
http_gzip_like(http_gzip_request('/minh/32k.html'), qr/^X+\Z/,
'gzip min hash 32k');
http_gzip_like(http_gzip_request('/minh/64k.html'), qr/^X+\Z/,
'gzip min hash 64k');
http_gzip_like(http_gzip_request('/minh/128k.html'), qr/^X+\Z/,
'gzip min hash 128k');
###############################################################################