1335
|
1 #!/usr/bin/perl
|
|
2
|
|
3 # (C) Nginx, Inc.
|
|
4
|
|
5 # Tests for UDP stream.
|
|
6
|
|
7 ###############################################################################
|
|
8
|
|
9 use warnings;
|
|
10 use strict;
|
|
11
|
|
12 use Test::More;
|
|
13
|
|
14 BEGIN { use FindBin; chdir($FindBin::Bin); }
|
|
15
|
|
16 use lib 'lib';
|
|
17 use Test::Nginx;
|
|
18 use Test::Nginx::Stream qw/ dgram /;
|
|
19
|
|
20 ###############################################################################
|
|
21
|
|
22 select STDERR; $| = 1;
|
|
23 select STDOUT; $| = 1;
|
|
24
|
|
25 my $t = Test::Nginx->new()->has(qw/stream stream_return udp/)->plan(8)
|
|
26 ->write_file_expand('nginx.conf', <<'EOF');
|
|
27
|
|
28 %%TEST_GLOBALS%%
|
|
29
|
|
30 daemon off;
|
|
31
|
|
32 events {
|
|
33 }
|
|
34
|
|
35 stream {
|
|
36 proxy_timeout 500ms;
|
|
37
|
|
38 server {
|
|
39 listen 127.0.0.1:%%PORT_8980_UDP%% udp;
|
|
40 proxy_pass 127.0.0.1:%%PORT_8981_UDP%%;
|
|
41 }
|
|
42
|
|
43 server {
|
|
44 listen 127.0.0.1:%%PORT_8981_UDP%% udp;
|
|
45 return $remote_port;
|
|
46 }
|
|
47 }
|
|
48
|
|
49 EOF
|
|
50
|
|
51 $t->run();
|
|
52
|
|
53 ###############################################################################
|
|
54
|
|
55 my $s = dgram('127.0.0.1:' . port(8980));
|
|
56 my $data = $s->io('1', read_timeout => 0.5);
|
|
57 isnt($data, '', 'udp_stream response 1');
|
|
58
|
|
59 my $s2 = dgram('127.0.0.1:' . port(8980));
|
|
60 my $data2 = $s2->io('1', read_timeout => 0.5);
|
|
61 isnt($data2, '', 'udp_stream response 2');
|
|
62
|
|
63 isnt($data, $data2, 'udp_stream two sessions');
|
|
64
|
|
65 TODO: {
|
|
66 local $TODO = 'not yet' unless $t->has_version('1.15.0');
|
|
67
|
|
68 is($s->io('1'), $data, 'udp_stream session 1');
|
|
69 is($s->io('1'), $data, 'udp_stream session 2');
|
|
70
|
|
71 is($s2->io('1'), $data2, 'udp_stream another session 1');
|
|
72 is($s2->io('1'), $data2, 'udp_stream another session 2');
|
|
73
|
|
74 }
|
|
75
|
|
76 sleep 1;
|
|
77
|
|
78 isnt($s->io('1'), $data, 'udp_stream new session');
|
1372
|
79
|
|
80 ###############################################################################
|