annotate stream_js_fetch.t @ 1850:2a7fc70900a5

Tests: improved "ssl" directive test in ssl_reject_handshake.t. The "ssl" option was removed from listening sockets in non-default servers. In particular, this allows to test that the "ssl" directive actually works.
author Sergey Kandaurov <pluknet@nginx.com>
date Fri, 24 Mar 2023 16:30:14 +0400
parents f98884ad7700
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
2
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
3 # (C) Dmitry Volyntsev
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
5
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
6 # Tests for stream njs module, fetch method.
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
7
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
8 ###############################################################################
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
9
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
10 use warnings;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
11 use strict;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
12
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
13 use Test::More;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
14
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
16
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
17 use lib 'lib';
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
19 use Test::Nginx::Stream qw/ stream /;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
20
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
21 ###############################################################################
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
22
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
23 select STDERR; $| = 1;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
25
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
26 my $t = Test::Nginx->new()->has(qw/http stream/)
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
27 ->write_file_expand('nginx.conf', <<'EOF');
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
28
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
29 %%TEST_GLOBALS%%
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
30
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
31 daemon off;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
32
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
33 events {
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
34 }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
35
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
36 http {
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
38
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
39 js_import test.js;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
40
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
41 server {
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
42 listen 127.0.0.1:8080;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
43 server_name localhost;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
44
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
45 location /njs {
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
46 js_content test.njs;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
47 }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
48
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
49 location /validate {
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
50 js_content test.validate;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
51 }
1806
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
52
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
53 location /success {
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
54 return 200;
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
55 }
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
56
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
57 location /fail {
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
58 return 403;
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
59 }
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
60 }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
61 }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
62
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
63 stream {
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
64 %%TEST_GLOBALS_STREAM%%
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
65
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
66 js_import test.js;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
67
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
68 server {
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
69 listen 127.0.0.1:8081;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
70 js_preread test.preread_verify;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
71 proxy_pass 127.0.0.1:8090;
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
72 }
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
73
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
74 server {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
75 listen 127.0.0.1:8082;
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
76 js_filter test.filter_verify;
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
77 proxy_pass 127.0.0.1:8091;
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
78 }
1806
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
79
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
80 server {
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
81 listen 127.0.0.1:8083;
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
82 js_access test.access_ok;
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
83 proxy_pass 127.0.0.1:8090;
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
84 }
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
85
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
86 server {
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
87 listen 127.0.0.1:8084;
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
88 js_access test.access_nok;
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
89 proxy_pass 127.0.0.1:8090;
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
90 }
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
91 }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
92
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
93 EOF
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
94
1641
6b6a496ac984 Tests: fixed stream_js_fetch.t with parallel tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1640
diff changeset
95 my $p = port(8080);
6b6a496ac984 Tests: fixed stream_js_fetch.t with parallel tests.
Sergey Kandaurov <pluknet@nginx.com>
parents: 1640
diff changeset
96
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
97 $t->write_file('test.js', <<EOF);
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
98 function test_njs(r) {
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
99 r.return(200, njs.version);
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
100 }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
101
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
102 function validate(r) {
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
103 r.return((r.requestText == 'QZ') ? 200 : 403);
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
104 }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
105
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
106 function preread_verify(s) {
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
107 var collect = Buffer.from([]);
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
108
1784
898598722ad4 Tests: improved stream fetch test with async callbacks.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1641
diff changeset
109 s.on('upstream', async function (data, flags) {
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
110 collect = Buffer.concat([collect, data]);
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
111
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
112 if (collect.length >= 4 && collect.readUInt16BE(0) == 0xabcd) {
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
113 s.off('upstream');
1784
898598722ad4 Tests: improved stream fetch test with async callbacks.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1641
diff changeset
114
898598722ad4 Tests: improved stream fetch test with async callbacks.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1641
diff changeset
115 let reply = await ngx.fetch('http://127.0.0.1:$p/validate',
1812
f98884ad7700 Test: avoiding forbidden Host header in js fetch tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1811
diff changeset
116 {body: collect.slice(2,4)});
1784
898598722ad4 Tests: improved stream fetch test with async callbacks.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1641
diff changeset
117
898598722ad4 Tests: improved stream fetch test with async callbacks.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1641
diff changeset
118 (reply.status == 200) ? s.done(): s.deny();
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
119
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
120 } else if (collect.length) {
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
121 s.deny();
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
122 }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
123 });
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
124 }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
125
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
126 function filter_verify(s) {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
127 var collect = Buffer.from([]);
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
128
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
129 s.on('upstream', async function (data, flags) {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
130 collect = Buffer.concat([collect, data]);
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
131
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
132 if (collect.length >= 4 && collect.readUInt16BE(0) == 0xabcd) {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
133 s.off('upstream');
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
134
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
135 let reply = await ngx.fetch('http://127.0.0.1:$p/validate',
1812
f98884ad7700 Test: avoiding forbidden Host header in js fetch tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1811
diff changeset
136 {body: collect.slice(2,4)});
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
137
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
138 if (reply.status == 200) {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
139 s.send(collect.slice(4), flags);
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
140
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
141 } else {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
142 s.send("__CLOSE__", flags);
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
143 }
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
144 }
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
145 });
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
146 }
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
147
1806
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
148 async function access_ok(s) {
1812
f98884ad7700 Test: avoiding forbidden Host header in js fetch tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1811
diff changeset
149 let reply = await ngx.fetch('http://127.0.0.1:$p/success');
1806
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
150
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
151 (reply.status == 200) ? s.allow(): s.deny();
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
152 }
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
153
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
154 async function access_nok(s) {
1812
f98884ad7700 Test: avoiding forbidden Host header in js fetch tests.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1811
diff changeset
155 let reply = await ngx.fetch('http://127.0.0.1:$p/fail');
1806
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
156
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
157 (reply.status == 200) ? s.allow(): s.deny();
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
158 }
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
159
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
160 export default {njs: test_njs, validate, preread_verify, filter_verify,
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
161 access_ok, access_nok};
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
162 EOF
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
163
1806
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
164 $t->try_run('no stream njs available')->plan(9);
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
165
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
166 $t->run_daemon(\&stream_daemon, port(8090), port(8091));
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
167 $t->waitforsocket('127.0.0.1:' . port(8090));
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
168 $t->waitforsocket('127.0.0.1:' . port(8091));
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
169
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
170 ###############################################################################
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
171
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
172 is(stream('127.0.0.1:' . port(8081))->io('###'), '', 'preread not enough');
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
173 is(stream('127.0.0.1:' . port(8081))->io("\xAB\xCDQZ##"), "\xAB\xCDQZ##",
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
174 'preread validated');
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
175 is(stream('127.0.0.1:' . port(8081))->io("\xAC\xCDQZ##"), '',
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
176 'preread invalid magic');
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
177 is(stream('127.0.0.1:' . port(8081))->io("\xAB\xCDQQ##"), '',
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
178 'preread validation failed');
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
179
1786
cadf15e2e2b3 Tests: adjusted stream_js_fetch.t TODO for njs 0.7.6 and older.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1785
diff changeset
180 TODO: {
cadf15e2e2b3 Tests: adjusted stream_js_fetch.t TODO for njs 0.7.6 and older.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1785
diff changeset
181 todo_skip 'leaves coredump', 3 unless $ENV{TEST_NGINX_UNSAFE}
1811
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
182 or has_version('0.7.7');
1786
cadf15e2e2b3 Tests: adjusted stream_js_fetch.t TODO for njs 0.7.6 and older.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1785
diff changeset
183
cadf15e2e2b3 Tests: adjusted stream_js_fetch.t TODO for njs 0.7.6 and older.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1785
diff changeset
184 my $s = stream('127.0.0.1:' . port(8082));
cadf15e2e2b3 Tests: adjusted stream_js_fetch.t TODO for njs 0.7.6 and older.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1785
diff changeset
185 is($s->io("\xAB\xCDQZ##", read => 1), '##', 'filter validated');
cadf15e2e2b3 Tests: adjusted stream_js_fetch.t TODO for njs 0.7.6 and older.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1785
diff changeset
186 is($s->io("@@", read => 1), '@@', 'filter off');
cadf15e2e2b3 Tests: adjusted stream_js_fetch.t TODO for njs 0.7.6 and older.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1785
diff changeset
187
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
188 is(stream('127.0.0.1:' . port(8082))->io("\xAB\xCDQQ##"), '',
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
189 'filter validation failed');
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
190
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
191 }
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
192
1806
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
193 is(stream('127.0.0.1:' . port(8083))->io('ABC'), 'ABC', 'access fetch ok');
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
194 is(stream('127.0.0.1:' . port(8084))->io('ABC'), '', 'access fetch nok');
564f74bf6e4d Tests: added stream fetch tests for js_access directive.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1786
diff changeset
195
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
196 ###############################################################################
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
197
1811
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
198 sub has_version {
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
199 my $need = shift;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
200
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
201 http_get('/njs') =~ /^([.0-9]+)$/m;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
202
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
203 my @v = split(/\./, $1);
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
204 my ($n, $v);
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
205
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
206 for $n (split(/\./, $need)) {
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
207 $v = shift @v || 0;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
208 return 0 if $n > $v;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
209 return 1 if $v > $n;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
210 }
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
211
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
212 return 1;
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
213 }
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
214
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
215 ###############################################################################
520fb74cce4c Tests: improved njs version check to account multi digit versions.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1810
diff changeset
216
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
217 sub stream_daemon {
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
218 my (@ports) = @_;
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
219 my (@socks, @clients);
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
220
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
221 for my $port (@ports) {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
222 my $server = IO::Socket::INET->new(
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
223 Proto => 'tcp',
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
224 LocalAddr => "127.0.0.1:$port",
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
225 Listen => 5,
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
226 Reuse => 1
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
227 )
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
228 or die "Can't create listening socket: $!\n";
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
229 push @socks, $server;
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
230 }
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
231
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
232 my $sel = IO::Select->new(@socks);
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
233
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
234 local $SIG{PIPE} = 'IGNORE';
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
235
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
236 while (my @ready = $sel->can_read) {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
237 foreach my $fh (@ready) {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
238 if (grep $_ == $fh, @socks) {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
239 my $new = $fh->accept;
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
240 $new->autoflush(1);
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
241 $sel->add($new);
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
242
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
243 } elsif (stream_handle_client($fh)
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
244 || $fh->sockport() == port(8090))
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
245 {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
246 $sel->remove($fh);
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
247 $fh->close;
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
248 }
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
249 }
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
250 }
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
251 }
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
252
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
253 sub stream_handle_client {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
254 my ($client) = @_;
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
255
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
256 log2c("(new connection $client)");
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
257
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
258 $client->sysread(my $buffer, 65536) or return 1;
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
259
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
260 log2i("$client $buffer");
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
261
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
262 if ($buffer eq "__CLOSE__") {
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
263 return 1;
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
264 }
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
265
1785
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
266 log2o("$client $buffer");
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
267
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
268 $client->syswrite($buffer);
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
269
2c08bfffe112 Tests: added stream js test for s.send() in async context.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1784
diff changeset
270 return 0;
1640
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
271 }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
272
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
273 sub log2i { Test::Nginx::log_core('|| <<', @_); }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
274 sub log2o { Test::Nginx::log_core('|| >>', @_); }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
275 sub log2c { Test::Nginx::log_core('||', @_); }
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
276
67adc5fd0548 Tests: added js tests for ngx.fetch() method.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
277 ###############################################################################