comparison stream_udp_stream.t @ 1335:d2ceb8c8ef8b

Tests: udp streams.
author Roman Arutyunyan <arut@nginx.com>
date Mon, 04 Jun 2018 15:43:59 +0300
parents
children 4c0ea623343a
comparison
equal deleted inserted replaced
1334:c4f58dfe8207 1335:d2ceb8c8ef8b
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
52 $t->run();
53
54 ###############################################################################
55
56 my $s = dgram('127.0.0.1:' . port(8980));
57 my $data = $s->io('1', read_timeout => 0.5);
58 isnt($data, '', 'udp_stream response 1');
59
60 my $s2 = dgram('127.0.0.1:' . port(8980));
61 my $data2 = $s2->io('1', read_timeout => 0.5);
62 isnt($data2, '', 'udp_stream response 2');
63
64 isnt($data, $data2, 'udp_stream two sessions');
65
66 TODO: {
67 local $TODO = 'not yet' unless $t->has_version('1.15.0');
68
69 is($s->io('1'), $data, 'udp_stream session 1');
70 is($s->io('1'), $data, 'udp_stream session 2');
71
72 is($s2->io('1'), $data2, 'udp_stream another session 1');
73 is($s2->io('1'), $data2, 'udp_stream another session 2');
74
75 }
76
77 sleep 1;
78
79 isnt($s->io('1'), $data, 'udp_stream new session');