annotate rewrite_set.t @ 1260:eadd24ccfda1

Tests: postponed startup in certain ssl certificate tests on win32. At least, some win32 hosts exhibit a round-off error or some such in the notBefore field of the certificate generated before starting nginx, such that it can be set to the value one second ahead of the current time. This manifests in spurious test failures due to certificate verify error with a failure reason "certificate is not yet valid".
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 12 Dec 2017 12:53:53 +0300
parents 882267679006
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
448
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6 # Tests for rewrite set.
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 use lib 'lib';
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20 ###############################################################################
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22 select STDERR; $| = 1;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 select STDOUT; $| = 1;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25 my $t = Test::Nginx->new()->has(qw/http rewrite ssi/)->plan(4);
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
26
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27 $t->write_file_expand('nginx.conf', <<'EOF');
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29 %%TEST_GLOBALS%%
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31 daemon off;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33 events {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36 http {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
39 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
40 listen 127.0.0.1:8080;
448
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41 server_name localhost;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43 ssi on;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
44
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
45 location /t1 {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46 set $http_foo "set_foo";
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
47 return 200 'X<!--#echo var="http_foo" -->X';
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
50 location /t2 {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
51 return 200 'X<!--#echo var="http_bar" -->X';
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54 location /t3 {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
55 return 200 'X<!--#echo var="http_baz" -->X';
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
56 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
57
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58 location /t4 {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59 set $http_connection "bar";
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
60 return 200 "X${http_connection}X\n";
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
61 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63 # set in other context
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
64 location /other {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 set $http_bar "set_bar";
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
69
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
70 EOF
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
71
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
72 $t->run();
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
73
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
74 ###############################################################################
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
75
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
76 # prefixed variables
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
77
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
78 like(http_get_extra('/t1.html', 'Foo: http_foo'), qr/Xset_fooX/,
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
79 'set in this context');
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
80 like(http_get_extra('/t2.html', 'Bar: http_bar'), qr/Xhttp_barX/,
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
81 'set in other context');
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
82
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
83 like(http_get_extra('/t3.html', 'Baz: http_baz'), qr/Xhttp_bazX/, 'not set');
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
84
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
85 like(http_get('/t4.html'), qr/XbarX/, 'set get in return');
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
86
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
87 ###############################################################################
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
88
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
89 sub http_get_extra {
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
90 my ($uri, $extra) = @_;
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
91 return http(<<EOF);
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
92 GET $uri HTTP/1.0
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
93 $extra
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
94
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
95 EOF
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
96 }
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
97
29ee0d2b0746 Tests: tests for rewrite "set" directive.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
98 ###############################################################################