annotate scgi.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 be3ada2e9d24
children a095b971fbcc
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Test for scgi backend.
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 eval { require SCGI; };
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 plan(skip_all => 'SCGI not installed') if $@;
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
26
1764
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
27 my $t = Test::Nginx->new()->has(qw/http scgi/)->plan(10)
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28 ->write_file_expand('nginx.conf', <<'EOF');
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30 %%TEST_GLOBALS%%
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31
249
6a0d934950bc Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents: 241
diff changeset
32 daemon off;
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
33
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34 events {
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 }
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37 http {
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 %%TEST_GLOBALS_HTTP%%
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39
802
eca9b1d19021 Tests: tests for host expansion to an explicit upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 801
diff changeset
40 upstream u {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 960
diff changeset
41 server 127.0.0.1:8081;
802
eca9b1d19021 Tests: tests for host expansion to an explicit upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 801
diff changeset
42 }
eca9b1d19021 Tests: tests for host expansion to an explicit upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 801
diff changeset
43
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 960
diff changeset
45 listen 127.0.0.1:8080;
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
46 server_name localhost;
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 location / {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 960
diff changeset
49 scgi_pass 127.0.0.1:8081;
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 scgi_param SCGI 1;
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51 scgi_param REQUEST_URI $request_uri;
167
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
52 scgi_param HTTP_X_BLAH "blah";
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53 }
801
d95c4b8e5517 Tests: more tests for passing requests to host given by expression.
Sergey Kandaurov <pluknet@nginx.com>
parents: 590
diff changeset
54
d95c4b8e5517 Tests: more tests for passing requests to host given by expression.
Sergey Kandaurov <pluknet@nginx.com>
parents: 590
diff changeset
55 location /var {
d95c4b8e5517 Tests: more tests for passing requests to host given by expression.
Sergey Kandaurov <pluknet@nginx.com>
parents: 590
diff changeset
56 scgi_pass $arg_b;
d95c4b8e5517 Tests: more tests for passing requests to host given by expression.
Sergey Kandaurov <pluknet@nginx.com>
parents: 590
diff changeset
57 scgi_param SCGI 1;
d95c4b8e5517 Tests: more tests for passing requests to host given by expression.
Sergey Kandaurov <pluknet@nginx.com>
parents: 590
diff changeset
58 scgi_param REQUEST_URI $request_uri;
d95c4b8e5517 Tests: more tests for passing requests to host given by expression.
Sergey Kandaurov <pluknet@nginx.com>
parents: 590
diff changeset
59 }
d95c4b8e5517 Tests: more tests for passing requests to host given by expression.
Sergey Kandaurov <pluknet@nginx.com>
parents: 590
diff changeset
60
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61 }
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 }
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 EOF
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
65
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
66 $t->run_daemon(\&scgi_daemon);
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 960
diff changeset
67 $t->run()->waitforsocket('127.0.0.1:' . port(8081));
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69 ###############################################################################
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 like(http_get('/'), qr/SEE-THIS/, 'scgi request');
491
d5bf5942a8b2 Tests: disambiguated parsing of the status code.
Sergey Kandaurov <pluknet@nginx.com>
parents: 249
diff changeset
72 like(http_get('/redir'), qr/ 302 /, 'scgi redirect');
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 like(http_get('/'), qr/^3$/m, 'scgi third request');
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75 unlike(http_head('/'), qr/SEE-THIS/, 'no data in HEAD');
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76
167
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
77 like(http_get_headers('/headers'), qr/SEE-THIS/,
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
78 'scgi request with many ignored headers');
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
79
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 960
diff changeset
80 like(http_get('/var?b=127.0.0.1:' . port(8081)), qr/SEE-THIS/,
952
e9064d691790 Tests: converted tests to run in parallel.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 802
diff changeset
81 'scgi with variables');
802
eca9b1d19021 Tests: tests for host expansion to an explicit upstream.
Sergey Kandaurov <pluknet@nginx.com>
parents: 801
diff changeset
82 like(http_get('/var?b=u'), qr/SEE-THIS/, 'scgi with variables to upstream');
801
d95c4b8e5517 Tests: more tests for passing requests to host given by expression.
Sergey Kandaurov <pluknet@nginx.com>
parents: 590
diff changeset
83
1764
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
84 TODO: {
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
85 local $TODO = 'not yet' unless $t->has_version('1.23.0');
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
86
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
87 my $r = http(<<EOF);
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
88 GET / HTTP/1.0
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
89 Host: localhost
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
90 X-Forwarded-For: foo
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
91 X-Forwarded-For: bar
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
92 X-Forwarded-For: bazz
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
93 Cookie: foo
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
94 Cookie: bar
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
95 Cookie: bazz
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
96 Foo: foo
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
97 Foo: bar
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
98 Foo: bazz
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
99
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
100 EOF
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
101
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
102 like($r, qr/X-Forwarded-For: foo, bar, bazz/,
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
103 'scgi with multiple X-Forwarded-For headers');
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
104 like($r, qr/X-Cookie: foo; bar; bazz/,
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
105 'scgi with multiple Cookie headers');
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
106 like($r, qr/X-Foo: foo, bar, bazz/,
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
107 'scgi with multiple unknown headers');
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
108
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
109 }
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
110
167
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
111 ###############################################################################
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
112
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
113 sub http_get_headers {
590
dc2f8aac0553 Tests: whitespace fixes.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 491
diff changeset
114 my ($url, %extra) = @_;
dc2f8aac0553 Tests: whitespace fixes.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 491
diff changeset
115 return http(<<EOF, %extra);
167
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
116 GET $url HTTP/1.0
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
117 Host: localhost
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
118 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
119 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
120 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
121 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
122 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
123 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
124 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
125 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
126 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
127 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
128 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
129 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
130 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
131 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
132 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
133 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
134 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
135 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
136 X-Blah: ignored header
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
137
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
138 EOF
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
139 }
b8fdbc918280 Tests: add scgi headers_param test.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
140
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
141 ###############################################################################
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
142
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
143 sub scgi_daemon {
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
144 my $server = IO::Socket::INET->new(
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
145 Proto => 'tcp',
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 960
diff changeset
146 LocalHost => '127.0.0.1:' . port(8081),
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
147 Listen => 5,
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
148 Reuse => 1
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
149 )
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
150 or die "Can't create listening socket: $!\n";
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
151
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
152 my $scgi = SCGI->new($server, blocking => 1);
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
153 my $count = 0;
212
a7cc4371f4ad Tests: whitespace fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 167
diff changeset
154
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
155 while (my $request = $scgi->accept()) {
960
d4a0232425ee Tests: fixed race in SCGI tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 952
diff changeset
156 eval { $request->read_env(); };
d4a0232425ee Tests: fixed race in SCGI tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 952
diff changeset
157 next if $@;
d4a0232425ee Tests: fixed race in SCGI tests.
Maxim Dounin <mdounin@mdounin.ru>
parents: 952
diff changeset
158
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
159 $count++;
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
160
1764
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
161 my $xfwd = $request->env->{HTTP_X_FORWARDED_FOR} || '';
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
162 my $cookie = $request->env->{HTTP_COOKIE} || '';
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
163 my $foo = $request->env->{HTTP_FOO} || '';
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
164
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
165 $request->connection()->print(<<EOF);
952
e9064d691790 Tests: converted tests to run in parallel.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 802
diff changeset
166 Location: http://localhost/redirect
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
167 Content-Type: text/html
1764
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
168 X-Forwarded-For: $xfwd
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
169 X-Cookie: $cookie
be3ada2e9d24 Tests: scgi tests for combining headers.
Maxim Dounin <mdounin@mdounin.ru>
parents: 974
diff changeset
170 X-Foo: $foo
158
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
171
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
172 SEE-THIS
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
173 $count
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
174 EOF
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
175 }
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
176 }
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
177
72236ee09631 Tests: add scgi tests.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
178 ###############################################################################