annotate proxy_cache_range.t @ 540:481d705b8610

Tests: SSL support in mail backends. Socket is now embedded into every mail module. Socket methods are wrapped where appropriate. The new "SSL" extra flag specifies to accept connection over SSL.
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 03 Apr 2015 00:11:38 +0300
parents b4d657ba1a62
children 907e89fba9c3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
371
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Tests for http proxy cache and range filter.
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 plan(skip_all => 'win32') if $^O eq 'MSWin32';
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25
500
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
26 my $t = Test::Nginx->new()->has(qw/http proxy cache/)->plan(7)
371
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27 ->write_file_expand('nginx.conf', <<'EOF');
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29 %%TEST_GLOBALS%%
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31 daemon off;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33 events {
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 }
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36 http {
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 proxy_cache_path %%TESTDIR%%/cache levels=1:2
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40 keys_zone=NAME:1m;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
42 server {
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 listen 127.0.0.1:8080;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 server_name localhost;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 location / {
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 proxy_pass http://127.0.0.1:8081;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 proxy_cache NAME;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 proxy_cache_valid 200 1m;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 }
500
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
51 location /min_uses {
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
52 proxy_pass http://127.0.0.1:8081/;
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
53 proxy_cache NAME;
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
54 proxy_cache_valid 200 1m;
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
55 proxy_cache_min_uses 2;
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
56 }
371
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 }
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 server {
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 listen 127.0.0.1:8081;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 server_name localhost;
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63 location / {
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 }
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65 }
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66 }
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 EOF
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70 $t->write_file('t.html', 'SEE-THIS');
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 $t->run();
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 ###############################################################################
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75 like(http_get_range('/t.html?1', 'Range: bytes=4-'), qr/^THIS/m,
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 'range on first request');
382
30364c578416 Tests: adjusted TODO for single range not-yet-cached requests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 372
diff changeset
77
30364c578416 Tests: adjusted TODO for single range not-yet-cached requests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 372
diff changeset
78 {
30364c578416 Tests: adjusted TODO for single range not-yet-cached requests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 372
diff changeset
79 local $TODO = 'not yet';
30364c578416 Tests: adjusted TODO for single range not-yet-cached requests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 372
diff changeset
80
371
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81 like(http_get_range('/t.html?2', 'Range: bytes=0-2,4-'), qr/^SEE.*^THIS/ms,
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82 'multipart range on first request');
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 }
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85 like(http_get_range('/t.html?1', 'Range: bytes=4-'), qr/^THIS/m,
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86 'cached range');
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87 like(http_get_range('/t.html?1', 'Range: bytes=0-2,4-'), qr/^SEE.*^THIS/ms,
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88 'cached multipart range');
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89
500
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
90 TODO: {
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
91 local $TODO = 'not yet' unless $t->has_version('1.7.8');
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
92
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
93 like(http_get_range('/min_uses/t.html?3', 'Range: bytes=4-'),
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
94 qr/^THIS/m, 'range below min_uses');
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
95
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
96 like(http_get_range('/min_uses/t.html?4', 'Range: bytes=0-2,4-'),
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
97 qr/^SEE.*^THIS/ms, 'multipart range below min_uses');
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
98
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
99 }
b4d657ba1a62 Tests: tests for range requests below proxy_cache_min_uses.
Sergey Kandaurov <pluknet@nginx.com>
parents: 397
diff changeset
100
371
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
101 like(`grep -F '[alert]' ${\($t->testdir())}/error.log`, qr/^$/s, 'no alerts');
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
102
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
103 ###############################################################################
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
104
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105 sub http_get_range {
372
1d6abf0db011 Tests: whitespace fix.
Maxim Dounin <mdounin@mdounin.ru>
parents: 371
diff changeset
106 my ($url, $extra) = @_;
1d6abf0db011 Tests: whitespace fix.
Maxim Dounin <mdounin@mdounin.ru>
parents: 371
diff changeset
107 return http(<<EOF);
371
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
108 GET $url HTTP/1.1
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
109 Host: localhost
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
110 Connection: close
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
111 $extra
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
112
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
113 EOF
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
114 }
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
115
6fb6fea36560 Tests: proxy cache and range filter tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
116 ###############################################################################