Mercurial > hg > nginx-tests
annotate h3_server_tokens.t @ 1940:aec72dcee93b
Tests: unconditional QUIC datagram expansion with Initial packets.
Used to get rid of "quic UDP datagram is too small for initial packet" messages.
In future, we may need this to reconsider to allow mocking with custom padding,
but for now suppressing such messages is sufficiently good enough.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Mon, 11 Dec 2023 14:01:49 +0400 |
parents | 8b74936ff2ac |
children | 78452573505c |
rev | line source |
---|---|
1892
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Andrey Zelenkov |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 # Tests for HTTP/3 protocol with server_tokens directive. |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 use Test::Nginx::HTTP3; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 ############################################################################### |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 select STDERR; $| = 1; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 select STDOUT; $| = 1; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 |
1896
8b74936ff2ac
Tests: added has_feature() test for CryptX.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1892
diff
changeset
|
26 my $t = Test::Nginx->new()->has(qw/http http_v3 rewrite cryptx/) |
1892
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
27 ->has_daemon('openssl')->plan(12); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
28 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 $t->write_file_expand('nginx.conf', <<'EOF'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
30 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 %%TEST_GLOBALS%% |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 daemon off; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
35 events { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 http { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 %%TEST_GLOBALS_HTTP%% |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 ssl_certificate_key localhost.key; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 ssl_certificate localhost.crt; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 server { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 listen 127.0.0.1:%%PORT_8980_UDP%% quic; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 server_name localhost; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
48 location /200 { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 return 200; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
52 location /404 { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
53 return 404; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
54 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
55 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
56 location /off { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
57 server_tokens off; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
58 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
59 location /off/200 { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
60 return 200; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 location /off/404 { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
64 return 404; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
65 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
66 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 location /on { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
69 server_tokens on; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
70 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
71 location /on/200 { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
72 return 200; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
74 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
75 location /on/404 { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
76 return 404; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
77 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
78 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 location /b { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
81 server_tokens build; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 location /b/200 { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 return 200; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
85 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
86 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
87 location /b/404 { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
88 return 404; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
89 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
90 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
91 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
92 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
93 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
94 EOF |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
96 $t->write_file('openssl.conf', <<EOF); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
97 [ req ] |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
98 default_bits = 2048 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
99 encrypt_key = no |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
100 distinguished_name = req_distinguished_name |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
101 [ req_distinguished_name ] |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
102 EOF |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
103 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
104 my $d = $t->testdir(); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
105 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
106 foreach my $name ('localhost') { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
107 system('openssl req -x509 -new ' |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
108 . "-config $d/openssl.conf -subj /CN=$name/ " |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
109 . "-out $d/$name.crt -keyout $d/$name.key " |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
110 . ">>$d/openssl.out 2>&1") == 0 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
111 or die "Can't create certificate for $name: $!\n"; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
112 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
113 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
114 $t->run(); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
115 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
116 ############################################################################### |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
117 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
118 my $re = qr/nginx\/\d+\.\d+\.\d+/; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
119 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
120 like(header_server('/200'), qr/^$re$/, 'http3 tokens default 200'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
121 like(header_server('/404'), qr/^$re$/, 'http3 tokens default 404'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
122 like(body('/404'), qr/$re/, 'http3 tokens default 404 body'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
123 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
124 is(header_server('/off/200'), 'nginx', 'http3 tokens off 200'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
125 is(header_server('/off/404'), 'nginx', 'http3 tokens off 404'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
126 like(body('/off/404'), qr/nginx(?!\/)/, 'http3 tokens off 404 body'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
127 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
128 like(header_server('/on/200'), qr/^$re$/, 'http3 tokens on 200'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
129 like(header_server('/on/404'), qr/^$re$/, 'http3 tokens on 404'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
130 like(body('/on/404'), $re, 'http3 tokens on 404 body'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
131 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
132 $re = qr/$re \(.*\)/ if $t->has_module('--build='); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
133 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
134 like(header_server('/b/200'), qr/^$re$/, 'http3 tokens build 200'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
135 like(header_server('/b/404'), qr/^$re$/, 'http3 tokens build 404'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
136 like(body('/b/404'), qr/$re/, 'http3 tokens build 404 body'); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
137 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
138 ############################################################################### |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
139 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
140 sub header_server { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
141 my ($path) = shift; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
142 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
143 my $s = Test::Nginx::HTTP3->new(); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
144 my $sid = $s->new_stream({ path => $path }); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
145 my $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
146 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
147 my ($frame) = grep { $_->{type} eq "HEADERS" } @$frames; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
148 return $frame->{headers}->{'server'}; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
149 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
150 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
151 sub body { |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
152 my ($path) = shift; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
153 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
154 my $s = Test::Nginx::HTTP3->new(); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
155 my $sid = $s->new_stream({ path => $path }); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
156 my $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
157 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
158 my ($frame) = grep { $_->{type} eq "DATA" } @$frames; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
159 return $frame->{'data'}; |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
160 } |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
161 |
a8fc2f1f6f6f
Tests: HTTP/3 server_tokens tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
162 ############################################################################### |