Mercurial > hg > nginx-tests
annotate h2_proxy_max_temp_file_size.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 | 236d038dc04a |
children | 11463d379570 |
rev | line source |
---|---|
1730
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Sergey Kandaurov |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 # Tests for http proxy module, proxy_max_temp_file_size directive. |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 use Test::Nginx::HTTP2; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 ############################################################################### |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 select STDERR; $| = 1; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 select STDOUT; $| = 1; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 my $t = Test::Nginx->new()->has(qw/http http_v2 proxy/)->plan(4); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
27 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
28 $t->write_file_expand('nginx.conf', <<'EOF'); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
30 %%TEST_GLOBALS%% |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
31 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
32 daemon off; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 events { |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
35 } |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
36 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 http { |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 %%TEST_GLOBALS_HTTP%% |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 server { |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 listen 127.0.0.1:8080 http2; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 server_name localhost; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 proxy_buffer_size 4k; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 proxy_buffers 8 4k; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 location / { |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
48 proxy_max_temp_file_size 4k; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 proxy_pass http://127.0.0.1:8081/; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 } |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
52 location /off/ { |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
53 proxy_max_temp_file_size 0; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
54 proxy_pass http://127.0.0.1:8081/; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
55 } |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
56 } |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
57 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
58 server { |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
59 listen 127.0.0.1:8081; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
60 server_name localhost; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 location / { } |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 } |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
64 } |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
65 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
66 EOF |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 $t->write_file('1', 'X' x (1024 * 1024)); |
1900
236d038dc04a
Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1730
diff
changeset
|
69 |
236d038dc04a
Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1730
diff
changeset
|
70 # suppress deprecation warning |
236d038dc04a
Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1730
diff
changeset
|
71 |
236d038dc04a
Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1730
diff
changeset
|
72 open OLDERR, ">&", \*STDERR; close STDERR; |
1730
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 $t->run(); |
1900
236d038dc04a
Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1730
diff
changeset
|
74 open STDERR, ">&", \*OLDERR; |
1730
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
75 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
76 ############################################################################### |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
77 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
78 # test that the response is wholly proxied when all event pipe buffers are full |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 my $s = Test::Nginx::HTTP2->new(); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
81 my $sid = $s->new_stream({ path => '/1' }); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
83 select undef, undef, undef, 0.4; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 $s->h2_window(1024 * 1024, $sid); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
85 $s->h2_window(1024 * 1024); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
86 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
87 my $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
88 my $body = join '', map { $_->{data} } grep { $_->{type} eq "DATA" } @$frames; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
89 like($body, qr/^X+$/m, 'no pipe bufs - body'); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
90 is(length($body), 1024 * 1024, 'no pipe bufs - body length'); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
91 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
92 # also with disabled proxy temp file |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
93 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
94 $s = Test::Nginx::HTTP2->new(); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 $sid = $s->new_stream({ path => '/off/1' }); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
96 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
97 select undef, undef, undef, 0.4; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
98 $s->h2_window(1024 * 1024, $sid); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
99 $s->h2_window(1024 * 1024); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
100 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
101 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
102 $body = join '', map { $_->{data} } grep { $_->{type} eq "DATA" } @$frames; |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
103 like($body, qr/^X+$/m, 'no temp file - body'); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
104 is(length($body), 1024 * 1024, 'no temp file - body length'); |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
105 |
696322b7e2c3
Tests: added proxy_max_temp_file_size tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
106 ############################################################################### |