annotate stream_udp_stream.t @ 1542:451e787aad76

Tests: reworked libgd version detection. The "libgd-config" binary is deprecated in recent versions and may not exist or have unexpected output. More, it may not present within older versions, as well, if installed separately, which previously broke test assumptions. The fix is change the fallback to skip tests. In addition, recent Perl GD module (2.57) started to export libgd version, which is now also consulted.
author Sergey Kandaurov <pluknet@nginx.com>
date Mon, 13 Jan 2020 18:15:35 +0300
parents 144c6ce732e4
children f3ba4c74de31
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1335
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
2
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
3 # (C) Nginx, Inc.
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
4
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
5 # Tests for UDP stream.
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
6
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
7 ###############################################################################
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
8
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
9 use warnings;
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
10 use strict;
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
11
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
12 use Test::More;
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
13
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
15
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
16 use lib 'lib';
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
17 use Test::Nginx;
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
18 use Test::Nginx::Stream qw/ dgram /;
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
19
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
20 ###############################################################################
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
21
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
22 select STDERR; $| = 1;
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
23 select STDOUT; $| = 1;
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
24
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
25 my $t = Test::Nginx->new()->has(qw/stream stream_return udp/)->plan(8)
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
26 ->write_file_expand('nginx.conf', <<'EOF');
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
27
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
28 %%TEST_GLOBALS%%
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
29
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
30 daemon off;
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
31
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
32 events {
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
33 }
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
34
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
35 stream {
1437
2fc21bdd6f0d Tests: adjusted stream_udp_stream.t for slow hosts.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1372
diff changeset
36 proxy_timeout 1s;
1335
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
37
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
38 server {
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
39 listen 127.0.0.1:%%PORT_8980_UDP%% udp;
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
40 proxy_pass 127.0.0.1:%%PORT_8981_UDP%%;
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
41 }
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
42
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
43 server {
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
44 listen 127.0.0.1:%%PORT_8981_UDP%% udp;
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
45 return $remote_port;
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
46 }
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
47 }
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
48
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
49 EOF
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
50
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
51 $t->run();
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
52
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
53 ###############################################################################
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
54
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
55 my $s = dgram('127.0.0.1:' . port(8980));
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
56 my $data = $s->io('1', read_timeout => 0.5);
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
57 isnt($data, '', 'udp_stream response 1');
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
58
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
59 my $s2 = dgram('127.0.0.1:' . port(8980));
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
60 my $data2 = $s2->io('1', read_timeout => 0.5);
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
61 isnt($data2, '', 'udp_stream response 2');
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
62
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
63 isnt($data, $data2, 'udp_stream two sessions');
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
64
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
65 is($s->io('1'), $data, 'udp_stream session 1');
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
66 is($s->io('1'), $data, 'udp_stream session 2');
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
67
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
68 is($s2->io('1'), $data2, 'udp_stream another session 1');
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
69 is($s2->io('1'), $data2, 'udp_stream another session 2');
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
70
1437
2fc21bdd6f0d Tests: adjusted stream_udp_stream.t for slow hosts.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1372
diff changeset
71 select undef, undef, undef, 1.1;
1335
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
72
d2ceb8c8ef8b Tests: udp streams.
Roman Arutyunyan <arut@nginx.com>
parents:
diff changeset
73 isnt($s->io('1'), $data, 'udp_stream new session');
1372
4c0ea623343a Tests: style.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1335
diff changeset
74
4c0ea623343a Tests: style.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1335
diff changeset
75 ###############################################################################