annotate stream_map.t @ 1974:b5036a0f9ae0 default tip

Tests: improved compatibility when using recent "openssl" app. Starting with OpenSSL 3.0, "openssl genrsa" generates encrypted keys in PKCS#8 format instead of previously used PKCS#1 format. Further, since OpenSSL 1.1.0 such keys are using PBKDF2 hmacWithSHA256. Such keys are not supported by old SSL libraries, notably by OpenSSL before 1.0.0 (OpenSSL 0.9.8 only supports hmacWithSHA1) and by BoringSSL before May 21, 2019 (support for hmacWithSHA256 was added in 302a4dee6c), and trying to load such keys into nginx compiled with an old SSL library results in "unsupported prf" errors. To facilitate testing with old SSL libraries, keys are now generated with "openssl genrsa -traditional" if the flag is available.
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 06 May 2024 00:04:26 +0300
parents f3ba4c74de31
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
965
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6 # Tests for stream map module.
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 use lib 'lib';
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
19 use Test::Nginx::Stream qw/ stream /;
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21 ###############################################################################
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 select STDERR; $| = 1;
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
26 my $t = Test::Nginx->new()->has(qw/stream stream_return stream_map/)
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27 ->has(qw/http rewrite/);
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29 $t->write_file_expand('nginx.conf', <<'EOF');
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31 %%TEST_GLOBALS%%
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33 daemon off;
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35 events {
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36 }
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38 stream {
1609
f3ba4c74de31 Tests: added TEST_GLOBALS_STREAM variable support.
Andrei Belov <defan@nginx.com>
parents: 1251
diff changeset
39 %%TEST_GLOBALS_STREAM%%
f3ba4c74de31 Tests: added TEST_GLOBALS_STREAM variable support.
Andrei Belov <defan@nginx.com>
parents: 1251
diff changeset
40
965
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41 map $server_port $x {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
42 %%PORT_8080%% literal;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
43 default default;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
44 ~(%%PORT_8082%%) $1;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
45 ~(?P<ncap>%%PORT_8083%%) $ncap;
965
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46 }
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
47
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
49 listen 127.0.0.1:8080;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
50 listen 127.0.0.1:8081;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
51 listen 127.0.0.1:8082;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
52 listen 127.0.0.1:8083;
965
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53 return $x;
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54 }
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
55
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
56 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
57 listen 127.0.0.1:8084;
965
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58 return $x:${x};
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59 }
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
60 }
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
61
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
62 EOF
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63
1251
766bcbb632ee Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 974
diff changeset
64 $t->run()->plan(5);
965
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
66 ###############################################################################
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
68 is(stream('127.0.0.1:' . port(8080))->read(), 'literal', 'literal');
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
69 is(stream('127.0.0.1:' . port(8081))->read(), 'default', 'default');
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
70 is(stream('127.0.0.1:' . port(8082))->read(), port(8082), 'capture');
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
71 is(stream('127.0.0.1:' . port(8083))->read(), port(8083), 'named capture');
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 965
diff changeset
72 is(stream('127.0.0.1:' . port(8084))->read(), 'default:default', 'braces');
965
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
73
75ad4a978306 Tests: stream map module basic tests.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
74 ###############################################################################