annotate fastcgi_header_params.t @ 1260:eadd24ccfda1

Tests: postponed startup in certain ssl certificate tests on win32. At least, some win32 hosts exhibit a round-off error or some such in the notBefore field of the certificate generated before starting nginx, such that it can be set to the value one second ahead of the current time. This manifests in spurious test failures due to certificate verify error with a failure reason "certificate is not yet valid".
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 12 Dec 2017 12:53:53 +0300
parents 882267679006
children b7d0e595e927
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
153
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
1 #!/usr/bin/perl
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
2
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
3 # (C) Maxim Dounin
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
4
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
5 # Test for fastcgi header params.
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
6
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
7 ###############################################################################
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
8
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
9 use warnings;
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
10 use strict;
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
11
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
12 use Test::More;
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
13
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
15
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
16 use lib 'lib';
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
17 use Test::Nginx;
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
18
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
19 ###############################################################################
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
20
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
21 select STDERR; $| = 1;
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
22 select STDOUT; $| = 1;
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
23
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
24 eval { require FCGI; };
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
25 plan(skip_all => 'FCGI not installed') if $@;
221
8d2c6358d830 Tests: avoid using FCGI on win32.
Maxim Dounin <mdounin@mdounin.ru>
parents: 166
diff changeset
26 plan(skip_all => 'win32') if $^O eq 'MSWin32';
153
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
27
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
28 my $t = Test::Nginx->new()->has(qw/http fastcgi/)->plan(1)
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
29 ->write_file_expand('nginx.conf', <<'EOF');
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
30
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
31 %%TEST_GLOBALS%%
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
32
249
6a0d934950bc Tests: remove extra spaces in "daemon off".
Maxim Dounin <mdounin@mdounin.ru>
parents: 241
diff changeset
33 daemon off;
153
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
34
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
35 events {
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
36 }
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
37
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
38 http {
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
39 %%TEST_GLOBALS_HTTP%%
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
40
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
41 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
42 listen 127.0.0.1:8080;
153
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
43 server_name localhost;
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
44
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
45 location / {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
46 fastcgi_pass 127.0.0.1:8081;
153
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
47 fastcgi_param HTTP_X_BLAH "blah";
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
48 }
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
49 }
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
50 }
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
51
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
52 EOF
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
53
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
54 $t->run_daemon(\&fastcgi_daemon);
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
55 $t->run()->waitforsocket('127.0.0.1:' . port(8081));
153
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
56
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
57 ###############################################################################
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
58
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
59 like(http_get_headers('/'), qr/SEE-THIS/,
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
60 'fastcgi request with many ignored headers');
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
61
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
62 ###############################################################################
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
63
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
64 sub http_get_headers {
589
a9569f57da98 Tests: whitespaces fix.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 295
diff changeset
65 my ($url, %extra) = @_;
a9569f57da98 Tests: whitespaces fix.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 295
diff changeset
66 return http(<<EOF, %extra);
153
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
67 GET $url HTTP/1.0
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
68 Host: localhost
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
69 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
70 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
71 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
72 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
73 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
74 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
75 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
76 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
77 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
78 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
79 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
80 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
81 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
82 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
83 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
84 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
85 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
86 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
87 X-Blah: ignored header
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
88
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
89 EOF
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
90 }
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
91
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
92 ###############################################################################
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
93
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
94 sub fastcgi_daemon {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 952
diff changeset
95 my $socket = FCGI::OpenSocket('127.0.0.1:' . port(8081), 5);
153
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
96 my $request = FCGI::Request(\*STDIN, \*STDOUT, \*STDERR, \%ENV,
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
97 $socket);
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
98
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
99 my $count;
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
100 while( $request->Accept() >= 0 ) {
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
101 $count++;
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
102
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
103 print <<EOF;
952
e9064d691790 Tests: converted tests to run in parallel.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 589
diff changeset
104 Location: http://localhost/redirect
153
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
105 Content-Type: text/html
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
106
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
107 SEE-THIS
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
108 $count
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
109 EOF
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
110 }
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
111
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
112 FCGI::CloseSocket($socket);
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
113 }
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
114
26cf61c5ac35 Tests: fastcgi header params test.
Maxim Dounin <mdounin@mdounin.ru>
parents:
diff changeset
115 ###############################################################################