Mercurial > hg > nginx-tests
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 |
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 ############################################################################### |