comparison stream_udp_upstream.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 b9e42c554ba7
children 882267679006
comparison
equal deleted inserted replaced
951:9361c7eddfc1 952:e9064d691790
36 stream { 36 stream {
37 proxy_responses 1; 37 proxy_responses 1;
38 proxy_timeout 1s; 38 proxy_timeout 1s;
39 39
40 upstream u { 40 upstream u {
41 server 127.0.0.1:8087; 41 server 127.0.0.1:%%PORT_4_UDP%%;
42 server 127.0.0.1:8088; 42 server 127.0.0.1:%%PORT_5_UDP%%;
43 } 43 }
44 44
45 upstream u2 { 45 upstream u2 {
46 server 127.0.0.1:8089 down; 46 server 127.0.0.1:%%PORT_6_UDP%% down;
47 server 127.0.0.1:8089; 47 server 127.0.0.1:%%PORT_6_UDP%%;
48 server 127.0.0.1:8087; 48 server 127.0.0.1:%%PORT_4_UDP%%;
49 server 127.0.0.1:8088; 49 server 127.0.0.1:%%PORT_5_UDP%%;
50 } 50 }
51 51
52 upstream u3 { 52 upstream u3 {
53 server 127.0.0.1:8087; 53 server 127.0.0.1:%%PORT_4_UDP%%;
54 server 127.0.0.1:8088 weight=2; 54 server 127.0.0.1:%%PORT_5_UDP%% weight=2;
55 } 55 }
56 56
57 upstream u4 { 57 upstream u4 {
58 server 127.0.0.1:8089; 58 server 127.0.0.1:%%PORT_6_UDP%%;
59 server 127.0.0.1:8087 backup; 59 server 127.0.0.1:%%PORT_4_UDP%% backup;
60 } 60 }
61 61
62 server { 62 server {
63 listen 127.0.0.1:8081 udp; 63 listen 127.0.0.1:%%PORT_0_UDP%% udp;
64 proxy_pass u; 64 proxy_pass u;
65 } 65 }
66 66
67 server { 67 server {
68 listen 127.0.0.1:8082 udp; 68 listen 127.0.0.1:%%PORT_1_UDP%% udp;
69 proxy_pass u2; 69 proxy_pass u2;
70 } 70 }
71 71
72 server { 72 server {
73 listen 127.0.0.1:8083 udp; 73 listen 127.0.0.1:%%PORT_2_UDP%% udp;
74 proxy_pass u3; 74 proxy_pass u3;
75 } 75 }
76 76
77 server { 77 server {
78 listen 127.0.0.1:8084 udp; 78 listen 127.0.0.1:%%PORT_3_UDP%% udp;
79 proxy_pass u4; 79 proxy_pass u4;
80 } 80 }
81 } 81 }
82 82
83 EOF 83 EOF
84 84
85 $t->run_daemon(\&udp_daemon, 8087, $t); 85 $t->run_daemon(\&udp_daemon, port(4), $t);
86 $t->run_daemon(\&udp_daemon, 8088, $t); 86 $t->run_daemon(\&udp_daemon, port(5), $t);
87 $t->try_run('no stream udp')->plan(4); 87 $t->try_run('no stream udp')->plan(4);
88 88
89 $t->waitforfile($t->testdir . '/8087'); 89 $t->waitforfile($t->testdir . '/' . port(4));
90 $t->waitforfile($t->testdir . '/8088'); 90 $t->waitforfile($t->testdir . '/' . port(5));
91 91
92 ############################################################################### 92 ###############################################################################
93 93
94 is(many('.', 30, peer => '127.0.0.1:8081'), '8087: 15, 8088: 15', 'balanced'); 94 my @ports = my ($port4, $port5) = (port(4), port(5));
95 is(many('.', 30, peer => '127.0.0.1:8082'), '8087: 15, 8088: 15', 'failures'); 95
96 is(many('.', 30, peer => '127.0.0.1:8083'), '8087: 10, 8088: 20', 'weight'); 96 is(many(30, port(0)), "$port4: 15, $port5: 15", 'balanced');
97 is(many('.', 30, peer => '127.0.0.1:8084'), '8087: 30', 'backup'); 97 is(many(30, port(1)), "$port4: 15, $port5: 15", 'failures');
98 is(many(30, port(2)), "$port4: 10, $port5: 20", 'weight');
99 is(many(30, port(3)), "$port4: 30", 'backup');
98 100
99 ############################################################################### 101 ###############################################################################
100 102
101 sub many { 103 sub many {
102 my ($data, $count, %opts) = @_; 104 my ($count, $port) = @_;
103 my (%ports, $peer); 105 my (%ports);
104
105 $peer = $opts{peer};
106 106
107 for (1 .. $count) { 107 for (1 .. $count) {
108 if (dgram($peer)->io($data) =~ /(\d+)/) { 108 if (dgram("127.0.0.1:$port")->io('.') =~ /(\d+)/) {
109 $ports{$1} = 0 unless defined $ports{$1}; 109 $ports{$1} = 0 unless defined $ports{$1};
110 $ports{$1}++; 110 $ports{$1}++;
111 } 111 }
112 } 112 }
113 113
114 return join ', ', map { $_ . ": " . $ports{$_} } sort keys %ports; 114 my @keys = map { my $p = $_; grep { $p == $_ } keys %ports } @ports;
115 return join ', ', map { $_ . ": " . $ports{$_} } @keys;
115 } 116 }
116 117
117 ############################################################################### 118 ###############################################################################
118 119
119 sub udp_daemon { 120 sub udp_daemon {