Mercurial > hg > nginx-tests
comparison stream_limit_rate.t @ 974:882267679006
Tests: simplified parallel modifications in tests.
Mail tests were simplified in c227348453db.
author | Andrey Zelenkov <zelenkov@nginx.com> |
---|---|
date | Tue, 12 Jul 2016 17:39:03 +0300 |
parents | e9064d691790 |
children | 7ae2747ee593 |
comparison
equal
deleted
inserted
replaced
973:7d7aef8b9f3a | 974:882267679006 |
---|---|
44 | 44 |
45 proxy_download_rate 1011; | 45 proxy_download_rate 1011; |
46 proxy_upload_rate 1000; | 46 proxy_upload_rate 1000; |
47 | 47 |
48 server { | 48 server { |
49 listen 127.0.0.1:%%PORT_1%%; | 49 listen 127.0.0.1:8081; |
50 proxy_pass 127.0.0.1:%%PORT_0%%; | 50 proxy_pass 127.0.0.1:8080; |
51 } | 51 } |
52 | 52 |
53 server { | 53 server { |
54 listen 127.0.0.1:%%PORT_2%%; | 54 listen 127.0.0.1:8082; |
55 proxy_pass 127.0.0.1:%%PORT_0%%; | 55 proxy_pass 127.0.0.1:8080; |
56 proxy_download_rate 0; | 56 proxy_download_rate 0; |
57 proxy_upload_rate 0; | 57 proxy_upload_rate 0; |
58 } | 58 } |
59 | 59 |
60 server { | 60 server { |
61 listen 127.0.0.1:%%PORT_3%%; | 61 listen 127.0.0.1:8083; |
62 proxy_pass 127.0.0.1:%%PORT_0%%; | 62 proxy_pass 127.0.0.1:8080; |
63 proxy_download_rate 1; | 63 proxy_download_rate 1; |
64 } | 64 } |
65 | 65 |
66 server { | 66 server { |
67 listen 127.0.0.1:%%PORT_4%%; | 67 listen 127.0.0.1:8084; |
68 proxy_pass 127.0.0.1:%%PORT_0%%; | 68 proxy_pass 127.0.0.1:8080; |
69 proxy_upload_rate 1; | 69 proxy_upload_rate 1; |
70 } | 70 } |
71 | 71 |
72 server { | 72 server { |
73 listen 127.0.0.1:%%PORT_5%%; | 73 listen 127.0.0.1:8085; |
74 proxy_pass 127.0.0.1:%%PORT_0%%; | 74 proxy_pass 127.0.0.1:8080; |
75 proxy_download_rate 250; | 75 proxy_download_rate 250; |
76 } | 76 } |
77 | 77 |
78 server { | 78 server { |
79 listen 127.0.0.1:%%PORT_6%%; | 79 listen 127.0.0.1:8086; |
80 proxy_pass 127.0.0.1:%%PORT_7%%; | 80 proxy_pass 127.0.0.1:8087; |
81 proxy_upload_rate 250; | 81 proxy_upload_rate 250; |
82 } | 82 } |
83 } | 83 } |
84 | 84 |
85 EOF | 85 EOF |
86 | 86 |
87 $t->run_daemon(\&stream_daemon, port(0)); | 87 $t->run_daemon(\&stream_daemon, port(8080)); |
88 $t->run_daemon(\&stream_daemon, port(7)); | 88 $t->run_daemon(\&stream_daemon, port(8087)); |
89 $t->run(); | 89 $t->run(); |
90 | 90 |
91 $t->waitforsocket('127.0.0.1:' . port(0)); | 91 $t->waitforsocket('127.0.0.1:' . port(8080)); |
92 $t->waitforsocket('127.0.0.1:' . port(7)); | 92 $t->waitforsocket('127.0.0.1:' . port(8087)); |
93 | 93 |
94 ############################################################################### | 94 ############################################################################### |
95 | 95 |
96 my $str = '1234567890' x 100; | 96 my $str = '1234567890' x 100; |
97 | 97 |
98 my %r = response($str, peer => '127.0.0.1:' . port(1)); | 98 my %r = response($str, peer => '127.0.0.1:' . port(8081)); |
99 is($r{'data'}, $str, 'exact limit'); | 99 is($r{'data'}, $str, 'exact limit'); |
100 | 100 |
101 %r = response($str, peer => '127.0.0.1:' . port(2)); | 101 %r = response($str, peer => '127.0.0.1:' . port(8082)); |
102 is($r{'data'}, $str, 'unlimited'); | 102 is($r{'data'}, $str, 'unlimited'); |
103 | 103 |
104 SKIP: { | 104 SKIP: { |
105 skip 'unsafe on VM', 2 unless $ENV{TEST_NGINX_UNSAFE}; | 105 skip 'unsafe on VM', 2 unless $ENV{TEST_NGINX_UNSAFE}; |
106 | 106 |
107 # if interaction between backend and client is slow then proxy can add extra | 107 # if interaction between backend and client is slow then proxy can add extra |
108 # bytes to upload/download data | 108 # bytes to upload/download data |
109 | 109 |
110 %r = response($str, peer => '127.0.0.1:' . port(3), readonce => 1); | 110 %r = response($str, peer => '127.0.0.1:' . port(8083), readonce => 1); |
111 is($r{'data'}, '1', 'download - one byte'); | 111 is($r{'data'}, '1', 'download - one byte'); |
112 | 112 |
113 %r = response($str, peer => '127.0.0.1:' . port(4)); | 113 %r = response($str, peer => '127.0.0.1:' . port(8084)); |
114 is($r{'data'}, '1', 'upload - one byte'); | 114 is($r{'data'}, '1', 'upload - one byte'); |
115 | 115 |
116 } | 116 } |
117 | 117 |
118 # Five chunks are split with four 1s delays: | 118 # Five chunks are split with four 1s delays: |
119 # the first four chunks are quarters of test string | 119 # the first four chunks are quarters of test string |
120 # and the fifth one is some extra data from backend. | 120 # and the fifth one is some extra data from backend. |
121 | 121 |
122 %r = response($str, peer => '127.0.0.1:' . port(5)); | 122 %r = response($str, peer => '127.0.0.1:' . port(8085)); |
123 my $diff = time() - $r{'time'}; | 123 my $diff = time() - $r{'time'}; |
124 cmp_ok($diff, '>=', 4, 'download - time'); | 124 cmp_ok($diff, '>=', 4, 'download - time'); |
125 is($r{'data'}, $str, 'download - data'); | 125 is($r{'data'}, $str, 'download - data'); |
126 | 126 |
127 my $time = time(); | 127 my $time = time(); |
128 %r = response($str . 'close', peer => '127.0.0.1:' . port(6)); | 128 %r = response($str . 'close', peer => '127.0.0.1:' . port(8086)); |
129 $diff = time() - $time; | 129 $diff = time() - $time; |
130 cmp_ok($diff, '>=', 4, 'upload - time'); | 130 cmp_ok($diff, '>=', 4, 'upload - time'); |
131 is($r{'data'}, $str . 'close', 'upload - data'); | 131 is($r{'data'}, $str . 'close', 'upload - data'); |
132 | 132 |
133 ############################################################################### | 133 ############################################################################### |
192 | 192 |
193 $client->sysread(my $buffer, 65536) or return 1; | 193 $client->sysread(my $buffer, 65536) or return 1; |
194 | 194 |
195 log2i("$client $buffer"); | 195 log2i("$client $buffer"); |
196 | 196 |
197 $buffer .= " " . time() if $client->sockport() eq port(0); | 197 $buffer .= " " . time() if $client->sockport() eq port(8080); |
198 | 198 |
199 log2o("$client $buffer"); | 199 log2o("$client $buffer"); |
200 | 200 |
201 $client->syswrite($buffer); | 201 $client->syswrite($buffer); |
202 | 202 |
203 return $client->sockport() eq port(0) ? 1 : $buffer =~ /close/; | 203 return $client->sockport() eq port(8080) ? 1 : $buffer =~ /close/; |
204 } | 204 } |
205 | 205 |
206 sub log2i { Test::Nginx::log_core('|| <<', @_); } | 206 sub log2i { Test::Nginx::log_core('|| <<', @_); } |
207 sub log2o { Test::Nginx::log_core('|| >>', @_); } | 207 sub log2o { Test::Nginx::log_core('|| >>', @_); } |
208 sub log2c { Test::Nginx::log_core('||', @_); } | 208 sub log2c { Test::Nginx::log_core('||', @_); } |