Mercurial > hg > nginx-tests
annotate js_async.t @ 1548:b02d0fd71638
Tests: added HTTP/2 test for HEADERS split on field boundary.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Wed, 05 Feb 2020 18:02:04 +0300 |
parents | 9d8b100a6ce3 |
children | 9e0347f4df11 |
rev | line source |
---|---|
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
1 #!/usr/bin/perl |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
2 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
3 # (C) Dmitry Volyntsev |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
4 # (C) Nginx, Inc. |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
5 |
1375
f168fc46c7a4
Tests: renamed JavaScript to njs.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1304
diff
changeset
|
6 # Async tests for http njs module. |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
7 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
8 ############################################################################### |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
9 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
10 use warnings; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
11 use strict; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
12 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
13 use Test::More; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
14 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
15 BEGIN { use FindBin; chdir($FindBin::Bin); } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
16 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
17 use lib 'lib'; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
18 use Test::Nginx; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
19 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
20 ############################################################################### |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
21 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
22 select STDERR; $| = 1; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
23 select STDOUT; $| = 1; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
24 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
25 my $t = Test::Nginx->new()->has(qw/http rewrite/) |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
26 ->write_file_expand('nginx.conf', <<'EOF'); |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
27 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
28 %%TEST_GLOBALS%% |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
29 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
30 daemon off; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
31 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
32 events { |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
33 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
34 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
35 http { |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
36 %%TEST_GLOBALS_HTTP%% |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
37 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
38 js_set $test_async set_timeout; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
39 js_set $context_var context_var; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
40 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
41 js_include test.js; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
42 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
43 server { |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
44 listen 127.0.0.1:8080; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
45 server_name localhost; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
46 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
47 location /async_var { |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
48 return 200 $test_async; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
49 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
50 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
51 location /shared_ctx { |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
52 add_header H $context_var; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
53 js_content shared_ctx; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
54 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
55 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
56 location /set_timeout { |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
57 js_content set_timeout; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
58 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
59 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
60 location /set_timeout_many { |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
61 js_content set_timeout_many; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
62 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
63 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
64 location /set_timeout_data { |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
65 postpone_output 0; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
66 js_content set_timeout_data; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
67 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
68 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
69 location /limit_rate { |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
70 postpone_output 0; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
71 sendfile_max_chunk 5; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
72 js_content limit_rate; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
73 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
74 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
75 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
76 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
77 EOF |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
78 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
79 $t->write_file('test.js', <<EOF); |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
80 function set_timeout(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
81 var timerId = setTimeout(timeout_cb_r, 5, r, 0); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
82 clearTimeout(timerId); |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
83 setTimeout(timeout_cb_r, 5, r, 0) |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
84 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
85 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
86 function set_timeout_data(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
87 setTimeout(timeout_cb_data, 5, r, 0); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
88 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
89 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
90 function set_timeout_many(r) { |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
91 for (var i = 0; i < 5; i++) { |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
92 setTimeout(timeout_cb_empty, 5, r, i); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
93 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
94 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
95 setTimeout(timeout_cb_reply, 10, r); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
96 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
97 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
98 function timeout_cb_r(r, cnt) { |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
99 if (cnt == 10) { |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
100 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
101 r.headersOut['Content-Type'] = 'foo'; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
102 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
103 r.finish(); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
104 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
105 } else { |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
106 setTimeout(timeout_cb_r, 5, r, ++cnt); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
107 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
108 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
109 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
110 function timeout_cb_empty(r, arg) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
111 r.log("timeout_cb_empty" + arg); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
112 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
113 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
114 function timeout_cb_reply(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
115 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
116 r.headersOut['Content-Type'] = 'reply'; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
117 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
118 r.finish(); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
119 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
120 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
121 function timeout_cb_data(r, counter) { |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
122 if (counter == 0) { |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
123 r.log("timeout_cb_data: init"); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
124 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
125 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
126 setTimeout(timeout_cb_data, 5, r, ++counter); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
127 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
128 } else if (counter == 10) { |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
129 r.log("timeout_cb_data: finish"); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
130 r.finish(); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
131 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
132 } else { |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
133 r.send("" + counter); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
134 setTimeout(timeout_cb_data, 5, r, ++counter); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
135 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
136 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
137 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
138 var js_; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
139 function context_var() { |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
140 return js_; |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
141 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
142 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
143 function shared_ctx(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
144 js_ = r.variables.arg_a; |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
145 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
146 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
147 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
148 r.finish(); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
149 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
150 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
151 function limit_rate_cb(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
152 r.finish(); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
153 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
154 |
1436
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
155 function limit_rate(r) { |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
156 r.status = 200; |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
157 r.sendHeader(); |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
158 r.send("AAAAA".repeat(10)) |
9d8b100a6ce3
Tests: get rid of deprecated njs API in 0.2.2.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
1375
diff
changeset
|
159 setTimeout(limit_rate_cb, 1000, r); |
1304
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
160 } |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
161 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
162 EOF |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
163 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
164 $t->try_run('no njs available')->plan(7); |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
165 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
166 ############################################################################### |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
167 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
168 like(http_get('/set_timeout'), qr/Content-Type: foo/, 'setTimeout'); |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
169 like(http_get('/set_timeout_many'), qr/Content-Type: reply/, 'setTimeout many'); |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
170 like(http_get('/set_timeout_data'), qr/123456789/, 'setTimeout data'); |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
171 like(http_get('/shared_ctx?a=xxx'), qr/H: xxx/, 'shared context'); |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
172 like(http_get('/limit_rate'), qr/A{50}/, 'limit_rate'); |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
173 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
174 http_get('/async_var'); |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
175 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
176 $t->stop(); |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
177 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
178 ok(index($t->read_file('error.log'), 'pending events') > 0, |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
179 'pending js events'); |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
180 ok(index($t->read_file('error.log'), 'async operation inside') > 0, |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
181 'async op in var handler'); |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
182 |
25de201c8a0d
Tests: added njs async tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff
changeset
|
183 ############################################################################### |