annotate stream_js_fetch.t @ 1851:0351dee227a8

Tests: unbreak tests with dynamic certificates on stable. In 74cffa9d4c43, ticket based session reuse is enabled in addition to using a shared SSL session cache. This changed how a session can be resumed in a different server: - for a session ID based resumption, it is resumed in the same context - when using session tickets, a key name is also checked for matching - with a ticket callback, this is skipped in favor of callback's logic This makes 'session id context match' tests fail with session tickets on stable since ticket key names are unique in distinct SSL contexts. On the other hand, tests pass on 1.23.2+ due to automatic ticket keys rotation that installs ticket callback, and using a common shared SSL session cache.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 28 Mar 2023 01:36:32 +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 ###############################################################################