Mercurial > hg > nginx-tests
comparison http_resolver.t @ 1237:e4974af3fb12
Tests: adjusted udp ports to match allocated ports range.
author | Andrey Zelenkov <zelenkov@nginx.com> |
---|---|
date | Wed, 13 Sep 2017 19:04:25 +0300 |
parents | 196d33c2bb45 |
children |
comparison
equal
deleted
inserted
replaced
1236:93f749c1d5c5 | 1237:e4974af3fb12 |
---|---|
41 server { | 41 server { |
42 listen 127.0.0.1:8080; | 42 listen 127.0.0.1:8080; |
43 server_name localhost; | 43 server_name localhost; |
44 | 44 |
45 location / { | 45 location / { |
46 resolver 127.0.0.1:%%PORT_8081_UDP%%; | 46 resolver 127.0.0.1:%%PORT_8981_UDP%%; |
47 resolver_timeout 1s; | 47 resolver_timeout 1s; |
48 proxy_pass http://$host:%%PORT_8080%%/backend; | 48 proxy_pass http://$host:%%PORT_8080%%/backend; |
49 | 49 |
50 proxy_next_upstream http_504 timeout error; | 50 proxy_next_upstream http_504 timeout error; |
51 proxy_intercept_errors on; | 51 proxy_intercept_errors on; |
52 proxy_connect_timeout 1s; | 52 proxy_connect_timeout 1s; |
53 error_page 504 502 /50x; | 53 error_page 504 502 /50x; |
54 } | 54 } |
55 location /two { | 55 location /two { |
56 resolver 127.0.0.1:%%PORT_8081_UDP%% 127.0.0.1:%%PORT_8082_UDP%%; | 56 resolver 127.0.0.1:%%PORT_8981_UDP%% 127.0.0.1:%%PORT_8982_UDP%%; |
57 proxy_pass http://$host:%%PORT_8080%%/backend; | 57 proxy_pass http://$host:%%PORT_8080%%/backend; |
58 } | 58 } |
59 location /valid { | 59 location /valid { |
60 resolver 127.0.0.1:%%PORT_8081_UDP%% valid=5s; | 60 resolver 127.0.0.1:%%PORT_8981_UDP%% valid=5s; |
61 proxy_pass http://$host:%%PORT_8080%%/backend; | 61 proxy_pass http://$host:%%PORT_8080%%/backend; |
62 } | 62 } |
63 location /case { | 63 location /case { |
64 resolver 127.0.0.1:%%PORT_8081_UDP%%; | 64 resolver 127.0.0.1:%%PORT_8981_UDP%%; |
65 proxy_pass http://$http_x_name:%%PORT_8080%%/backend; | 65 proxy_pass http://$http_x_name:%%PORT_8080%%/backend; |
66 } | 66 } |
67 location /invalid { | 67 location /invalid { |
68 proxy_pass http://$host:%%PORT_8080%%/backend; | 68 proxy_pass http://$host:%%PORT_8080%%/backend; |
69 } | 69 } |
70 location /long { | 70 location /long { |
71 resolver 127.0.0.1:%%PORT_8081_UDP%%; | 71 resolver 127.0.0.1:%%PORT_8981_UDP%%; |
72 resolver_timeout 4s; | 72 resolver_timeout 4s; |
73 proxy_pass http://$host:%%PORT_8080%%/backend; | 73 proxy_pass http://$host:%%PORT_8080%%/backend; |
74 } | 74 } |
75 location /resend { | 75 location /resend { |
76 resolver 127.0.0.1:%%PORT_8081_UDP%%; | 76 resolver 127.0.0.1:%%PORT_8981_UDP%%; |
77 resolver_timeout 8s; | 77 resolver_timeout 8s; |
78 proxy_pass http://$host:%%PORT_8080%%/backend; | 78 proxy_pass http://$host:%%PORT_8080%%/backend; |
79 } | 79 } |
80 location /bad { | 80 location /bad { |
81 resolver 127.0.0.1:%%PORT_8084_UDP%%; | 81 resolver 127.0.0.1:%%PORT_8984_UDP%%; |
82 resolver_timeout 1s; | 82 resolver_timeout 1s; |
83 proxy_pass http://$host:%%PORT_8080%%/backend; | 83 proxy_pass http://$host:%%PORT_8080%%/backend; |
84 } | 84 } |
85 location /tcp { | 85 location /tcp { |
86 resolver 127.0.0.1:%%PORT_8083_UDP%% 127.0.0.1:%%PORT_8082_UDP%%; | 86 resolver 127.0.0.1:%%PORT_8983_UDP%% 127.0.0.1:%%PORT_8982_UDP%%; |
87 resolver_timeout 1s; | 87 resolver_timeout 1s; |
88 proxy_pass http://$host:%%PORT_8080%%/backend; | 88 proxy_pass http://$host:%%PORT_8080%%/backend; |
89 proxy_connect_timeout 1s; | 89 proxy_connect_timeout 1s; |
90 add_header X-IP $upstream_addr; | 90 add_header X-IP $upstream_addr; |
91 error_page 504 502 /50x; | 91 error_page 504 502 /50x; |
105 } | 105 } |
106 } | 106 } |
107 | 107 |
108 EOF | 108 EOF |
109 | 109 |
110 $t->run_daemon(\&dns_daemon, port(8081), $t); | 110 $t->run_daemon(\&dns_daemon, port(8981), $t); |
111 $t->run_daemon(\&dns_daemon, port(8082), $t); | 111 $t->run_daemon(\&dns_daemon, port(8982), $t); |
112 | 112 |
113 $t->run_daemon(\&dns_daemon, port(8083), $t, tcp => 1); | 113 $t->run_daemon(\&dns_daemon, port(8983), $t, tcp => 1); |
114 $t->waitforfile($t->testdir . '/' . port(8083)); | 114 $t->waitforfile($t->testdir . '/' . port(8983)); |
115 port(8083, socket => 1)->close(); | 115 port(8983, socket => 1)->close(); |
116 | 116 |
117 $t->run_daemon(\&dns_daemon, port(8084), $t); | 117 $t->run_daemon(\&dns_daemon, port(8984), $t); |
118 | 118 |
119 $t->run()->plan(38); | 119 $t->run()->plan(38); |
120 | 120 |
121 $t->waitforfile($t->testdir . '/' . port(8081)); | 121 $t->waitforfile($t->testdir . '/' . port(8981)); |
122 $t->waitforfile($t->testdir . '/' . port(8082)); | 122 $t->waitforfile($t->testdir . '/' . port(8982)); |
123 $t->waitforfile($t->testdir . '/' . port(8084)); | 123 $t->waitforfile($t->testdir . '/' . port(8984)); |
124 | 124 |
125 ############################################################################### | 125 ############################################################################### |
126 | 126 |
127 my $p0 = port(8080); | 127 my $p0 = port(8080); |
128 | 128 |
481 } | 481 } |
482 | 482 |
483 push @rdata, rd_addr(0, '127.0.0.1'); | 483 push @rdata, rd_addr(0, '127.0.0.1'); |
484 | 484 |
485 } elsif ($name eq '2.example.net') { | 485 } elsif ($name eq '2.example.net') { |
486 if ($port == port(8081)) { | 486 if ($port == port(8981)) { |
487 $state->{twocnt}++; | 487 $state->{twocnt}++; |
488 } | 488 } |
489 if ($state->{twocnt} & 1) { | 489 if ($state->{twocnt} & 1) { |
490 $rcode = SERVFAIL; | 490 $rcode = SERVFAIL; |
491 } | 491 } |
493 if ($type == A) { | 493 if ($type == A) { |
494 push @rdata, rd_addr($ttl, '127.0.0.1'); | 494 push @rdata, rd_addr($ttl, '127.0.0.1'); |
495 } | 495 } |
496 | 496 |
497 } elsif ($name =~ /tcp2?.example.net/) { | 497 } elsif ($name =~ /tcp2?.example.net/) { |
498 $rcode = FORMERR if $port == port(8082); | 498 $rcode = FORMERR if $port == port(8982); |
499 $hdr |= 0x0300 unless $extra{tcp}; | 499 $hdr |= 0x0300 unless $extra{tcp}; |
500 push @rdata, rd_addr($ttl, $extra{tcp} | 500 push @rdata, rd_addr($ttl, $extra{tcp} |
501 ? '127.0.0.1' : '127.0.0.201') if $type == A; | 501 ? '127.0.0.1' : '127.0.0.201') if $type == A; |
502 } | 502 } |
503 | 503 |
529 | 529 |
530 my $sel = IO::Select->new($socket); | 530 my $sel = IO::Select->new($socket); |
531 my $tcp = 0; | 531 my $tcp = 0; |
532 | 532 |
533 if ($extra{tcp}) { | 533 if ($extra{tcp}) { |
534 $tcp = port(8083, socket => 1); | 534 $tcp = port(8983, socket => 1); |
535 $sel->add($tcp); | 535 $sel->add($tcp); |
536 } | 536 } |
537 | 537 |
538 local $SIG{PIPE} = 'IGNORE'; | 538 local $SIG{PIPE} = 'IGNORE'; |
539 | 539 |