annotate stream_js_exit.t @ 1752:ba6e24e38f03

Tests: improved stop_daemons() to send signal again. As was observed, it's possible that a signal to complete a uwsgi daemon can be ignored while it is starting up, which results in tests hang due to eternal waiting on child processes termination. Notably, it is seen when running tests with a high number of prove jobs on a low-profile VM against nginx with broken modules and/or configuration. To reproduce: $ TEST_NGINX_GLOBALS=ERROR prove -j16 uwsgi*.t Inspecting uwsgi under ktrace on FreeBSD confirms that a SIGTERM signal is ignored at the very beginning of uwsgi startup. It is then replaced with a default action after listen(), thus waiting until uwsgi is ready to accept new TCP connections doesn't completely solve the hang window. The fix is to retry sending a signal some time after waitpid(WNOHANG) continuously demonstrated no progress with reaping a signaled process. It is modelled after f13ead27f89c that improved stop() for nginx.
author Sergey Kandaurov <pluknet@nginx.com>
date Wed, 29 Dec 2021 22:29:23 +0300
parents 7f1579e4372a
children 7cf848422b28
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1661
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
1 #!/usr/bin/perl
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
2
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
3 # (C) Dmitry Volyntsev
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
4 # (C) Nginx, Inc.
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
5
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
6 # Tests for stream njs module, exit hook.
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
7
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
8 ###############################################################################
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
9
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
10 use warnings;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
11 use strict;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
12
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
13 use Test::More;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
14
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
15 BEGIN { use FindBin; chdir($FindBin::Bin); }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
16
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
17 use lib 'lib';
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
18 use Test::Nginx;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
19 use Test::Nginx::Stream qw/ stream /;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
20
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
21 ###############################################################################
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
22
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
23 select STDERR; $| = 1;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
24 select STDOUT; $| = 1;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
25
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
26 my $t = Test::Nginx->new()->has(qw/http stream/)
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
27 ->write_file_expand('nginx.conf', <<'EOF');
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
28
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
29 %%TEST_GLOBALS%%
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
30
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
31 daemon off;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
32
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
33 events {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
34 }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
35
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
36 http {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
37 %%TEST_GLOBALS_HTTP%%
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
38
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
39 js_import test.js;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
40
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
41 server {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
42 listen 127.0.0.1:8080;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
43 server_name localhost;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
44
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
45 location /njs {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
46 js_content test.njs;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
47 }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
48 }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
49 }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
50
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
51 stream {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
52 %%TEST_GLOBALS_STREAM%%
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
53
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
54 js_import test.js;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
55
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
56 server {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
57 listen 127.0.0.1:8081;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
58 js_access test.access;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
59 js_filter test.filter;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
60 proxy_pass 127.0.0.1:8090;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
61 }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
62
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
63 server {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
64 listen 127.0.0.1:8082;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
65 js_access test.access;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
66 proxy_pass 127.0.0.1:1;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
67 }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
68 }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
69
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
70 EOF
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
71
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
72 $t->write_file('test.js', <<EOF);
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
73 function test_njs(r) {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
74 r.return(200, njs.version);
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
75 }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
76
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
77 function access(s) {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
78 njs.on('exit', () => {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
79 var v = s.variables;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
80 var c = `\${v.bytes_received}/\${v.bytes_sent}`;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
81 var u = `\${v.upstream_bytes_received}/\${v.upstream_bytes_sent}`;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
82 s.error(`s:\${s.status} C: \${c} U: \${u}`);
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
83 });
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
84
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
85 s.allow();
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
86 }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
87
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
88 function filter(s) {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
89 s.on('upload', (data, flags) => {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
90 s.send(`@\${data}`, flags);
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
91 });
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
92
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
93 s.on('download', (data, flags) => {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
94 s.send(data.slice(2), flags);
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
95 });
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
96 }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
97
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
98 export default {njs: test_njs, access, filter};
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
99 EOF
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
100
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
101 $t->try_run('no stream njs available')->plan(2);
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
102
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
103 $t->run_daemon(\&stream_daemon, port(8090));
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
104 $t->waitforsocket('127.0.0.1:' . port(8090));
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
105
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
106 ###############################################################################
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
107
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
108 local $TODO = 'not yet'
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
109 unless http_get('/njs') =~ /^([.0-9]+)$/m && $1 ge '0.5.2';
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
110
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
111 stream('127.0.0.1:' . port(8081))->io('###');
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
112 stream('127.0.0.1:' . port(8082))->io('###');
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
113
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
114 $t->stop();
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
115
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
116 ok(index($t->read_file('error.log'), 's:200 C: 3/6 U: 8/4') > 0, 'normal');
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
117 ok(index($t->read_file('error.log'), 's:502 C: 0/0 U: 0/0') > 0, 'failed conn');
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
118
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
119 ###############################################################################
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
120
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
121 sub stream_daemon {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
122 my $server = IO::Socket::INET->new(
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
123 Proto => 'tcp',
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
124 LocalAddr => '127.0.0.1:' . port(8090),
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
125 Listen => 5,
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
126 Reuse => 1
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
127 )
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
128 or die "Can't create listening socket: $!\n";
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
129
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
130 local $SIG{PIPE} = 'IGNORE';
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
131
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
132 while (my $client = $server->accept()) {
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
133 $client->autoflush(1);
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
134
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
135 log2c("(new connection $client)");
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
136
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
137 $client->sysread(my $buffer, 65536) or next;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
138
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
139 log2i("$client $buffer");
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
140
1662
7f1579e4372a Tests: fixed stream js exit tests introduced in 69d71a15d407.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1661
diff changeset
141 $buffer = $buffer . $buffer;
7f1579e4372a Tests: fixed stream js exit tests introduced in 69d71a15d407.
Dmitry Volyntsev <xeioex@nginx.com>
parents: 1661
diff changeset
142
1661
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
143 log2o("$client $buffer");
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
144
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
145 $client->syswrite($buffer);
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
146
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
147 close $client;
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
148 }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
149 }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
150
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
151 sub log2i { Test::Nginx::log_core('|| <<', @_); }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
152 sub log2o { Test::Nginx::log_core('|| >>', @_); }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
153 sub log2c { Test::Nginx::log_core('||', @_); }
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
154
69d71a15d407 Tests: added exit hook tests for js stream.
Dmitry Volyntsev <xeioex@nginx.com>
parents:
diff changeset
155 ###############################################################################