Mercurial > hg > nginx-tests
comparison mail_resolver.t @ 1494:1356e7374c57
Tests: added mail resolver tests for PTR with rn->waiting.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 29 Jul 2019 19:26:21 +0300 |
parents | e4974af3fb12 |
children | e1eb3432487b |
comparison
equal
deleted
inserted
replaced
1493:829467f8d696 | 1494:1356e7374c57 |
---|---|
23 select STDERR; $| = 1; | 23 select STDERR; $| = 1; |
24 select STDOUT; $| = 1; | 24 select STDOUT; $| = 1; |
25 | 25 |
26 local $SIG{PIPE} = 'IGNORE'; | 26 local $SIG{PIPE} = 'IGNORE'; |
27 | 27 |
28 my $t = Test::Nginx->new()->has(qw/mail smtp http rewrite/)->plan(8) | 28 my $t = Test::Nginx->new()->has(qw/mail smtp http rewrite/)->plan(10) |
29 ->write_file_expand('nginx.conf', <<'EOF'); | 29 ->write_file_expand('nginx.conf', <<'EOF'); |
30 | 30 |
31 %%TEST_GLOBALS%% | 31 %%TEST_GLOBALS%% |
32 | 32 |
33 daemon off; | 33 daemon off; |
126 ############################################################################### | 126 ############################################################################### |
127 | 127 |
128 # PTR | 128 # PTR |
129 | 129 |
130 my $s = Test::Nginx::SMTP->new(); | 130 my $s = Test::Nginx::SMTP->new(); |
131 my $s2 = Test::Nginx::SMTP->new(); | |
131 $s->read(); | 132 $s->read(); |
132 $s->send('EHLO example.com'); | 133 $s->send('EHLO example.com'); |
133 $s->read(); | 134 $s->read(); |
134 $s->send('MAIL FROM:<test@example.com> SIZE=100'); | 135 $s->send('MAIL FROM:<test@example.com> SIZE=100'); |
135 $s->read(); | 136 $s->read(); |
138 $s->ok('PTR'); | 139 $s->ok('PTR'); |
139 | 140 |
140 $s->send('QUIT'); | 141 $s->send('QUIT'); |
141 $s->read(); | 142 $s->read(); |
142 | 143 |
144 $s2->read(); | |
145 $s2->send('EHLO example.com'); | |
146 $s2->ok('PTR waiting'); | |
147 | |
143 # Cached PTR prevents from querying bad ns on port 8983 | 148 # Cached PTR prevents from querying bad ns on port 8983 |
144 | 149 |
145 $s = Test::Nginx::SMTP->new(); | 150 $s = Test::Nginx::SMTP->new(); |
146 $s->read(); | 151 $s->read(); |
147 $s->send('EHLO example.com'); | 152 $s->send('EHLO example.com'); |
171 $s->read(); | 176 $s->read(); |
172 | 177 |
173 # PTR with zero length RDATA | 178 # PTR with zero length RDATA |
174 | 179 |
175 $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8028)); | 180 $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8028)); |
181 $s2 = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(8028)); | |
176 $s->read(); | 182 $s->read(); |
177 $s->send('EHLO example.com'); | 183 $s->send('EHLO example.com'); |
178 $s->read(); | 184 $s->read(); |
179 $s->send('MAIL FROM:<test@example.com> SIZE=100'); | 185 $s->send('MAIL FROM:<test@example.com> SIZE=100'); |
180 $s->read(); | 186 $s->read(); |
182 $s->send('RCPT TO:<test@example.com>'); | 188 $s->send('RCPT TO:<test@example.com>'); |
183 $s->check(qr/TEMPUNAVAIL/, 'PTR empty'); | 189 $s->check(qr/TEMPUNAVAIL/, 'PTR empty'); |
184 | 190 |
185 $s->send('QUIT'); | 191 $s->send('QUIT'); |
186 $s->read(); | 192 $s->read(); |
193 | |
194 # resolver timeout is set | |
195 | |
196 $s2->read(); | |
197 $s2->send('EHLO example.com'); | |
198 $s2->ok('PTR empty waiting'); | |
187 | 199 |
188 # CNAME | 200 # CNAME |
189 | 201 |
190 TODO: { | 202 TODO: { |
191 local $TODO = 'support for CNAME RR'; | 203 local $TODO = 'support for CNAME RR'; |