diff options
author | Santiago Gimeno <santiago.gimeno@gmail.com> | 2016-04-05 19:08:01 +0200 |
---|---|---|
committer | James M Snell <jasnell@gmail.com> | 2016-04-08 17:12:33 -0700 |
commit | eaab17c6a79462da5f3ac037722719ad1606e8cf (patch) | |
tree | c5b0bf27a9784757b678edbbd38bf58eeac20520 /test/parallel/test-socket-write-after-fin-error.js | |
parent | a9aa1995433ddc4d65abb473b79d78aba4ebce4b (diff) | |
download | android-node-v8-eaab17c6a79462da5f3ac037722719ad1606e8cf.tar.gz android-node-v8-eaab17c6a79462da5f3ac037722719ad1606e8cf.tar.bz2 android-node-v8-eaab17c6a79462da5f3ac037722719ad1606e8cf.zip |
test: move some test from sequential to parallel
The only test with modifications is `test-stdin-child-proc` that was
passing when it should not because the exit code of the child process
was not being checked.
PR-URL: https://github.com/nodejs/node/pull/6087
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Johan Bergström <bugs@bergstroem.nu>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com>
Reviewed-By: Claudio Rodriguez <cjrodr@yahoo.com>
Diffstat (limited to 'test/parallel/test-socket-write-after-fin-error.js')
-rw-r--r-- | test/parallel/test-socket-write-after-fin-error.js | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/test/parallel/test-socket-write-after-fin-error.js b/test/parallel/test-socket-write-after-fin-error.js new file mode 100644 index 0000000000..226440ec50 --- /dev/null +++ b/test/parallel/test-socket-write-after-fin-error.js @@ -0,0 +1,60 @@ +'use strict'; +var common = require('../common'); +var assert = require('assert'); + +// This is similar to simple/test-socket-write-after-fin, except that +// we don't set allowHalfOpen. Then we write after the client has sent +// a FIN, and this is an error. However, the standard "write after end" +// message is too vague, and doesn't actually tell you what happens. + +var net = require('net'); +var serverData = ''; +var gotServerEnd = false; +var clientData = ''; +var gotClientEnd = false; +var gotServerError = false; + +var server = net.createServer(function(sock) { + sock.setEncoding('utf8'); + sock.on('error', function(er) { + console.error(er.code + ': ' + er.message); + gotServerError = er; + }); + + sock.on('data', function(c) { + serverData += c; + }); + sock.on('end', function() { + gotServerEnd = true; + sock.write(serverData); + sock.end(); + }); + server.close(); +}); +server.listen(common.PORT); + +var sock = net.connect(common.PORT); +sock.setEncoding('utf8'); +sock.on('data', function(c) { + clientData += c; +}); + +sock.on('end', function() { + gotClientEnd = true; +}); + +process.on('exit', function() { + assert.equal(clientData, ''); + assert.equal(serverData, 'hello1hello2hello3\nTHUNDERMUSCLE!'); + assert(gotClientEnd); + assert(gotServerEnd); + assert(gotServerError); + assert.equal(gotServerError.code, 'EPIPE'); + assert.notEqual(gotServerError.message, 'write after end'); + console.log('ok'); +}); + +sock.write('hello1'); +sock.write('hello2'); +sock.write('hello3\n'); +sock.end('THUNDERMUSCLE!'); |