annotate stream_access_log.t @ 1248:70192b1baf01

Tests: added exception test to stream_js.t using 'require'. The stream js tests introduced in edf5a3c9e36a fail on njs 0.1.14. It doesn't currently provide an easy way to check its version, whilst we are obligated to gracefully handle such cases somehow. With such an addition of 'require', now the tests are skipped instead on the previous versions.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 21 Nov 2017 13:16:39 +0300
parents 717030fd5a94
children 766bcbb632ee
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1024
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6 # Tests for stream access_log module and variables.
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 use lib 'lib';
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19 use Test::Nginx::Stream qw/ stream /;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21 ###############################################################################
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 select STDERR; $| = 1;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25
1175
717030fd5a94 Tests: added gzip prerequisite for "access_log ... gzip".
Maxim Dounin <mdounin@mdounin.ru>
parents: 1024
diff changeset
26 my $t = Test::Nginx->new()->has(qw/stream stream_map gzip/);
1024
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28 $t->write_file_expand('nginx.conf', <<'EOF');
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30 %%TEST_GLOBALS%%
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32 daemon off;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 events {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 stream {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38 log_format test $server_addr;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39 log_format vars $connection:$nginx_version:$hostname:$pid;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40 log_format addr $binary_remote_addr:$remote_addr:$remote_port:
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41 $server_addr:$server_port:$upstream_addr;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42 log_format date $msec!$time_local!$time_iso8601;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43 log_format byte $bytes_received:$bytes_sent:
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44 $upstream_bytes_sent:$upstream_bytes_received;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45 log_format time $upstream_connect_time:$upstream_first_byte_time:
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46 $upstream_session_time;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
47
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48 access_log %%TESTDIR%%/off.log test;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50 map $server_port $logme {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
51 %%PORT_8083%% 1;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52 default 0;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
55 server {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
56 listen 127.0.0.1:8081;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
57 proxy_pass 127.0.0.1:8080;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58 access_log off;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
60
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
61 server {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62 listen 127.0.0.1:8082;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63 proxy_pass 127.0.0.1:8080;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
64 access_log %%TESTDIR%%/time.log time;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67 server {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68 listen 127.0.0.1:8083;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
69 listen 127.0.0.1:8084;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
70 proxy_pass 127.0.0.1:8080;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
71 access_log %%TESTDIR%%/filtered.log test if=$logme;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
72 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
73
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
74 server {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
75 listen 127.0.0.1:8085;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
76 proxy_pass 127.0.0.1:8080;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
77 access_log %%TESTDIR%%/complex.log test if=$logme$logme;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
78 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
79
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
80 server {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
81 listen 127.0.0.1:8086;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
82 proxy_pass 127.0.0.1:8080;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
83 access_log %%TESTDIR%%/compressed.log test
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
84 gzip buffer=1m flush=100ms;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
85 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
86
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
87 server {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
88 listen 127.0.0.1:8087;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
89 proxy_pass 127.0.0.1:8080;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
90 access_log %%TESTDIR%%/varlog_$bytes_sent.log test;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
91 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
92
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
93 server {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
94 listen 127.0.0.1:8088;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
95 proxy_pass 127.0.0.1:8080;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
96 access_log %%TESTDIR%%/vars.log vars;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
97 access_log %%TESTDIR%%/addr.log addr;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
98 access_log %%TESTDIR%%/date.log date;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
99 access_log %%TESTDIR%%/byte.log byte;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
100 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
101 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
102
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
103 EOF
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
104
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
105 $t->run_daemon(\&stream_daemon);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
106 $t->try_run('no stream access_log')->plan(10);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
107
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
108 $t->waitforsocket('127.0.0.1:' . port(8080));
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
109
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
110 ###############################################################################
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
111
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
112 my $str = 'SEE-THIS';
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
113
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
114 stream('127.0.0.1:' . port(8081))->io($str);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
115 stream('127.0.0.1:' . port(8082))->io($str);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
116 stream('127.0.0.1:' . port(8083))->io($str);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
117 stream('127.0.0.1:' . port(8084))->io($str);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
118 stream('127.0.0.1:' . port(8085))->io($str);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
119 stream('127.0.0.1:' . port(8086))->io($str);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
120 stream('127.0.0.1:' . port(8087))->io($str);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
121
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
122 my $dport = port(8088);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
123 my $s = stream("127.0.0.1:$dport");
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
124 my $lhost = $s->sockhost();
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
125 my $escaped = $s->sockaddr();
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
126 $escaped =~ s/([^\x20-\x7e])/sprintf('\\x%02X', ord($1))/gmxe;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
127 my $lport = $s->sockport();
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
128 my $uport = port(8080);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
129
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
130 $s->io($str);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
131
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
132 # wait for file to appear with nonzero size thanks to the flush parameter
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
133
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
134 for (1 .. 10) {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
135 last if -s $t->testdir() . '/compressed.log';
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
136 select undef, undef, undef, 0.1;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
137 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
138
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
139 # verify that "gzip" parameter turns on compression
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
140
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
141 SKIP: {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
142 eval { require IO::Uncompress::Gunzip; };
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
143 skip("IO::Uncompress::Gunzip not installed", 1) if $@;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
144
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
145 my $gzipped = $t->read_file('compressed.log');
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
146 my $log;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
147 IO::Uncompress::Gunzip::gunzip(\$gzipped => \$log);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
148 like($log, qr/^127.0.0.1/, 'compressed log - flush time');
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
149 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
150
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
151 # now verify all other logs
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
152
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
153 $t->stop();
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
154
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
155 is($t->read_file('off.log'), '', 'log off');
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
156 is($t->read_file('filtered.log'), "127.0.0.1\n", 'log filtering');
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
157 ok($t->read_file('complex.log'), 'if with complex value');
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
158 ok($t->read_file('varlog_3.log'), 'variable in file');
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
159
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
160 chomp(my $hostname = lc `hostname`);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
161 like($t->read_file('vars.log'), qr/^\d+:[\d.]+:$hostname:\d+$/, 'log vars');
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
162 is($t->read_file('addr.log'),
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
163 "$escaped:$lhost:$lport:127.0.0.1:$dport:127.0.0.1:$uport\n",
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
164 'log addr');
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
165 like($t->read_file('date.log'), qr#^\d+.\d+![-+\w/: ]+![-+\dT:]+$#, 'log date');
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
166 is($t->read_file('byte.log'), "8:3:8:3\n", 'log bytes');
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
167 like($t->read_file('time.log'), qr/0\.\d{3}:0\.\d{3}:0\.\d{3}/, 'log time');
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
168
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
169 ###############################################################################
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
170
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
171 sub stream_daemon {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
172 my $server = IO::Socket::INET->new(
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
173 Proto => 'tcp',
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
174 LocalAddr => '127.0.0.1',
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
175 LocalPort => port(8080),
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
176 Listen => 5,
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
177 Reuse => 1
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
178 )
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
179 or die "Can't create listening socket: $!\n";
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
180
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
181 local $SIG{PIPE} = 'IGNORE';
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
182
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
183 while (my $client = $server->accept()) {
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
184 $client->autoflush(1);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
185
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
186 log2c("(new connection $client)");
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
187
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
188 $client->sysread(my $buffer, 65536) or next;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
189
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
190 log2i("$client $buffer");
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
191
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
192 $buffer = "ack";
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
193
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
194 log2o("$client $buffer");
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
195
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
196 $client->syswrite($buffer);
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
197
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
198 close $client;
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
199 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
200 }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
201
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
202 sub log2i { Test::Nginx::log_core('|| <<', @_); }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
203 sub log2o { Test::Nginx::log_core('|| >>', @_); }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
204 sub log2c { Test::Nginx::log_core('||', @_); }
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
205
91e64c1ceec9 Tests: stream access_log tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
206 ###############################################################################