Mercurial > hg > nginx-tests
annotate stream_js_import.t @ 1677:f13ead27f89c
Tests: improved stop() to send TERM after QUIT.
It is possible that graceful stop as initiated by SIGQUIT will take
very long time, such as when waiting for proxy_timeout in mail proxy
(defaults to 24h). To make sure in such cases nginx is stopped after
some reasonable time, we now send SIGTERM after waiting for 90 seconds.
Note that win32 version previously used "-s stop", which is equivalent
to SIGTERM rather than SIGQUIT. This seems accidental error during
introduction of initial win32 support in tests (ce2e23daa1da), so
it is changed to follow the same logic.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 19 May 2021 04:32:55 +0300 |
parents | f3ba4c74de31 |
children |
rev | line source |
---|---|
1562
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
2 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
3 # (C) Dmitry Volyntsev |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
5 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
6 # Tests for stream njs module, js_import directive. |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
7 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
9 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
11 use strict; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
12 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
14 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
16 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
19 use Test::Nginx::Stream qw/ stream /; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
20 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
21 ############################################################################### |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
22 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
23 select STDERR; $| = 1; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
24 select STDOUT; $| = 1; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
25 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
26 my $t = Test::Nginx->new()->has(qw/http stream stream_return/) |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
27 ->write_file_expand('nginx.conf', <<'EOF'); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
28 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
29 %%TEST_GLOBALS%% |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
30 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
31 daemon off; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
32 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
33 events { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
34 } |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
35 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
36 stream { |
1609
f3ba4c74de31
Tests: added TEST_GLOBALS_STREAM variable support.
Andrei Belov <defan@nginx.com>
parents:
1562
diff
changeset
|
37 %%TEST_GLOBALS_STREAM%% |
f3ba4c74de31
Tests: added TEST_GLOBALS_STREAM variable support.
Andrei Belov <defan@nginx.com>
parents:
1562
diff
changeset
|
38 |
1562
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
39 js_set $test foo.bar.p; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
40 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
41 js_import lib.js; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
42 js_import foo from ./main.js; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
43 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
44 server { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
45 listen 127.0.0.1:8081; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
46 return $test; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
47 } |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
48 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
49 server { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
50 listen 127.0.0.1:8082; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
51 js_access lib.access; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
52 js_preread lib.preread; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
53 js_filter lib.filter; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
54 proxy_pass 127.0.0.1:8083; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
55 } |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
56 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
57 server { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
58 listen 127.0.0.1:8083; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
59 return "x"; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
60 } |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
61 } |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
62 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
63 EOF |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
64 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
65 $t->write_file('lib.js', <<EOF); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
66 var res = ''; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
67 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
68 function access(s) { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
69 res += '1'; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
70 s.allow(); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
71 } |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
72 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
73 function preread(s) { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
74 s.on('upload', function (data) { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
75 res += '2'; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
76 if (res.length >= 3) { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
77 s.done(); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
78 } |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
79 }); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
80 } |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
81 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
82 function filter(s) { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
83 s.on('upload', function(data, flags) { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
84 s.send(data); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
85 res += '3'; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
86 }); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
87 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
88 s.on('download', function(data, flags) { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
89 if (!flags.last) { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
90 res += '4'; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
91 s.send(data); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
92 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
93 } else { |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
94 res += '5'; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
95 s.send(res, {last:1}); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
96 s.off('download'); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
97 } |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
98 }); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
99 } |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
100 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
101 export default {access, preread, filter}; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
102 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
103 EOF |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
104 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
105 $t->write_file('main.js', <<EOF); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
106 export default {bar: {p(s) {return "P-TEST"}}}; |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
107 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
108 EOF |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
109 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
110 $t->try_run('no njs available')->plan(2); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
111 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
112 ############################################################################### |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
113 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
114 is(stream('127.0.0.1:' . port(8081))->read(), 'P-TEST', 'foo.bar.p'); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
115 is(stream('127.0.0.1:' . port(8082))->io('0'), 'x122345', 'lib.access'); |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
116 |
b4f528987146
Tests: added js_import tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
117 ############################################################################### |