annotate stream_error_log.t @ 1236:93f749c1d5c5

Tests: fixed parallel tests execution with UDP. Previously, when checking ports availability, a UDP socket was always created first, then a TCP socket was created. On success, one of UDP and TCP sockets was closed (depending on the "udp" option) and the second one was used to busy this port in other scripts. This lead to the following problem: in an attempt to reopen a UDP socket used in a given testing script it could be stolen by another script as part of checking ports availability. To solve this problem, UDP and TCP ports were split into two non-overlapping ranges: TCP ports are only used in the range 8000-8499, and UDP ports - in the range 8500-8999. In addition, the order of creating sockets in UDP tests has been reversed: now a TCP socket used as a lock precedes a UDP socket.
author Andrey Zelenkov <zelenkov@nginx.com>
date Thu, 26 Oct 2017 18:00:21 +0300
parents 3fc6817cd84a
children e4974af3fb12
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6 # Stream tests for error_log.
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15 use IO::Select;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 BEGIN { use FindBin; chdir($FindBin::Bin); }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19 use lib 'lib';
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20 use Test::Nginx;
816
77359b849cd5 Tests: stream package.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 567
diff changeset
21 use Test::Nginx::Stream qw/ stream /;
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 ###############################################################################
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25 select STDERR; $| = 1;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
26 select STDOUT; $| = 1;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27
562
abf5f3197967 Tests: skipped stream_error_log.t on win32.
Sergey Kandaurov <pluknet@nginx.com>
parents: 558
diff changeset
28 plan(skip_all => 'win32') if $^O eq 'MSWin32';
abf5f3197967 Tests: skipped stream_error_log.t on win32.
Sergey Kandaurov <pluknet@nginx.com>
parents: 558
diff changeset
29
567
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
30 my $t = Test::Nginx->new()->has(qw/stream/)->plan(34);
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32 $t->write_file_expand('nginx.conf', <<'EOF');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 %%TEST_GLOBALS%%
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36 error_log %%TESTDIR%%/e_glob.log info;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 error_log %%TESTDIR%%/e_glob2.log info;
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
38 error_log syslog:server=127.0.0.1:%%PORT_8083_UDP%% info;
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40 daemon off;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42 events {
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45 stream {
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46 upstream u {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
47 server 127.0.0.1:%%PORT_8083_UDP%% down;
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
51 listen 127.0.0.1:8080;
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52 proxy_pass u;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54 error_log %%TESTDIR%%/e_debug.log debug;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
55 error_log %%TESTDIR%%/e_info.log info;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
56 error_log %%TESTDIR%%/e_emerg.log emerg;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
57 error_log stderr info;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
60 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
61 listen 127.0.0.1:8082;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
62 proxy_pass 127.0.0.1:8081;
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
64 error_log %%TESTDIR%%/e_stream.log info;
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
65 error_log syslog:server=127.0.0.1:%%PORT_8085_UDP%% info;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
66 error_log syslog:server=127.0.0.1:%%PORT_8084_UDP%% info;
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
69
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
70 EOF
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
71
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
72 open OLDERR, ">&", \*STDERR;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
73 open STDERR, '>', $t->testdir() . '/stderr' or die "Can't reopen STDERR: $!";
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
74 open my $stderr, '<', $t->testdir() . '/stderr'
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
75 or die "Can't open stderr file: $!";
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
76
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
77 $t->run_daemon(\&stream_daemon);
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
78 $t->run_daemon(\&syslog_daemon, port(8083), $t, 's_glob.log');
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
79 $t->run_daemon(\&syslog_daemon, port(8084), $t, 's_stream.log');
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
80
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
81 $t->waitforsocket('127.0.0.1:' . port(8081));
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
82 $t->waitforfile($t->testdir . '/s_glob.log');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
83 $t->waitforfile($t->testdir . '/s_stream.log');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
84
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
85 $t->run();
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
86
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
87 open STDERR, ">&", \*OLDERR;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
88
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
89 ###############################################################################
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
90
1235
3fc6817cd84a Tests: explicit peer port in stream tests now required.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 974
diff changeset
91 stream('127.0.0.1:' . port(8080))->io('data');
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
92
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
93 # error_log levels
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
94
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
95 SKIP: {
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
96 skip "no --with-debug", 1 unless $t->has_module('--with-debug');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
97
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
98 isnt(lines($t, 'e_debug.log', '[debug]'), 0, 'file debug in debug');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
99
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
100 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
101
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
102 isnt(lines($t, 'e_info.log', '[info]'), 0, 'file info in info');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
103 is(lines($t, 'e_info.log', '[debug]'), 0, 'file debug in info');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
104 isnt(lines($t, 'stderr', '[info]'), 0, 'stderr info in info');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
105 is(lines($t, 'stderr', '[debug]'), 0, 'stderr debug in info');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
106
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
107 # multiple error_log
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
108
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
109 like($t->read_file('e_glob.log'), qr!nginx/[.0-9]+!, 'error global');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
110 like($t->read_file('e_glob2.log'), qr!nginx/[.0-9]+!, 'error global 2');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
111 is_deeply(levels($t, 'e_glob.log'), levels($t, 'e_glob2.log'),
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
112 'multiple error global');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
113
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
114 # syslog
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
115
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
116 parse_syslog_message('syslog', get_syslog('data2', '127.0.0.1:' . port(8082),
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
117 port(8085)));
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
118
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
119 is_deeply(levels($t, 's_glob.log'), levels($t, 'e_glob.log'),
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
120 'global syslog messages');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
121 is_deeply(levels($t, 's_stream.log'), levels($t, 'e_stream.log'),
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
122 'stream syslog messages');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
123
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
124 # error_log context
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
125
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
126 SKIP: {
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
127 skip "relies on error log contents", 5 unless $ENV{TEST_NGINX_UNSAFE};
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
128
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
129 my $msg = 'no live upstreams while connecting to upstream, '
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
130 . 'client: 127.0.0.1, server: 127.0.0.1:' . port(8080)
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
131 . ', upstream: "u"';
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
132
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
133 unlike($t->read_file('e_glob.log'), qr/$msg/ms, 'stream error in global');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
134 like($t->read_file('e_info.log'), qr/$msg/ms, 'stream error in info');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
135 like($t->read_file('stderr'), qr/$msg/ms, 'stream error in info stderr');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
136 unlike($t->read_file('e_emerg.log'), qr/$msg/ms, 'stream error in emerg');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
137
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
138 $msg = "bytes from/to client:5/4, bytes from/to upstream:4/5";
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
139
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
140 like($t->read_file('e_stream.log'), qr/$msg/ms, 'stream byte counters');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
141
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
142 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
143
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
144 ###############################################################################
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
145
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
146 sub lines {
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
147 my ($t, $file, $pattern) = @_;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
148
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
149 if ($file eq 'stderr') {
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
150 return map { $_ =~ /\Q$pattern\E/ } (<$stderr>);
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
151 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
152
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
153 my $path = $t->testdir() . '/' . $file;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
154 open my $fh, '<', $path or return "$!";
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
155 my $value = map { $_ =~ /\Q$pattern\E/ } (<$fh>);
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
156 close $fh;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
157 return $value;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
158 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
159
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
160 sub levels {
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
161 my ($t, $file) = @_;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
162 my %levels_hash;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
163
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
164 map { $levels_hash{$_}++; } ($t->read_file($file) =~ /(\[\w+\])/g);
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
165
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
166 return \%levels_hash;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
167 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
168
567
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
169 sub get_syslog {
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
170 my ($data, $peer, $port) = @_;
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
171 my ($s);
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
172
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
173 eval {
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
174 local $SIG{ALRM} = sub { die "timeout\n" };
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
175 local $SIG{PIPE} = sub { die "sigpipe\n" };
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
176 alarm(1);
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
177 $s = IO::Socket::INET->new(
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
178 Proto => 'udp',
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
179 LocalAddr => "127.0.0.1:$port"
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
180 );
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
181 alarm(0);
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
182 };
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
183 alarm(0);
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
184 if ($@) {
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
185 log_in("died: $@");
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
186 return undef;
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
187 }
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
188
816
77359b849cd5 Tests: stream package.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 567
diff changeset
189 stream($peer)->io($data);
567
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
190 $data = '';
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
191
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
192 IO::Select->new($s)->can_read(1.5);
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
193 while (IO::Select->new($s)->can_read(0.1)) {
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
194 my $buffer;
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
195 sysread($s, $buffer, 4096);
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
196 $data .= $buffer;
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
197 }
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
198 $s->close();
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
199 return $data;
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
200 }
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
201
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
202 sub parse_syslog_message {
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
203 my ($desc, $line) = @_;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
204
567
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
205 ok($line, $desc);
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
206
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
207 SKIP: {
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
208 skip "$desc timeout", 18 unless $line;
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
209
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
210 my @months = ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug',
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
211 'Sep', 'Oct', 'Nov', 'Dec');
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
212
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
213 my ($pri, $mon, $mday, $hour, $minute, $sec, $host, $tag, $msg) =
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
214 $line =~ /^<(\d{1,3})> # PRI
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
215 ([A-Z][a-z]{2})\s # mon
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
216 ([ \d]\d)\s(\d{2}):(\d{2}):(\d{2})\s # date
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
217 ([\S]*)\s # host
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
218 (\w{1,32}):\s # tag
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
219 (.*)/x; # MSG
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
220
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
221 my $sev = $pri & 0x07;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
222 my $fac = ($pri & 0x03f8) >> 3;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
223
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
224 ok(defined($pri), "$desc has PRI");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
225 ok($sev >= 0 && $sev <= 7, "$desc valid severity");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
226 ok($fac >= 0 && $fac < 24, "$desc valid facility");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
227
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
228 ok(defined($mon), "$desc has month");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
229 ok((grep $mon, @months), "$desc valid month");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
230
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
231 ok(defined($mday), "$desc has day");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
232 ok($mday <= 31, "$desc valid day");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
233
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
234 ok(defined($hour), "$desc has hour");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
235 ok($hour < 24, "$desc valid hour");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
236
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
237 ok(defined($minute), "$desc has minutes");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
238 ok($minute < 60, "$desc valid minutes");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
239
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
240 ok(defined($sec), "$desc has seconds");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
241 ok($sec < 60, "$desc valid seconds");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
242
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
243 ok(defined($host), "$desc has host");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
244 chomp(my $hostname = lc `hostname`);
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
245 is($host , $hostname, "$desc valid host");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
246
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
247 ok(defined($tag), "$desc has tag");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
248 like($tag, qr'\w+', "$desc valid tag");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
249
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
250 ok(length($msg) > 0, "$desc valid CONTENT");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
251 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
252
567
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
253 }
22bade4c7e12 Tests: in stream, made sure to get syslog data to test its format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 565
diff changeset
254
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
255 ###############################################################################
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
256
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
257 sub syslog_daemon {
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
258 my ($port, $t, $file) = @_;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
259
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
260 my $s = IO::Socket::INET->new(
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
261 Proto => 'udp',
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
262 LocalAddr => "127.0.0.1:$port"
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
263 );
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
264
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
265 open my $fh, '>', $t->testdir() . '/' . $file;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
266 select $fh; $| = 1;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
267
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
268 while (1) {
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
269 my $buffer;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
270 $s->recv($buffer, 4096);
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
271 print $fh $buffer . "\n";
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
272 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
273 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
274
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
275 sub stream_daemon {
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
276 my $server = IO::Socket::INET->new(
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
277 Proto => 'tcp',
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
278 LocalHost => '127.0.0.1',
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
279 LocalPort => port(8081),
558
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
280 Listen => 5,
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
281 Reuse => 1
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
282 )
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
283 or die "Can't create listening socket: $!\n";
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
284
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
285 local $SIG{PIPE} = 'IGNORE';
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
286
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
287 while (my $client = $server->accept()) {
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
288 $client->autoflush(1);
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
289
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
290 log2c("(new connection $client)");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
291
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
292 $client->sysread(my $buffer, 65536) or next;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
293
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
294 log2i("$client $buffer");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
295
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
296 $buffer = $client->sockport();
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
297
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
298 log2o("$client $buffer");
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
299
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
300 $client->syswrite($buffer);
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
301
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
302 close $client;
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
303 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
304 }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
305
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
306 sub log2i { Test::Nginx::log_core('|| <<', @_); }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
307 sub log2o { Test::Nginx::log_core('|| >>', @_); }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
308 sub log2c { Test::Nginx::log_core('||', @_); }
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
309
27740a2dd781 Tests: stream error_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
310 ###############################################################################