Mercurial > hg > nginx-tests
annotate ssl_password_file.t @ 572:ca54b445d982
Tests: masked nginx bug in proxy next upstream.
When iterating through several next upstreams per a worker cycle,
a previously reported event about upstream connection error may
be improperly applied to the next upstream, thus leading to the
invalid connection error. E.g., in kqueue, where the problem is
visible, this is caused by "ev->instance" that does not tolerate
more than one next upstream at once, and kevents placed on the
kqueue separately for read and write events.
The change is to limit test case to the only one next upstream.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Thu, 14 May 2015 11:54:24 +0300 |
parents | 907e89fba9c3 |
children | 4765f3981d91 |
rev | line source |
---|---|
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
2 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
3 # (C) Sergey Kandaurov |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
5 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
6 # Tests for ssl_password_file directive. |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
7 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
9 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
11 use strict; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
12 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
14 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
15 use POSIX qw/ mkfifo /; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
16 use Socket qw/ $CRLF /; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
17 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
18 BEGIN { use FindBin; chdir($FindBin::Bin); } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
19 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
20 use lib 'lib'; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
21 use Test::Nginx; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
22 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
23 ############################################################################### |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
24 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
25 select STDERR; $| = 1; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
26 select STDOUT; $| = 1; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
27 |
430
a82b02635614
Tests: skip ssl tests with ancient IO::Socket::SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents:
423
diff
changeset
|
28 eval { require IO::Socket::SSL; IO::Socket::SSL::SSL_VERIFY_NONE(); }; |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
29 plan(skip_all => 'IO::Socket::SSL not installed') if $@; |
430
a82b02635614
Tests: skip ssl tests with ancient IO::Socket::SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents:
423
diff
changeset
|
30 eval { IO::Socket::SSL::SSL_VERIFY_NONE(); }; |
a82b02635614
Tests: skip ssl tests with ancient IO::Socket::SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents:
423
diff
changeset
|
31 plan(skip_all => 'IO::Socket::SSL too old') if $@; |
a82b02635614
Tests: skip ssl tests with ancient IO::Socket::SSL.
Maxim Dounin <mdounin@mdounin.ru>
parents:
423
diff
changeset
|
32 |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
33 plan(skip_all => 'win32') if $^O eq 'MSWin32'; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
34 |
431
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
35 my $t = Test::Nginx->new()->has(qw/http http_ssl rewrite/) |
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
36 ->has_daemon('openssl'); |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
37 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
38 $t->plan(3)->write_file_expand('nginx.conf', <<'EOF'); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
39 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
40 %%TEST_GLOBALS%% |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
41 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
42 daemon off; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
43 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
44 events { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
45 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
46 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
47 http { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
48 %%TEST_GLOBALS_HTTP%% |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
49 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
50 ssl_certificate_key localhost.key; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
51 ssl_certificate localhost.crt; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
52 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
53 # inherited by server "inherits" |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
54 ssl_password_file password_http; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
55 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
56 server { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
57 listen 127.0.0.1:8443 ssl; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
58 listen 127.0.0.1:8080; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
59 server_name localhost; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
60 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
61 ssl_password_file password; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
62 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
63 location / { |
496
d13ea470657d
Tests: fixed indentation.
Sergey Kandaurov <pluknet@nginx.com>
parents:
480
diff
changeset
|
64 return 200 "$scheme"; |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
65 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
66 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
67 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
68 server { |
431
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
69 listen 127.0.0.1:8080; |
421
e8db4355fe0b
Tests: fixed building the server_names_hash.
Sergey Kandaurov <pluknet@nginx.com>
parents:
420
diff
changeset
|
70 server_name two_entries; |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
71 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
72 ssl_password_file password_many; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
73 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
74 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
75 server { |
431
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
76 listen 127.0.0.1:8080; |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
77 server_name file_is_fifo; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
78 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
79 ssl_password_file password_fifo; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
80 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
81 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
82 server { |
431
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
83 listen 127.0.0.1:8080; |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
84 server_name inherits; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
85 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
86 ssl_certificate_key inherits.key; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
87 ssl_certificate inherits.crt; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
88 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
89 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
90 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
91 EOF |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
92 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
93 $t->write_file('openssl.conf', <<EOF); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
94 [ req ] |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
95 default_bits = 2048 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
96 encrypt_key = no |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
97 distinguished_name = req_distinguished_name |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
98 [ req_distinguished_name ] |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
99 EOF |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
100 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
101 my $d = $t->testdir(); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
102 mkfifo("$d/password_fifo", 0700); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
103 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
104 foreach my $name ('localhost', 'inherits') { |
480
384c05af0ef9
Tests: actually encrypt secret key in ssl_password_file.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
431
diff
changeset
|
105 system("openssl genrsa -out $d/$name.key -passout pass:$name " |
384c05af0ef9
Tests: actually encrypt secret key in ssl_password_file.t.
Sergey Kandaurov <pluknet@nginx.com>
parents:
431
diff
changeset
|
106 . "-aes128 2048 >>$d/openssl.out 2>&1") == 0 |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
107 or die "Can't create private key: $!\n"; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
108 system('openssl req -x509 -new ' |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
109 . "-config '$d/openssl.conf' -subj '/CN=$name/' " |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
110 . "-out '$d/$name.crt' " |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
111 . "-key '$d/$name.key' -passin pass:$name" |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
112 . ">>$d/openssl.out 2>&1") == 0 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
113 or die "Can't create certificate for $name: $!\n"; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
114 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
115 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
116 $t->write_file('password', 'localhost'); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
117 $t->write_file('password_many', "wrong$CRLF" . "localhost$CRLF"); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
118 $t->write_file('password_http', 'inherits'); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
119 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
120 fork() || exec("echo localhost > $d/password_fifo"); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
121 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
122 # do not mangle with try_run() |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
123 # we need to distinguish ssl_password_file support vs its brokenness |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
124 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
125 eval { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
126 open OLDERR, ">&", \*STDERR; close STDERR; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
127 $t->run(); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
128 open STDERR, ">&", \*OLDERR; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
129 }; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
130 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
131 ############################################################################### |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
132 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
133 is($@, '', 'ssl_password_file works'); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
134 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
135 # simple tests to ensure that nothing broke with ssl_password_file directive |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
136 |
431
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
137 like(http_get('/'), qr/200 OK.*http/ms, 'http'); |
05c46688b54b
Tests: ssl_password_file.t fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents:
430
diff
changeset
|
138 like(http_get('/', socket => get_ssl_socket()), qr/200 OK.*https/ms, 'https'); |
420
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
139 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
140 ############################################################################### |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
141 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
142 sub get_ssl_socket { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
143 my $s; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
144 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
145 eval { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
146 local $SIG{ALRM} = sub { die "timeout\n" }; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
147 local $SIG{PIPE} = sub { die "sigpipe\n" }; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
148 alarm(2); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
149 $s = IO::Socket::SSL->new( |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
150 Proto => 'tcp', |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
151 PeerAddr => '127.0.0.1:8443', |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
152 SSL_verify_mode => IO::Socket::SSL::SSL_VERIFY_NONE(), |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
153 SSL_error_trap => sub { die $_[1] } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
154 ); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
155 alarm(0); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
156 }; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
157 alarm(0); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
158 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
159 if ($@) { |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
160 log_in("died: $@"); |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
161 return undef; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
162 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
163 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
164 return $s; |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
165 } |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
166 |
a37ec4447597
Tests: ssl_password_file tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff
changeset
|
167 ############################################################################### |