diff mail_resolver.t @ 952:e9064d691790

Tests: converted tests to run in parallel.
author Andrey Zelenkov <zelenkov@nginx.com>
date Tue, 21 Jun 2016 16:39:13 +0300
parents b1fa8e0cc27b
children c227348453db
line wrap: on
line diff
--- a/mail_resolver.t
+++ b/mail_resolver.t
@@ -26,7 +26,7 @@ select STDOUT; $| = 1;
 local $SIG{PIPE} = 'IGNORE';
 
 my $t = Test::Nginx->new()->has(qw/mail smtp http rewrite/)
-	->run_daemon(\&Test::Nginx::SMTP::smtp_test_daemon);
+	->run_daemon(\&Test::Nginx::SMTP::smtp_test_daemon, port(15));
 
 $t->write_file_expand('nginx.conf', <<'EOF');
 
@@ -38,7 +38,7 @@ events {
 }
 
 mail {
-    auth_http    http://127.0.0.1:8080/mail/auth;
+    auth_http    http://127.0.0.1:%%PORT_0%%/mail/auth;
     smtp_auth    none;
     server_name  locahost;
 
@@ -46,46 +46,47 @@ mail {
     resolver_timeout 2s;
 
     server {
-        listen    127.0.0.1:8025;
+        listen    127.0.0.1:%%PORT_1%%;
         protocol  smtp;
-        resolver  127.0.0.1:8081 127.0.0.1:8082 127.0.0.1:8083;
+        resolver  127.0.0.1:%%PORT_8_UDP%% 127.0.0.1:%%PORT_9_UDP%%
+                  127.0.0.1:%%PORT_10_UDP%%;
     }
 
     server {
-        listen    127.0.0.1:8027;
+        listen    127.0.0.1:%%PORT_2%%;
         protocol  smtp;
-        resolver  127.0.0.1:8082;
+        resolver  127.0.0.1:%%PORT_9_UDP%%;
     }
 
     server {
-        listen    127.0.0.1:8028;
+        listen    127.0.0.1:%%PORT_3%%;
         protocol  smtp;
-        resolver  127.0.0.1:8083;
+        resolver  127.0.0.1:%%PORT_10_UDP%%;
 
     }
 
     server {
-        listen    127.0.0.1:8029;
+        listen    127.0.0.1:%%PORT_4%%;
         protocol  smtp;
-        resolver  127.0.0.1:8084;
+        resolver  127.0.0.1:%%PORT_11_UDP%%;
     }
 
     server {
-        listen    127.0.0.1:8030;
+        listen    127.0.0.1:%%PORT_5%%;
         protocol  smtp;
-        resolver  127.0.0.1:8085;
+        resolver  127.0.0.1:%%PORT_12_UDP%%;
     }
 
     server {
-        listen    127.0.0.1:8031;
+        listen    127.0.0.1:%%PORT_6%%;
         protocol  smtp;
-        resolver  127.0.0.1:8086;
+        resolver  127.0.0.1:%%PORT_13_UDP%%;
     }
 
     server {
-        listen    127.0.0.1:8032;
+        listen    127.0.0.1:%%PORT_7%%;
         protocol  smtp;
-        resolver  127.0.0.1:8087;
+        resolver  127.0.0.1:%%PORT_14_UDP%%;
     }
 
 }
@@ -94,7 +95,7 @@ http {
     %%TEST_GLOBALS_HTTP%%
 
     server {
-        listen       127.0.0.1:8080;
+        listen       127.0.0.1:%%PORT_0%%;
         server_name  localhost;
 
         location = /mail/auth {
@@ -106,7 +107,7 @@ http {
 
             add_header Auth-Status $reply;
             add_header Auth-Server 127.0.0.1;
-            add_header Auth-Port 8026;
+            add_header Auth-Port %%PORT_15%%;
             return 204;
         }
     }
@@ -114,13 +115,13 @@ http {
 
 EOF
 
-for (8081 .. 8087) {
-	$t->run_daemon(\&dns_daemon, $_, $t);
+for (8 .. 14) {
+	$t->run_daemon(\&dns_daemon, port($_), $t);
 }
 $t->run();
 
-for (8081 .. 8087) {
-	$t->waitforfile($t->testdir . "/$_");
+for (8 .. 14) {
+	$t->waitforfile($t->testdir . '/' . port($_));
 }
 
 $t->plan(8);
@@ -129,7 +130,7 @@ for (8081 .. 8087) {
 
 # PTR
 
-my $s = Test::Nginx::SMTP->new();
+my $s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(1));
 $s->read();
 $s->send('EHLO example.com');
 $s->read();
@@ -142,9 +143,9 @@ my $s = Test::Nginx::SMTP->new();
 $s->send('QUIT');
 $s->read();
 
-# Cached PTR prevents from querying bad ns on port 8083
+# Cached PTR prevents from querying bad ns on the first port
 
-$s = Test::Nginx::SMTP->new();
+$s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(1));
 $s->read();
 $s->send('EHLO example.com');
 $s->read();
@@ -159,7 +160,7 @@ my $s = Test::Nginx::SMTP->new();
 
 # SERVFAIL
 
-$s = Test::Nginx::SMTP->new(PeerAddr => "127.0.0.1:8027");
+$s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(2));
 $s->read();
 $s->send('EHLO example.com');
 $s->read();
@@ -174,7 +175,7 @@ my $s = Test::Nginx::SMTP->new();
 
 # PTR with zero length RDATA
 
-$s = Test::Nginx::SMTP->new(PeerAddr => "127.0.0.1:8028");
+$s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(3));
 $s->read();
 $s->send('EHLO example.com');
 $s->read();
@@ -192,7 +193,7 @@ my $s = Test::Nginx::SMTP->new();
 TODO: {
 local $TODO = 'support for CNAME RR';
 
-$s = Test::Nginx::SMTP->new(PeerAddr => "127.0.0.1:8029");
+$s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(4));
 $s->read();
 $s->send('EHLO example.com');
 $s->read();
@@ -213,7 +214,7 @@ TODO: {
 local $TODO = 'support for uncompressed name in PTR'
 	unless $t->has_version('1.9.11');
 
-$s = Test::Nginx::SMTP->new(PeerAddr => "127.0.0.1:8030");
+$s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(5));
 $s->read();
 $s->send('EHLO example.com');
 $s->read();
@@ -231,7 +232,7 @@ local $TODO = 'support for uncompressed 
 TODO: {
 local $TODO = 'PTR type checking' unless $t->has_version('1.9.11');
 
-$s = Test::Nginx::SMTP->new(PeerAddr => "127.0.0.1:8031");
+$s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(6));
 $s->read();
 $s->send('EHLO example.com');
 $s->read();
@@ -251,7 +252,7 @@ local $TODO = 'PTR type checking' unless
 TODO: {
 local $TODO = 'not yet' unless $t->has_version('1.9.11');
 
-$s = Test::Nginx::SMTP->new(PeerAddr => "127.0.0.1:8032");
+$s = Test::Nginx::SMTP->new(PeerAddr => '127.0.0.1:' . port(7));
 $s->read();
 $s->send('EHLO example.com');
 $s->read();
@@ -307,34 +308,34 @@ sub reply_handler {
 		push @rdata, rd_addr($ttl, '127.0.0.1');
 
 	} elsif ($name eq '1.0.0.127.in-addr.arpa' && $type == PTR) {
-		if ($port == 8081) {
+		if ($port == port(8)) {
 			push @rdata, rd_name(PTR, $ttl, 'a.example.net');
 
-		} elsif ($port == 8082) {
+		} elsif ($port == port(9)) {
 			$rcode = SERVFAIL;
 
-		} elsif ($port == 8083) {
+		} elsif ($port == port(10)) {
 			# zero length RDATA
 
 			push @rdata, pack("n3N n", 0xc00c, PTR, IN, $ttl, 0);
 
-		} elsif ($port == 8084) {
+		} elsif ($port == port(11)) {
 			# PTR answered with CNAME
 
 			push @rdata, rd_name(CNAME, $ttl,
 				'1.1.0.0.127.in-addr.arpa');
 
-		} elsif ($port == 8085) {
+		} elsif ($port == port(12)) {
 			# uncompressed answer
 
 			push @rdata, pack("(C/a*)6x n2N n(C/a*)3x",
 				('1', '0', '0', '127', 'in-addr', 'arpa'),
 				PTR, IN, $ttl, 15, ('a', 'example', 'net'));
 
-		} elsif ($port == 8086) {
+		} elsif ($port == port(13)) {
 			push @rdata, rd_name(DNAME, $ttl, 'a.example.net');
 
-		} elsif ($port == 8087) {
+		} elsif ($port == port(14)) {
 			# PTR answered with CNAME+PTR
 
 			push @rdata, rd_name(CNAME, $ttl,