annotate rewrite_set.t @ 1912:f61d1b4ac638

Tests: unbreak quic_ciphers.t with AEAD_AES_128_CCM enabled. Although CCM ciphers are disabled in a stock OpenSSL as rarely used, "to reduce ClientHello bloat", AEAD_AES_128_CCM is apparently turned back in certain distributions such as RHEL. Previously, this caused testing connections to fail as the CCM cipher being negotiated isn't supported yet in nginx. Now the test is skipped instead on failure. While here, fixed nearby style.
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 14 Jun 2023 16:57:01 +0400
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 ###############################################################################