annotate stream_variables.t @ 1585:bff287fbf347

Tests: added proxy_cookie_domain/path tests with "off" parameter.
author Sergey Kandaurov <pluknet@nginx.com>
date Thu, 23 Jul 2020 12:17:39 +0300
parents 766bcbb632ee
children b61e820caa83
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
2
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
3 # (C) Sergey Kandaurov
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
5
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
6 # Tests for stream variables.
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
7
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
8 ###############################################################################
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
9
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
10 use warnings;
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
11 use strict;
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
12
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
13 use Test::More;
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
14
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
16
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
17 use lib 'lib';
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
1010
4f739c15069e Tests: stream $protocol tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1004
diff changeset
19 use Test::Nginx::Stream qw/ stream dgram /;
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
20
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
21 ###############################################################################
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
22
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
23 select STDERR; $| = 1;
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
25
1170
cf14cfe9ec8c Tests: dropped obsolete ipv6 prerequisite.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1047
diff changeset
26 my $t = Test::Nginx->new()->has(qw/stream stream_return udp/);
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
27
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
28 $t->write_file_expand('nginx.conf', <<'EOF');
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
29
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
30 %%TEST_GLOBALS%%
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
31
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
32 daemon off;
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
33
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
34 events {
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
35 }
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
36
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
37 stream {
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
38 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
39 listen 127.0.0.1:8080;
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
40 return $connection:$nginx_version:$hostname:$pid:$bytes_sent;
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
41 }
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
42
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
43 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
44 listen 127.0.0.1:8081;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
45 listen [::1]:%%PORT_8081%%;
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
46 return $remote_addr:$remote_port:$server_addr:$server_port;
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
47 }
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
48
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
49 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
50 listen 127.0.0.1:8082;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
51 proxy_pass [::1]:%%PORT_8081%%;
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
52 }
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
53
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
54 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
55 listen 127.0.0.1:8083;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
56 listen [::1]:%%PORT_8083%%;
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
57 return $binary_remote_addr;
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
58 }
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
59
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
60 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
61 listen 127.0.0.1:8084;
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
62 proxy_pass [::1]:%%PORT_8083%%;
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
63 }
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
64
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
65 server {
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
66 listen 127.0.0.1:8085;
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
67 return $msec!$time_local!$time_iso8601;
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
68 }
1010
4f739c15069e Tests: stream $protocol tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1004
diff changeset
69
4f739c15069e Tests: stream $protocol tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1004
diff changeset
70 server {
4f739c15069e Tests: stream $protocol tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1004
diff changeset
71 listen 127.0.0.1:8086;
1237
e4974af3fb12 Tests: adjusted udp ports to match allocated ports range.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1235
diff changeset
72 listen 127.0.0.1:%%PORT_8987_UDP%% udp;
1010
4f739c15069e Tests: stream $protocol tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1004
diff changeset
73 return $protocol;
4f739c15069e Tests: stream $protocol tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1004
diff changeset
74 }
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
75 }
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
76
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
77 EOF
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
78
1251
766bcbb632ee Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1237
diff changeset
79 $t->try_run('no inet6 support')->plan(8);
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
80
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
81 ###############################################################################
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
82
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
83 chomp(my $hostname = lc `hostname`);
1235
3fc6817cd84a Tests: explicit peer port in stream tests now required.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1190
diff changeset
84 like(stream('127.0.0.1:' . port(8080))->read(),
3fc6817cd84a Tests: explicit peer port in stream tests now required.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1190
diff changeset
85 qr/^\d+:[\d.]+:$hostname:\d+:0$/, 'vars');
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
86
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
87 my $dport = port(8081);
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
88 my $s = stream("127.0.0.1:$dport");
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
89 my $lport = $s->sockport();
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
90 is($s->read(), "127.0.0.1:$lport:127.0.0.1:$dport", 'addr');
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
91
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
92 my $data = stream('127.0.0.1:' . port(8082))->read();
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
93 like($data, qr/^::1:\d+:::1:\d+$/, 'addr ipv6');
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
94
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
95 $data = stream('127.0.0.1:' . port(8083))->read();
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
96 is(unpack("H*", $data), '7f000001', 'binary addr');
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
97
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
98 $data = stream('127.0.0.1:' . port(8084))->read();
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
99 is(unpack("H*", $data), '0' x 31 . '1', 'binary addr ipv6');
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
100
974
882267679006 Tests: simplified parallel modifications in tests.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 964
diff changeset
101 $data = stream('127.0.0.1:' . port(8085))->read();
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
102 like($data, qr#^\d+.\d+![-+\w/: ]+![-+\dT:]+$#, 'time');
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
103
1010
4f739c15069e Tests: stream $protocol tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1004
diff changeset
104 is(stream('127.0.0.1:' . port(8086))->read(), 'TCP', 'protocol TCP');
1237
e4974af3fb12 Tests: adjusted udp ports to match allocated ports range.
Andrey Zelenkov <zelenkov@nginx.com>
parents: 1235
diff changeset
105 is(dgram('127.0.0.1:' . port(8987))->io('.'), 'UDP', 'protocol UDP');
1010
4f739c15069e Tests: stream $protocol tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1004
diff changeset
106
964
cca37c930b29 Tests: stream tests with variables.
Sergey Kandaurov <pluknet@nginx.com>
parents:
diff changeset
107 ###############################################################################