method: 'POST'
});
- var timer = setTimeout(write, 50);
- var writes = 0;
-
function write() {
- if (++writes === 128) {
- clearTimeout(timer);
- req.end();
- test();
- } else {
- req.write('hello', function() {
- timer = setImmediate(write);
- });
- }
+ req.write('hello', function() {
+ setImmediate(write);
+ });
}
- var gotError = false;
- var sawData = false;
- var sawEnd = false;
-
- req.on('error', function(er) {
- assert(!gotError);
- gotError = true;
+ req.on('error', common.mustCall(function(er) {
switch (er.code) {
// This is the expected case
case 'ECONNRESET':
'Writing to a torn down client should RESET or ABORT');
break;
}
- clearTimeout(timer);
- console.log('ECONNRESET was raised after %d writes', writes);
- test();
- });
+
+ assert.equal(req.output.length, 0);
+ assert.equal(req.outputEncodings.length, 0);
+ server.close();
+ }));
req.on('response', function(res) {
res.on('data', function(chunk) {
- console.error('saw data: ' + chunk);
- sawData = true;
+ common.fail('Should not receive response data');
});
res.on('end', function() {
- console.error('saw end');
- sawEnd = true;
+ common.fail('Should not receive response end');
});
});
- var closed = false;
-
- function test() {
- if (closed)
- return;
-
- server.close();
- closed = true;
-
- if (req.output.length || req.outputEncodings.length)
- console.error('bad happened', req.output, req.outputEncodings);
-
- assert.equal(req.output.length, 0);
- assert.equal(req.outputEncodings, 0);
- assert(gotError);
- assert(!sawData);
- assert(!sawEnd);
- console.log('ok');
- }
+ write();
});