Mercurial > hg > nginx-tests
annotate stream_set.t @ 1982:fb25cbe9d4ec
Tests: explicit Valgrind support.
Valgrind logging is done to a separate file, as it is not able to
follow stderr redirection within nginx or append to a file without
corrupting it. Further, Valgrind logging seems to interfere with
error suppression in tests, and catches various startup errors and
warnings, so the log is additionally filtered.
Since startup under Valgrind can be really slow, timeout in waitforfile()
was changed to 10 seconds.
Prodded by Robert Mueller.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 31 May 2024 06:23:00 +0300 |
parents | 5ac6efbe5552 |
children |
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 |
1693
5ac6efbe5552
Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1609
diff
changeset
|
26 my $t = Test::Nginx->new() |
5ac6efbe5552
Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1609
diff
changeset
|
27 ->has(qw/stream stream_return stream_map stream_set/); |
1593
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
28 |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
29 $t->write_file_expand('nginx.conf', <<'EOF'); |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
30 |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
31 %%TEST_GLOBALS%% |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
32 |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
33 daemon off; |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
34 |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
35 events { |
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 |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
38 stream { |
1609
f3ba4c74de31
Tests: added TEST_GLOBALS_STREAM variable support.
Andrei Belov <defan@nginx.com>
parents:
1593
diff
changeset
|
39 %%TEST_GLOBALS_STREAM%% |
f3ba4c74de31
Tests: added TEST_GLOBALS_STREAM variable support.
Andrei Belov <defan@nginx.com>
parents:
1593
diff
changeset
|
40 |
1593
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
41 map 0 $map_var { |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
42 default "original"; |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
43 } |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
44 |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
45 server { |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
46 listen 127.0.0.1:8082; |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
47 return $map_var:$set_var; |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
48 |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
49 set $set_var $map_var; |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
50 set $map_var "new"; |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
51 } |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
52 |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
53 server { |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
54 listen 127.0.0.1:8083; |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
55 return $set_var; |
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 } |
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 EOF |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
60 |
1693
5ac6efbe5552
Tests: removed TODO and try_run() checks for legacy versions.
Sergey Kandaurov <pluknet@nginx.com>
parents:
1609
diff
changeset
|
61 $t->run()->plan(2); |
1593
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 ############################################################################### |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
64 |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
65 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
|
66 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
|
67 |
a328109be893
Tests: stream set tests.
Vladimir Kokshenev <v.kokshenev@f5.com>
parents:
diff
changeset
|
68 ############################################################################### |