annotate stream_set.t @ 1606:e4e0695552ed

Tests: fixed stream_proxy_ssl_conf_command.t. The stream_proxy_ssl_conf_command.t test used stream return module to return the response. Since this ignores actual request, but the perl test code used http_get(). This might result in the request being sent after the response is returned and the connection closed by the server, resulting in RST being generated and no response seen by the client at all. Fix is to use "stream(...)->read()" instead of http_get(), so no request is sent at all, eliminating possibility of RST being generated.
author Maxim Dounin <mdounin@mdounin.ru>
date Tue, 10 Nov 2020 05:03:29 +0300
parents a328109be893
children f3ba4c74de31
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1593
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
1 #!/usr/bin/perl
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
2
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
3 # (C) Vladimir Kokshenev
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
5
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
6 # Tests for stream set directive.
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
7
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
8 ###############################################################################
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
9
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
10 use warnings;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
11 use strict;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
12
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
13 use Test::More;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
14
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
16
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
17 use lib 'lib';
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
18 use Test::Nginx;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
19 use Test::Nginx::Stream qw/ stream /;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
20
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
21 ###############################################################################
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
22
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
23 select STDERR; $| = 1;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
25
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
26 my $t = Test::Nginx->new()->has(qw/stream stream_return stream_set/);
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
27
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
28 $t->write_file_expand('nginx.conf', <<'EOF');
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
29
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
30 %%TEST_GLOBALS%%
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
31
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
32 daemon off;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
33
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
34 events {
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
35 }
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
36
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
37 stream {
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
38
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
39 map 0 $map_var {
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
40 default "original";
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
41 }
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
42
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
43 server {
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
44 listen 127.0.0.1:8082;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
45 return $map_var:$set_var;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
46
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
47 set $set_var $map_var;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
48 set $map_var "new";
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
49 }
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
50
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
51 server {
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
52 listen 127.0.0.1:8083;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
53 return $set_var;
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
54 }
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
55 }
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
56
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
57 EOF
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
58
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
59 $t->try_run('no stream set')->plan(2);
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
60
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
61 ###############################################################################
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
62
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
63 is(stream('127.0.0.1:' . port(8082))->read(), 'new:original', 'set');
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
64 is(stream('127.0.0.1:' . port(8083))->read(), '', 'uninitialized variable');
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
65
a328109be893 Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff changeset
66 ###############################################################################