annotate access_log.t @ 1427:eb1d883305ea

Tests: avoid edge cases in upstream random two test. Unavailable servers contribute to the number of attempts, if selected, before the balancer would fall back to the default round-robin method. This means that it's quite possible to get server with more connections. To facilitate with selecting two alive servers, down server was removed from the upstream configuration at the cost of slightly worse coverage.
author Sergey Kandaurov <pluknet@nginx.com>
date Thu, 10 Jan 2019 17:42:34 +0300
parents 5eb82b417fd6
children 03cf423ea140
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
2
1385
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
3 # (C) Sergey Kandaurov
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
5
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
6 # Tests for access_log.
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
7
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
8 ###############################################################################
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
9
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
10 use warnings;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
11 use strict;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
12
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
13 use Test::More;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
14
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
16
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
17 use lib 'lib';
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
19
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
20 ###############################################################################
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
21
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
22 select STDERR; $| = 1;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
23 select STDOUT; $| = 1;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
24
1385
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
25 my $t = Test::Nginx->new()->has(qw/http rewrite gzip/)->plan(18)
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
26 ->write_file_expand('nginx.conf', <<'EOF');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
27
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
28 %%TEST_GLOBALS%%
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
29
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
30 daemon off;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
31
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
32 events {
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
33 }
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
34
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
35 http {
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
36 %%TEST_GLOBALS_HTTP%%
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
37
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
38 log_format test "$uri:$status";
1188
074e05b33b1a Tests: added access_log test with long line in log_format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1175
diff changeset
39 log_format long "long line $uri:$status";
900
257de77879e8 Tests: added access_log test with binary data.
Sergey Kandaurov <pluknet@nginx.com>
parents: 899
diff changeset
40 log_format binary $binary_remote_addr;
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
41
1385
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
42 log_format default escape=default $arg_a$arg_b$arg_c;
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
43 log_format none escape=none $arg_a$arg_b$arg_c;
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
44 log_format json escape=json $arg_a$arg_b$arg_c;
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
45
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
46 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
47 listen 127.0.0.1:8080;
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
48 server_name localhost;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
49
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
50 location /combined {
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
51 access_log %%TESTDIR%%/combined.log;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
52 return 200 OK;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
53
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
54 location /combined/off {
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
55 access_log off;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
56 return 200 OK;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
57 }
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
58 }
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
59
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
60 location /filtered {
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
61 access_log %%TESTDIR%%/filtered.log test
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
62 if=$arg_logme;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
63 return 200 OK;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
64 }
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
65
463
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
66 location /filtered/complex {
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
67 access_log %%TESTDIR%%/complex.log test
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
68 if=$arg_logme$arg_logmetoo;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
69 return 200 OK;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
70 }
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
71
463
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
72 location /filtered/noreuse {
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
73 access_log %%TESTDIR%%/noreuse.log test buffer=16k
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
74 if=$arg_a;
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
75 access_log %%TESTDIR%%/noreuse.log test buffer=16k
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
76 if=$arg_b;
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
77 return 200 OK;
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
78 }
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
79
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
80 location /compressed {
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
81 access_log %%TESTDIR%%/compressed.log test
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
82 gzip buffer=1m flush=100ms;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
83 return 200 OK;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
84 }
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
85
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
86 location /multi {
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
87 access_log %%TESTDIR%%/multi1.log test;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
88 access_log %%TESTDIR%%/multi2.log test;
1188
074e05b33b1a Tests: added access_log test with long line in log_format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1175
diff changeset
89 access_log %%TESTDIR%%/long.log long;
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
90 return 200 OK;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
91 }
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
92
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
93 location /varlog {
616
e9f48f1e905b Tests: avoid alert/crit error logs in access_log.t.
Sergey Kandaurov <pluknet@nginx.com>
parents: 568
diff changeset
94 access_log %%TESTDIR%%/varlog_${arg_logname} test;
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
95 return 200 OK;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
96 }
900
257de77879e8 Tests: added access_log test with binary data.
Sergey Kandaurov <pluknet@nginx.com>
parents: 899
diff changeset
97
1189
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
98 location /cache {
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
99 open_log_file_cache max=3 inactive=20s valid=1m min_uses=2;
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
100 access_log %%TESTDIR%%/dir/cache_${arg_logname} test;
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
101 return 200 OK;
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
102 }
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
103
900
257de77879e8 Tests: added access_log test with binary data.
Sergey Kandaurov <pluknet@nginx.com>
parents: 899
diff changeset
104 location /binary {
257de77879e8 Tests: added access_log test with binary data.
Sergey Kandaurov <pluknet@nginx.com>
parents: 899
diff changeset
105 access_log %%TESTDIR%%/binary.log binary;
257de77879e8 Tests: added access_log test with binary data.
Sergey Kandaurov <pluknet@nginx.com>
parents: 899
diff changeset
106 }
1385
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
107
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
108 location /escape {
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
109 access_log %%TESTDIR%%/test.log default;
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
110 access_log %%TESTDIR%%/none.log none;
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
111 access_log %%TESTDIR%%/json.log json;
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
112 }
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
113 }
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
114 }
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
115
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
116 EOF
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
117
1217
7df2265e61be Tests: made access_log.t pass under root user again (closes #1379).
Sergey Kandaurov <pluknet@nginx.com>
parents: 1191
diff changeset
118 my $d = $t->testdir();
7df2265e61be Tests: made access_log.t pass under root user again (closes #1379).
Sergey Kandaurov <pluknet@nginx.com>
parents: 1191
diff changeset
119
7df2265e61be Tests: made access_log.t pass under root user again (closes #1379).
Sergey Kandaurov <pluknet@nginx.com>
parents: 1191
diff changeset
120 mkdir "$d/dir";
7df2265e61be Tests: made access_log.t pass under root user again (closes #1379).
Sergey Kandaurov <pluknet@nginx.com>
parents: 1191
diff changeset
121
568
907e89fba9c3 Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 467
diff changeset
122 $t->run();
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
123
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
124 ###############################################################################
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
125
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
126 http_get('/combined');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
127 http_get('/combined/off');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
128
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
129 http_get('/filtered');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
130 http_get('/filtered/empty?logme=');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
131 http_get('/filtered/zero?logme=0');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
132 http_get('/filtered/good?logme=1');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
133 http_get('/filtered/work?logme=yes');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
134
463
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
135 http_get('/filtered/complex');
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
136 http_get('/filtered/complex/one?logme=1');
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
137 http_get('/filtered/complex/two?logmetoo=1');
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
138 http_get('/filtered/complex/either1?logme=A&logmetoo=B');
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
139 http_get('/filtered/complex/either2?logme=A');
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
140 http_get('/filtered/complex/either3?logmetoo=B');
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
141 http_get('/filtered/complex/either4?logme=0&logmetoo=0');
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
142 http_get('/filtered/complex/neither?logme=&logmetoo=');
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
143
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
144 http_get('/filtered/noreuse1/zero?a=0');
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
145 http_get('/filtered/noreuse1/good?a=1');
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
146 http_get('/filtered/noreuse2/zero?b=0');
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
147 http_get('/filtered/noreuse2/good?b=1');
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
148
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
149 http_get('/compressed');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
150
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
151 http_get('/multi');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
152
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
153 http_get('/varlog');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
154 http_get('/varlog?logname=');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
155 http_get('/varlog?logname=0');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
156 http_get('/varlog?logname=filename');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
157
900
257de77879e8 Tests: added access_log test with binary data.
Sergey Kandaurov <pluknet@nginx.com>
parents: 899
diff changeset
158 http_get('/binary');
257de77879e8 Tests: added access_log test with binary data.
Sergey Kandaurov <pluknet@nginx.com>
parents: 899
diff changeset
159
1385
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
160 http_get('/escape?a="1 \\ ' . pack("n", 0x1b1c) . ' "&c=2');
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
161
1189
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
162 http_get('/cache?logname=lru');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
163 http_get('/cache?logname=lru');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
164 http_get('/cache?logname=once');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
165 http_get('/cache?logname=first');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
166 http_get('/cache?logname=first');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
167 http_get('/cache?logname=second');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
168 http_get('/cache?logname=second');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
169
1217
7df2265e61be Tests: made access_log.t pass under root user again (closes #1379).
Sergey Kandaurov <pluknet@nginx.com>
parents: 1191
diff changeset
170 rename "$d/dir", "$d/dir_moved";
1189
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
171
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
172 http_get('/cache?logname=lru');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
173 http_get('/cache?logname=once');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
174 http_get('/cache?logname=first');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
175 http_get('/cache?logname=second');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
176
1217
7df2265e61be Tests: made access_log.t pass under root user again (closes #1379).
Sergey Kandaurov <pluknet@nginx.com>
parents: 1191
diff changeset
177 rename "$d/dir_moved", "$d/dir";
1191
a9187b424a94 Tests: restored access mode in open_log_file_cache test earlier.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1189
diff changeset
178
451
be98c162f8bc Tests: adjusted access_log test timeout.
Sergey Kandaurov <pluknet@nginx.com>
parents: 394
diff changeset
179 # wait for file to appear with nonzero size thanks to the flush parameter
be98c162f8bc Tests: adjusted access_log test timeout.
Sergey Kandaurov <pluknet@nginx.com>
parents: 394
diff changeset
180
be98c162f8bc Tests: adjusted access_log test timeout.
Sergey Kandaurov <pluknet@nginx.com>
parents: 394
diff changeset
181 for (1 .. 10) {
1217
7df2265e61be Tests: made access_log.t pass under root user again (closes #1379).
Sergey Kandaurov <pluknet@nginx.com>
parents: 1191
diff changeset
182 last if -s "$d/compressed.log";
451
be98c162f8bc Tests: adjusted access_log test timeout.
Sergey Kandaurov <pluknet@nginx.com>
parents: 394
diff changeset
183 select undef, undef, undef, 0.1;
be98c162f8bc Tests: adjusted access_log test timeout.
Sergey Kandaurov <pluknet@nginx.com>
parents: 394
diff changeset
184 }
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
185
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
186 # verify that "gzip" parameter turns on compression
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
187
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
188 my $log;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
189
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
190 SKIP: {
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
191 eval { require IO::Uncompress::Gunzip; };
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
192 skip("IO::Uncompress::Gunzip not installed", 1) if $@;
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
193
467
43e05ac6c23c Tests: the read_file function added in Test::Nginx.
Sergey Kandaurov <pluknet@nginx.com>
parents: 463
diff changeset
194 my $gzipped = $t->read_file('compressed.log');
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
195 IO::Uncompress::Gunzip::gunzip(\$gzipped => \$log);
458
ae69f9bdba92 Tests: fixed access_log.t on win32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 451
diff changeset
196 like($log, qr!^/compressed:200!s, 'compressed log - flush time');
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
197 }
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
198
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
199 # now verify all other logs
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
200
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
201 $t->stop();
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
202
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
203
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
204 # verify that by default, 'combined' format is used, 'off' disables logging
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
205
746
f75bc412e802 Tests: unbreak access_log tests in jails.
Sergey Kandaurov <pluknet@nginx.com>
parents: 616
diff changeset
206 my $addr = IO::Socket::INET->new(LocalAddr => '127.0.0.1')->sockhost();
f75bc412e802 Tests: unbreak access_log tests in jails.
Sergey Kandaurov <pluknet@nginx.com>
parents: 616
diff changeset
207
899
c0c2fc0e7208 Tests: style.
Sergey Kandaurov <pluknet@nginx.com>
parents: 746
diff changeset
208 like($t->read_file('combined.log'),
746
f75bc412e802 Tests: unbreak access_log tests in jails.
Sergey Kandaurov <pluknet@nginx.com>
parents: 616
diff changeset
209 qr!^\Q$addr - - [\E .*
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
210 \Q] "GET /combined HTTP/1.0" 200 2 "-" "-"\E$!x,
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
211 'default log format');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
212
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
213 # verify that log filtering works
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
214
467
43e05ac6c23c Tests: the read_file function added in Test::Nginx.
Sergey Kandaurov <pluknet@nginx.com>
parents: 463
diff changeset
215 $log = $t->read_file('filtered.log');
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
216 is($log, "/filtered/good:200\n/filtered/work:200\n", 'log filtering');
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
217
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
218 # verify "if=" argument works with complex value
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
219
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
220 my $exp_complex = <<'EOF';
463
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
221 /filtered/complex/one:200
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
222 /filtered/complex/two:200
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
223 /filtered/complex/either1:200
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
224 /filtered/complex/either2:200
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
225 /filtered/complex/either3:200
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
226 /filtered/complex/either4:200
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
227 EOF
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
228
899
c0c2fc0e7208 Tests: style.
Sergey Kandaurov <pluknet@nginx.com>
parents: 746
diff changeset
229 is($t->read_file('complex.log'), $exp_complex, 'if with complex value');
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
230
463
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
231 # buffer created with false "if" is not reused among multiple access_log
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
232
908
adf5671391ac Tests: use read_file subroutine in several tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 900
diff changeset
233 $log = $t->read_file('noreuse.log');
463
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
234 is($log, "/filtered/noreuse1/good:200\n/filtered/noreuse2/good:200\n",
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
235 'log filtering with buffering');
da1a459c9318 Tests: access_log "if=" tests with buffering.
Sergey Kandaurov <pluknet@nginx.com>
parents: 458
diff changeset
236
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
237 # multiple logs in a same location
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
238
899
c0c2fc0e7208 Tests: style.
Sergey Kandaurov <pluknet@nginx.com>
parents: 746
diff changeset
239 is($t->read_file('multi1.log'), "/multi:200\n", 'multiple logs 1');
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
240
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
241 # same content in the second log
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
242
899
c0c2fc0e7208 Tests: style.
Sergey Kandaurov <pluknet@nginx.com>
parents: 746
diff changeset
243 is($t->read_file('multi2.log'), "/multi:200\n", 'multiple logs 2');
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
244
1188
074e05b33b1a Tests: added access_log test with long line in log_format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1175
diff changeset
245 is($t->read_file('long.log'), "long line /multi:200\n", 'long line format');
074e05b33b1a Tests: added access_log test with long line in log_format.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1175
diff changeset
246
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
247 # test log destinations with variables
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
248
899
c0c2fc0e7208 Tests: style.
Sergey Kandaurov <pluknet@nginx.com>
parents: 746
diff changeset
249 is($t->read_file('varlog_0'), "/varlog:200\n", 'varlog literal zero name');
c0c2fc0e7208 Tests: style.
Sergey Kandaurov <pluknet@nginx.com>
parents: 746
diff changeset
250 is($t->read_file('varlog_filename'), "/varlog:200\n", 'varlog good name');
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
251
900
257de77879e8 Tests: added access_log test with binary data.
Sergey Kandaurov <pluknet@nginx.com>
parents: 899
diff changeset
252 # binary data is escaped
980
d10ec0f0bb6d Tests: unbreak access_log tests in jails.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
253 # that's "\\x7F\\x00\\x00\\x01\n" in $binary_remote_addr for "127.0.0.1"
900
257de77879e8 Tests: added access_log test with binary data.
Sergey Kandaurov <pluknet@nginx.com>
parents: 899
diff changeset
254
980
d10ec0f0bb6d Tests: unbreak access_log tests in jails.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
255 my $expected = join '', map { sprintf "\\x%02X", $_ } split /\./, $addr;
d10ec0f0bb6d Tests: unbreak access_log tests in jails.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
256
d10ec0f0bb6d Tests: unbreak access_log tests in jails.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
257 is($t->read_file('binary.log'), "$expected\n", 'binary');
900
257de77879e8 Tests: added access_log test with binary data.
Sergey Kandaurov <pluknet@nginx.com>
parents: 899
diff changeset
258
1385
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
259 # characters escaping
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
260
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
261 is($t->read_file('test.log'),
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
262 '\x221 \x5C \x1B\x1C \x22-2' . "\n", 'escape - default');
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
263 is($t->read_file('none.log'),
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
264 '"1 \\ ' . pack("n", 0x1b1c) . " \"2\n", 'escape - none');
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
265 is($t->read_file('json.log'),
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
266 '\"1 \\\\ \u001B\u001C \"2' . "\n", 'escape - json');
5eb82b417fd6 Tests: access_log escape tests merged.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1217
diff changeset
267
1189
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
268 SKIP: {
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
269 skip 'win32', 4 if $^O eq 'MSWin32';
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
270
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
271 is(@{[$t->read_file('/dir/cache_lru') =~ /\//g]}, 2, 'cache - closed lru');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
272 is(@{[$t->read_file('/dir/cache_once') =~ /\//g]}, 1, 'cache - min_uses');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
273 is(@{[$t->read_file('/dir/cache_first') =~ /\//g]}, 3, 'cache - cached 1');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
274 is(@{[$t->read_file('/dir/cache_second') =~ /\//g]}, 3, 'cache - cached 2');
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
275
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
276 }
1c703303feee Tests: basic open_log_file_cache log module tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1188
diff changeset
277
394
8d436291c09b Tests: added tests for the "access_log" directive.
Vladimir Homutov <vl@nginx.com>
parents:
diff changeset
278 ###############################################################################