annotate http_variables.t @ 1542:451e787aad76

Tests: reworked libgd version detection. The "libgd-config" binary is deprecated in recent versions and may not exist or have unexpected output. More, it may not present within older versions, as well, if installed separately, which previously broke test assumptions. The fix is change the fallback to skip tests. In addition, recent Perl GD module (2.57) started to export libgd version, which is now also consulted.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 13 Jan 2020 18:15:35 +0300
parents 4bc1490cedbc
children cd6abbe0f989
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
185
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
1 #!/usr/bin/perl
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
2
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
4 # (C) Valentin Bartenev
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
5
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
6 # Tests for http variables.
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
7
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
8 ###############################################################################
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
9
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
10 use warnings;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
11 use strict;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
12
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
13 use Test::More;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
14
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
16
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
17 use lib 'lib';
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
18 use Test::Nginx;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
19
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
20 ###############################################################################
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
21
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
22 select STDERR; $| = 1;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
23 select STDOUT; $| = 1;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
24
1464
4bc1490cedbc Tests: added $limit_rate test with invalid empty value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1130
diff changeset
25 my $t = Test::Nginx->new()->has(qw/http rewrite proxy/)->plan(6);
185
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
26
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
27 $t->write_file_expand('nginx.conf', <<'EOF');
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
28
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
29 %%TEST_GLOBALS%%
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
30
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
31 daemon off;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
32
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
33 events {
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
34 }
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
35
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
36 http {
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
38
192
f2a48c528b3b Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents: 185
diff changeset
39 log_format cc "$uri: $sent_http_cache_control";
185
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
40
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
41 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
42 listen 127.0.0.1:8080;
185
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
43 server_name localhost;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
44
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
45 access_log %%TESTDIR%%/cc.log cc;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
46
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
47 location / {
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
48 return 200 OK;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
49 }
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
50
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
51 location /set {
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
52 add_header Cache-Control max-age=3600;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
53 add_header Cache-Control private;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
54 add_header Cache-Control must-revalidate;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
55 return 200 OK;
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
56 }
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
57
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
58 location /redefine {
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
59 expires epoch;
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
60 proxy_pass http://127.0.0.1:8080/set;
185
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
61 }
999
ff12dfdb0cda Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
62
ff12dfdb0cda Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
63 location /limit_rate {
1464
4bc1490cedbc Tests: added $limit_rate test with invalid empty value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1130
diff changeset
64 set $limit_rate $arg_l;
999
ff12dfdb0cda Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
65 add_header X-Rate $limit_rate;
ff12dfdb0cda Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
66 return 200 OK;
ff12dfdb0cda Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
67 }
185
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
68 }
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
69 }
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
70
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
71 EOF
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
72
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
73 $t->run();
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
74
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
75 ###############################################################################
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
76
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
77 http_get('/');
441
cd61bacbbfe0 Tests: ensure that $uri is reset on URI parsing errors.
Sergey Kandaurov <pluknet@nginx.com>
parents: 264
diff changeset
78 http_get('/../bad_uri');
185
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
79 http_get('/redefine');
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
80
999
ff12dfdb0cda Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
81 # $limit_rate is a special variable that has its own set_handler / get_handler
ff12dfdb0cda Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
82
1464
4bc1490cedbc Tests: added $limit_rate test with invalid empty value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1130
diff changeset
83 like(http_get('/limit_rate?l=40k'), qr/X-Rate: 40960/, 'limit_rate handlers');
4bc1490cedbc Tests: added $limit_rate test with invalid empty value.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1130
diff changeset
84 like(http_get('/limit_rate'), qr/X-Rate: 0/, 'limit_rate invalid');
999
ff12dfdb0cda Tests: added test for the $limit_rate variable.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
85
185
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
86 $t->stop();
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
87
908
adf5671391ac Tests: use read_file subroutine in several tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 447
diff changeset
88 my $log = $t->read_file('cc.log');
441
cd61bacbbfe0 Tests: ensure that $uri is reset on URI parsing errors.
Sergey Kandaurov <pluknet@nginx.com>
parents: 264
diff changeset
89 like($log, qr!^: -$!m, 'no uri');
192
f2a48c528b3b Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents: 185
diff changeset
90 like($log, qr!^/: -$!m, 'no header');
1130
cb46ac65d50e Tests: fixed expected value for multiple Cache-Control headers.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1000
diff changeset
91 like($log, qr!^/set: max-age=3600, private, must-revalidate$!m,
192
f2a48c528b3b Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents: 185
diff changeset
92 'multi headers');
185
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
93
192
f2a48c528b3b Tests: fixed http variables test, log entries order may differ.
Valentin Bartenev <ne@vbart.ru>
parents: 185
diff changeset
94 like($log, qr!^/redefine: no-cache$!m, 'ignoring headers with (hash == 0)');
185
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
95
43fe964de06a Tests: added tests for the $sent_http_cache_control variable.
Valentin Bartenev <ne@vbart.ru>
parents:
diff changeset
96 ###############################################################################