Mercurial > hg > nginx-tests
changeset 567:22bade4c7e12
Tests: in stream, made sure to get syslog data to test its format.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Thu, 30 Apr 2015 15:52:26 +0300 |
parents | 4296379213c8 |
children | 907e89fba9c3 |
files | stream_error_log.t |
diffstat | 1 files changed, 46 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/stream_error_log.t Wed Apr 29 15:53:58 2015 +0300 +++ b/stream_error_log.t Thu Apr 30 15:52:26 2015 +0300 @@ -26,7 +26,7 @@ plan(skip_all => 'win32') if $^O eq 'MSWin32'; -my $t = Test::Nginx->new()->has(qw/stream/)->plan(33); +my $t = Test::Nginx->new()->has(qw/stream/)->plan(34); $t->write_file_expand('nginx.conf', <<'EOF'); @@ -61,6 +61,7 @@ proxy_pass 127.0.0.1:8081; error_log %%TESTDIR%%/e_stream.log info; + error_log syslog:server=127.0.0.1:8080 info; error_log syslog:server=127.0.0.1:8084 info; } } @@ -111,9 +112,7 @@ # syslog -stream_get('data2', '127.0.0.1:8082'); - -parse_syslog_message('syslog', $t->read_file('s_stream.log')); +parse_syslog_message('syslog', get_syslog('data2', '127.0.0.1:8082')); is_deeply(levels($t, 's_glob.log'), levels($t, 'e_glob.log'), 'global syslog messages'); @@ -220,9 +219,50 @@ return $buf; } +sub get_syslog { + my ($data, $peer, $port) = @_; + my ($s); + my $rfd = ''; + + $port = 8080 unless defined $port; + + eval { + local $SIG{ALRM} = sub { die "timeout\n" }; + local $SIG{PIPE} = sub { die "sigpipe\n" }; + alarm(1); + $s = IO::Socket::INET->new( + Proto => 'udp', + LocalAddr => "127.0.0.1:$port" + ); + alarm(0); + }; + alarm(0); + if ($@) { + log_in("died: $@"); + return undef; + } + + stream_get($data, $peer); + $data = ''; + + IO::Select->new($s)->can_read(1.5); + while (IO::Select->new($s)->can_read(0.1)) { + my $buffer; + sysread($s, $buffer, 4096); + $data .= $buffer; + } + $s->close(); + return $data; +} + sub parse_syslog_message { my ($desc, $line) = @_; + ok($line, $desc); + +SKIP: { + skip "$desc timeout", 18 unless $line; + my @months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); @@ -266,6 +306,8 @@ ok(length($msg) > 0, "$desc valid CONTENT"); } +} + ############################################################################### sub syslog_daemon {