Mercurial > hg > nginx-tests
comparison mail_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 | f7bc1f74970a |
children | c227348453db |
comparison
equal
deleted
inserted
replaced
951:9361c7eddfc1 | 952:e9064d691790 |
---|---|
26 select STDOUT; $| = 1; | 26 select STDOUT; $| = 1; |
27 | 27 |
28 plan(skip_all => 'win32') if $^O eq 'MSWin32'; | 28 plan(skip_all => 'win32') if $^O eq 'MSWin32'; |
29 | 29 |
30 my $t = Test::Nginx->new()->has(qw/mail imap http rewrite/) | 30 my $t = Test::Nginx->new()->has(qw/mail imap http rewrite/) |
31 ->run_daemon(\&Test::Nginx::IMAP::imap_test_daemon); | 31 ->run_daemon(\&Test::Nginx::IMAP::imap_test_daemon, port(4)); |
32 | 32 |
33 plan(skip_all => 'no error_log') unless $t->has_version('1.9.0'); | 33 plan(skip_all => 'no error_log') unless $t->has_version('1.9.0'); |
34 | 34 |
35 $t->plan(30)->write_file_expand('nginx.conf', <<'EOF'); | 35 $t->plan(30)->write_file_expand('nginx.conf', <<'EOF'); |
36 | 36 |
37 %%TEST_GLOBALS%% | 37 %%TEST_GLOBALS%% |
38 | 38 |
39 error_log %%TESTDIR%%/e_glob.log info; | 39 error_log %%TESTDIR%%/e_glob.log info; |
40 error_log %%TESTDIR%%/e_glob2.log info; | 40 error_log %%TESTDIR%%/e_glob2.log info; |
41 error_log syslog:server=127.0.0.1:8081 info; | 41 error_log syslog:server=127.0.0.1:%%PORT_1_UDP%% info; |
42 | 42 |
43 daemon off; | 43 daemon off; |
44 | 44 |
45 events { | 45 events { |
46 } | 46 } |
47 | 47 |
48 mail { | 48 mail { |
49 auth_http http://127.0.0.1:8080/mail/auth; | 49 auth_http http://127.0.0.1:%%PORT_0%%/mail/auth; |
50 | 50 |
51 server { | 51 server { |
52 listen 127.0.0.1:8143; | 52 listen 127.0.0.1:%%PORT_3%%; |
53 protocol imap; | 53 protocol imap; |
54 | 54 |
55 error_log %%TESTDIR%%/e_debug.log debug; | 55 error_log %%TESTDIR%%/e_debug.log debug; |
56 error_log %%TESTDIR%%/e_info.log info; | 56 error_log %%TESTDIR%%/e_info.log info; |
57 error_log syslog:server=127.0.0.1:8082 info; | 57 error_log syslog:server=127.0.0.1:%%PORT_2_UDP%% info; |
58 error_log stderr info; | 58 error_log stderr info; |
59 } | 59 } |
60 | 60 |
61 server { | 61 server { |
62 listen 127.0.0.1:8145; | 62 listen 127.0.0.1:%%PORT_5%%; |
63 protocol imap; | 63 protocol imap; |
64 | 64 |
65 error_log syslog:server=127.0.0.1:8080 info; | 65 error_log syslog:server=127.0.0.1:%%PORT_6_UDP%% info; |
66 } | 66 } |
67 } | 67 } |
68 | 68 |
69 http { | 69 http { |
70 %%TEST_GLOBALS_HTTP%% | 70 %%TEST_GLOBALS_HTTP%% |
71 | 71 |
72 server { | 72 server { |
73 listen 127.0.0.1:8080; | 73 listen 127.0.0.1:%%PORT_0%%; |
74 server_name localhost; | 74 server_name localhost; |
75 | 75 |
76 location = /mail/auth { | 76 location = /mail/auth { |
77 add_header Auth-Status OK; | 77 add_header Auth-Status OK; |
78 add_header Auth-Server 127.0.0.1; | 78 add_header Auth-Server 127.0.0.1; |
79 add_header Auth-Port 8144; | 79 add_header Auth-Port %%PORT_4%%; |
80 add_header Auth-Wait 1; | 80 add_header Auth-Wait 1; |
81 return 204; | 81 return 204; |
82 } | 82 } |
83 } | 83 } |
84 } | 84 } |
88 open OLDERR, ">&", \*STDERR; | 88 open OLDERR, ">&", \*STDERR; |
89 open STDERR, '>', $t->testdir() . '/stderr' or die "Can't reopen STDERR: $!"; | 89 open STDERR, '>', $t->testdir() . '/stderr' or die "Can't reopen STDERR: $!"; |
90 open my $stderr, '<', $t->testdir() . '/stderr' | 90 open my $stderr, '<', $t->testdir() . '/stderr' |
91 or die "Can't open stderr file: $!"; | 91 or die "Can't open stderr file: $!"; |
92 | 92 |
93 $t->run_daemon(\&syslog_daemon, 8081, $t, 's_glob.log'); | 93 $t->run_daemon(\&syslog_daemon, port(1), $t, 's_glob.log'); |
94 $t->run_daemon(\&syslog_daemon, 8082, $t, 's_info.log'); | 94 $t->run_daemon(\&syslog_daemon, port(2), $t, 's_info.log'); |
95 | 95 |
96 $t->waitforfile($t->testdir . '/s_glob.log'); | 96 $t->waitforfile($t->testdir . '/s_glob.log'); |
97 $t->waitforfile($t->testdir . '/s_info.log'); | 97 $t->waitforfile($t->testdir . '/s_info.log'); |
98 | 98 |
99 $t->run(); | 99 $t->run(); |
100 | 100 |
101 open STDERR, ">&", \*OLDERR; | 101 open STDERR, ">&", \*OLDERR; |
102 | 102 |
103 ############################################################################### | 103 ############################################################################### |
104 | 104 |
105 my $s = Test::Nginx::IMAP->new(); | 105 my $s = Test::Nginx::IMAP->new(PeerAddr => '127.0.0.1:' . port(3)); |
106 $s->ok('greeting'); | 106 $s->ok('greeting'); |
107 | 107 |
108 # error_log levels | 108 # error_log levels |
109 | 109 |
110 SKIP: { | 110 SKIP: { |
126 is_deeply(levels($t, 'e_glob.log'), levels($t, 'e_glob2.log'), | 126 is_deeply(levels($t, 'e_glob.log'), levels($t, 'e_glob2.log'), |
127 'multiple error global'); | 127 'multiple error global'); |
128 | 128 |
129 # syslog | 129 # syslog |
130 | 130 |
131 parse_syslog_message('syslog', get_syslog()); | 131 parse_syslog_message('syslog', get_syslog(port(6))); |
132 | 132 |
133 is_deeply(levels($t, 's_glob.log'), levels($t, 'e_glob.log'), | 133 is_deeply(levels($t, 's_glob.log'), levels($t, 'e_glob.log'), |
134 'global syslog messages'); | 134 'global syslog messages'); |
135 is_deeply(levels($t, 's_info.log'), levels($t, 'e_info.log'), | 135 is_deeply(levels($t, 's_info.log'), levels($t, 'e_info.log'), |
136 'mail syslog messages'); | 136 'mail syslog messages'); |
162 | 162 |
163 sub get_syslog { | 163 sub get_syslog { |
164 my ($port) = @_; | 164 my ($port) = @_; |
165 my $data = ''; | 165 my $data = ''; |
166 my ($s); | 166 my ($s); |
167 | |
168 $port = 8080 unless defined $port; | |
169 | 167 |
170 eval { | 168 eval { |
171 local $SIG{ALRM} = sub { die "timeout\n" }; | 169 local $SIG{ALRM} = sub { die "timeout\n" }; |
172 local $SIG{PIPE} = sub { die "sigpipe\n" }; | 170 local $SIG{PIPE} = sub { die "sigpipe\n" }; |
173 alarm(1); | 171 alarm(1); |
181 if ($@) { | 179 if ($@) { |
182 log_in("died: $@"); | 180 log_in("died: $@"); |
183 return undef; | 181 return undef; |
184 } | 182 } |
185 | 183 |
186 Test::Nginx::IMAP->new(PeerAddr => "127.0.0.1:8145")->read(); | 184 Test::Nginx::IMAP->new(PeerAddr => '127.0.0.1:' . port(5))->read(); |
187 | 185 |
188 IO::Select->new($s)->can_read(1.5); | 186 IO::Select->new($s)->can_read(1.5); |
189 while (IO::Select->new($s)->can_read(0.1)) { | 187 while (IO::Select->new($s)->can_read(0.1)) { |
190 my $buffer; | 188 my $buffer; |
191 sysread($s, $buffer, 4096); | 189 sysread($s, $buffer, 4096); |