annotate h2_proxy_max_temp_file_size.t @ 1976:4e79bd25642f default tip

Tests: added test for headers without a colon.
author Maxim Dounin <mdounin@mdounin.ru>
date Sat, 11 May 2024 18:56:23 +0300
parents 236d038dc04a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 ###############################################################################