Mercurial > hg > nginx-tests
comparison stream_error_log.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 | 6bb1f2ccd386 |
children | 882267679006 |
comparison
equal
deleted
inserted
replaced
951:9361c7eddfc1 | 952:e9064d691790 |
---|---|
33 | 33 |
34 %%TEST_GLOBALS%% | 34 %%TEST_GLOBALS%% |
35 | 35 |
36 error_log %%TESTDIR%%/e_glob.log info; | 36 error_log %%TESTDIR%%/e_glob.log info; |
37 error_log %%TESTDIR%%/e_glob2.log info; | 37 error_log %%TESTDIR%%/e_glob2.log info; |
38 error_log syslog:server=127.0.0.1:8083 info; | 38 error_log syslog:server=127.0.0.1:%%PORT_3_UDP%% info; |
39 | 39 |
40 daemon off; | 40 daemon off; |
41 | 41 |
42 events { | 42 events { |
43 } | 43 } |
44 | 44 |
45 stream { | 45 stream { |
46 upstream u { | 46 upstream u { |
47 server 127.0.0.1:8083 down; | 47 server 127.0.0.1:%%PORT_3_UDP%% down; |
48 } | 48 } |
49 | 49 |
50 server { | 50 server { |
51 listen 127.0.0.1:8080; | 51 listen 127.0.0.1:%%PORT_0%%; |
52 proxy_pass u; | 52 proxy_pass u; |
53 | 53 |
54 error_log %%TESTDIR%%/e_debug.log debug; | 54 error_log %%TESTDIR%%/e_debug.log debug; |
55 error_log %%TESTDIR%%/e_info.log info; | 55 error_log %%TESTDIR%%/e_info.log info; |
56 error_log %%TESTDIR%%/e_emerg.log emerg; | 56 error_log %%TESTDIR%%/e_emerg.log emerg; |
57 error_log stderr info; | 57 error_log stderr info; |
58 } | 58 } |
59 | 59 |
60 server { | 60 server { |
61 listen 127.0.0.1:8082; | 61 listen 127.0.0.1:%%PORT_2%%; |
62 proxy_pass 127.0.0.1:8081; | 62 proxy_pass 127.0.0.1:%%PORT_1%%; |
63 | 63 |
64 error_log %%TESTDIR%%/e_stream.log info; | 64 error_log %%TESTDIR%%/e_stream.log info; |
65 error_log syslog:server=127.0.0.1:8080 info; | 65 error_log syslog:server=127.0.0.1:%%PORT_5_UDP%% info; |
66 error_log syslog:server=127.0.0.1:8084 info; | 66 error_log syslog:server=127.0.0.1:%%PORT_4_UDP%% info; |
67 } | 67 } |
68 } | 68 } |
69 | 69 |
70 EOF | 70 EOF |
71 | 71 |
73 open STDERR, '>', $t->testdir() . '/stderr' or die "Can't reopen STDERR: $!"; | 73 open STDERR, '>', $t->testdir() . '/stderr' or die "Can't reopen STDERR: $!"; |
74 open my $stderr, '<', $t->testdir() . '/stderr' | 74 open my $stderr, '<', $t->testdir() . '/stderr' |
75 or die "Can't open stderr file: $!"; | 75 or die "Can't open stderr file: $!"; |
76 | 76 |
77 $t->run_daemon(\&stream_daemon); | 77 $t->run_daemon(\&stream_daemon); |
78 $t->run_daemon(\&syslog_daemon, 8083, $t, 's_glob.log'); | 78 $t->run_daemon(\&syslog_daemon, port(3), $t, 's_glob.log'); |
79 $t->run_daemon(\&syslog_daemon, 8084, $t, 's_stream.log'); | 79 $t->run_daemon(\&syslog_daemon, port(4), $t, 's_stream.log'); |
80 | 80 |
81 $t->waitforsocket('127.0.0.1:8081'); | 81 $t->waitforsocket('127.0.0.1:' . port(1)); |
82 $t->waitforfile($t->testdir . '/s_glob.log'); | 82 $t->waitforfile($t->testdir . '/s_glob.log'); |
83 $t->waitforfile($t->testdir . '/s_stream.log'); | 83 $t->waitforfile($t->testdir . '/s_stream.log'); |
84 | 84 |
85 $t->run(); | 85 $t->run(); |
86 | 86 |
111 is_deeply(levels($t, 'e_glob.log'), levels($t, 'e_glob2.log'), | 111 is_deeply(levels($t, 'e_glob.log'), levels($t, 'e_glob2.log'), |
112 'multiple error global'); | 112 'multiple error global'); |
113 | 113 |
114 # syslog | 114 # syslog |
115 | 115 |
116 parse_syslog_message('syslog', get_syslog('data2', '127.0.0.1:8082')); | 116 parse_syslog_message('syslog', get_syslog('data2', '127.0.0.1:' . port(2), |
117 port(5))); | |
117 | 118 |
118 is_deeply(levels($t, 's_glob.log'), levels($t, 'e_glob.log'), | 119 is_deeply(levels($t, 's_glob.log'), levels($t, 'e_glob.log'), |
119 'global syslog messages'); | 120 'global syslog messages'); |
120 is_deeply(levels($t, 's_stream.log'), levels($t, 'e_stream.log'), | 121 is_deeply(levels($t, 's_stream.log'), levels($t, 'e_stream.log'), |
121 'stream syslog messages'); | 122 'stream syslog messages'); |
124 | 125 |
125 SKIP: { | 126 SKIP: { |
126 skip "relies on error log contents", 5 unless $ENV{TEST_NGINX_UNSAFE}; | 127 skip "relies on error log contents", 5 unless $ENV{TEST_NGINX_UNSAFE}; |
127 | 128 |
128 my $msg = 'no live upstreams while connecting to upstream, ' | 129 my $msg = 'no live upstreams while connecting to upstream, ' |
129 . 'client: 127.0.0.1, server: 127.0.0.1:8080, upstream: "u"'; | 130 . 'client: 127.0.0.1, server: 127.0.0.1:' . port(0) . ', upstream: "u"'; |
130 | 131 |
131 unlike($t->read_file('e_glob.log'), qr/$msg/ms, 'stream error in global'); | 132 unlike($t->read_file('e_glob.log'), qr/$msg/ms, 'stream error in global'); |
132 like($t->read_file('e_info.log'), qr/$msg/ms, 'stream error in info'); | 133 like($t->read_file('e_info.log'), qr/$msg/ms, 'stream error in info'); |
133 like($t->read_file('stderr'), qr/$msg/ms, 'stream error in info stderr'); | 134 like($t->read_file('stderr'), qr/$msg/ms, 'stream error in info stderr'); |
134 unlike($t->read_file('e_emerg.log'), qr/$msg/ms, 'stream error in emerg'); | 135 unlike($t->read_file('e_emerg.log'), qr/$msg/ms, 'stream error in emerg'); |
165 } | 166 } |
166 | 167 |
167 sub get_syslog { | 168 sub get_syslog { |
168 my ($data, $peer, $port) = @_; | 169 my ($data, $peer, $port) = @_; |
169 my ($s); | 170 my ($s); |
170 | |
171 $port = 8080 unless defined $port; | |
172 | 171 |
173 eval { | 172 eval { |
174 local $SIG{ALRM} = sub { die "timeout\n" }; | 173 local $SIG{ALRM} = sub { die "timeout\n" }; |
175 local $SIG{PIPE} = sub { die "sigpipe\n" }; | 174 local $SIG{PIPE} = sub { die "sigpipe\n" }; |
176 alarm(1); | 175 alarm(1); |
274 | 273 |
275 sub stream_daemon { | 274 sub stream_daemon { |
276 my $server = IO::Socket::INET->new( | 275 my $server = IO::Socket::INET->new( |
277 Proto => 'tcp', | 276 Proto => 'tcp', |
278 LocalHost => '127.0.0.1', | 277 LocalHost => '127.0.0.1', |
279 LocalPort => 8081, | 278 LocalPort => port(1), |
280 Listen => 5, | 279 Listen => 5, |
281 Reuse => 1 | 280 Reuse => 1 |
282 ) | 281 ) |
283 or die "Can't create listening socket: $!\n"; | 282 or die "Can't create listening socket: $!\n"; |
284 | 283 |