diff --git a/test/simple/test-regress-GH-1697.js b/test/simple/test-regress-GH-1697.js new file mode 100644 index 0000000000..6c0474f635 --- /dev/null +++ b/test/simple/test-regress-GH-1697.js @@ -0,0 +1,46 @@ +var net = require('net'), + cp = require('child_process'), + util = require('util'); + +if (process.argv[2] === 'server') { + // Server + + var server = net.createServer(function(conn) { + conn.on('data', function(data) { + console.log('server received ' + data.length + ' bytes'); + }); + + conn.on('close', function() { + server.close(); + }); + }); + server.listen(1234, '127.0.0.1'); + + console.log('Server running.'); +} else { + // Client + + var serverProcess = cp.spawn(process.execPath, [process.argv[1], 'server']); + serverProcess.stdout.pipe(process.stdout); + serverProcess.stderr.pipe(process.stdout); + + serverProcess.stdout.once('data', function() { + var client = net.createConnection(1234, '127.0.0.1'); + client.on('connect', function() { + var alot = new Buffer(1024), + alittle = new Buffer(1); + + for (var i = 0; i < 100; i++) { + client.write(alot); + } + + // Block the event loop for 1 second + var start = (new Date()).getTime(); + while ((new Date).getTime() < start + 1000) {} + + client.write(alittle); + + client.destroySoon(); + }); + }); +}