annotate h2_variables.t @ 1943:1786f49cca17

Tests: fixed spurious http_resolver_ipv4.t failures. Previously, to get resolved addresses, the test relied on cached random rotation in resolver, such that a chosen address is eventually changed, which may not happen after several client requests. For this reason, the test is rewritten to get all addresses by switching to the next upstream.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 22 Jan 2024 14:11:12 +0400
parents 236d038dc04a
children 11463d379570
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
2
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
5
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
6 # Tests for HTTP/2 protocol with variables.
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
7
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
8 ###############################################################################
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
9
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
10 use warnings;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
11 use strict;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
12
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
13 use Test::More;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
14
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
16
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
17 use lib 'lib';
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
19 use Test::Nginx::HTTP2;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
20
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
21 ###############################################################################
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
22
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
23 select STDERR; $| = 1;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
25
1286
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
26 my $t = Test::Nginx->new()->has(qw/http http_v2 rewrite/)->plan(6)
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
27 ->write_file_expand('nginx.conf', <<'EOF');
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
28
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
29 %%TEST_GLOBALS%%
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
30
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
31 daemon off;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
32
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
33 events {
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
34 }
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
35
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
36 http {
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
38
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@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 http2;
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
41 server_name localhost;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
42
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
43 location /h2 {
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
44 return 200 $http2;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
45 }
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
46 location /sp {
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
47 return 200 $server_protocol;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
48 }
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
49 location /scheme {
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
50 return 200 $scheme;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
51 }
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
52 location /https {
1297
a94a0fc60d56 Tests: avoid empty DATA frame in h2_variables.t.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1286
diff changeset
53 return 200 "body $https";
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
54 }
1286
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
55 location /rl {
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
56 return 200 $request_length;
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
57 }
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
58 }
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
59 }
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
60
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
61 EOF
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
62
1900
236d038dc04a Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1297
diff changeset
63 # suppress deprecation warning
236d038dc04a Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1297
diff changeset
64
236d038dc04a Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1297
diff changeset
65 open OLDERR, ">&", \*STDERR; close STDERR;
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
66 $t->run();
1900
236d038dc04a Tests: suppress "listen .. http2;" deprecation warnings.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1297
diff changeset
67 open STDERR, ">&", \*OLDERR;
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
68
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
69 ###############################################################################
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
70
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
71 # $http2
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
72
948
4dc302d8e04f Tests: changed HTTP2 package to act as a class.
Sergey Kandaurov <pluknet@nginx.com>
parents: 876
diff changeset
73 my $s = Test::Nginx::HTTP2->new();
4dc302d8e04f Tests: changed HTTP2 package to act as a class.
Sergey Kandaurov <pluknet@nginx.com>
parents: 876
diff changeset
74 my $sid = $s->new_stream({ path => '/h2' });
4dc302d8e04f Tests: changed HTTP2 package to act as a class.
Sergey Kandaurov <pluknet@nginx.com>
parents: 876
diff changeset
75 my $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
76
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
77 my ($frame) = grep { $_->{type} eq "DATA" } @$frames;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
78 is($frame->{data}, 'h2c', 'http variable - h2c');
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
79
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
80 # $server_protocol
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
81
948
4dc302d8e04f Tests: changed HTTP2 package to act as a class.
Sergey Kandaurov <pluknet@nginx.com>
parents: 876
diff changeset
82 $s = Test::Nginx::HTTP2->new();
4dc302d8e04f Tests: changed HTTP2 package to act as a class.
Sergey Kandaurov <pluknet@nginx.com>
parents: 876
diff changeset
83 $sid = $s->new_stream({ path => '/sp' });
4dc302d8e04f Tests: changed HTTP2 package to act as a class.
Sergey Kandaurov <pluknet@nginx.com>
parents: 876
diff changeset
84 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
85
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
86 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
87 is($frame->{data}, 'HTTP/2.0', 'server_protocol variable');
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
88
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
89 # $scheme
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
90
948
4dc302d8e04f Tests: changed HTTP2 package to act as a class.
Sergey Kandaurov <pluknet@nginx.com>
parents: 876
diff changeset
91 $s = Test::Nginx::HTTP2->new();
4dc302d8e04f Tests: changed HTTP2 package to act as a class.
Sergey Kandaurov <pluknet@nginx.com>
parents: 876
diff changeset
92 $sid = $s->new_stream({ path => '/scheme' });
4dc302d8e04f Tests: changed HTTP2 package to act as a class.
Sergey Kandaurov <pluknet@nginx.com>
parents: 876
diff changeset
93 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
94
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
95 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
96 is($frame->{data}, 'http', 'scheme variable');
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
97
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
98 # $https
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
99
948
4dc302d8e04f Tests: changed HTTP2 package to act as a class.
Sergey Kandaurov <pluknet@nginx.com>
parents: 876
diff changeset
100 $s = Test::Nginx::HTTP2->new();
4dc302d8e04f Tests: changed HTTP2 package to act as a class.
Sergey Kandaurov <pluknet@nginx.com>
parents: 876
diff changeset
101 $sid = $s->new_stream({ path => '/https' });
4dc302d8e04f Tests: changed HTTP2 package to act as a class.
Sergey Kandaurov <pluknet@nginx.com>
parents: 876
diff changeset
102 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
103
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
104 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
1297
a94a0fc60d56 Tests: avoid empty DATA frame in h2_variables.t.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1286
diff changeset
105 is($frame->{data}, 'body ', 'https variable');
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
106
1286
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
107 # $request_length, HEADERS payload length
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
108
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
109 $s = Test::Nginx::HTTP2->new();
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
110 $sid = $s->new_stream({ headers => [
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
111 { name => ':method', value => 'GET', mode => 0 }, # 1
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
112 { name => ':scheme', value => 'http', mode => 0 }, # 1
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
113 { name => ':authority', value => 'localhost', mode => 1 }, # 1+1+9
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
114 { name => ':path', value => '/rl', mode => 1 }]}); # 1+1+3
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
115 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
116
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
117 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
118 is($frame->{data}, '18', 'request length');
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
119
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
120 # $request_length, HEADERS+CONTINUATION payload length
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
121
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
122 $s = Test::Nginx::HTTP2->new();
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
123 $sid = $s->new_stream({ continuation => 1, headers => [
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
124 { name => ':method', value => 'GET', mode => 0 }, # 1
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
125 { name => ':authority', value => 'localhost', mode => 1 }, # 1+1+9
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
126 { name => ':path', value => '/rl', mode => 1 }]}); # 1+1+3
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
127 $s->h2_continue($sid, { headers => [
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
128 { name => ':scheme', value => 'http', mode => 0 }]}); # 1
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
129 $frames = $s->read(all => [{ sid => $sid, fin => 1 }]);
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
130
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
131 ($frame) = grep { $_->{type} eq "DATA" } @$frames;
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
132 is($frame->{data}, '18', 'request length');
b50c8b9a7644 Tests: added HTTP/2 $request_length tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
133
876
a6abbfed42c0 Tests: split HTTP/2 tests, HTTP2 package introduced.
Andrey Zelenkov <zelenkov@nginx.com>
parents:
diff changeset
134 ###############################################################################