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