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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 ###############################################################################