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('||', @_); }