diff options
author | fengmk2 <fengmk2@gmail.com> | 2017-07-18 11:05:05 +0800 |
---|---|---|
committer | Tobias Nießen <tniessen@tnie.de> | 2017-08-16 12:27:43 +0200 |
commit | 620ba416940299fbad3e40258bb8fd99279ec8c5 (patch) | |
tree | a0771eea698aed5092b26832ec8ecbbbf456a280 /test/parallel/test-http-client-req-error-dont-double-fire.js | |
parent | e96b94970a0db7f9081594081a19c459731f4571 (diff) | |
download | android-node-v8-620ba416940299fbad3e40258bb8fd99279ec8c5.tar.gz android-node-v8-620ba416940299fbad3e40258bb8fd99279ec8c5.tar.bz2 android-node-v8-620ba416940299fbad3e40258bb8fd99279ec8c5.zip |
http: don't double-fire the req error event
req.socket._hadError should be set before emitting the error event.
PR-URL: https://github.com/nodejs/node/pull/14659
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Diffstat (limited to 'test/parallel/test-http-client-req-error-dont-double-fire.js')
-rw-r--r-- | test/parallel/test-http-client-req-error-dont-double-fire.js | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/test/parallel/test-http-client-req-error-dont-double-fire.js b/test/parallel/test-http-client-req-error-dont-double-fire.js new file mode 100644 index 0000000000..3fca2aa843 --- /dev/null +++ b/test/parallel/test-http-client-req-error-dont-double-fire.js @@ -0,0 +1,16 @@ +'use strict'; +const assert = require('assert'); +const http = require('http'); +const common = require('../common'); + +// not exists host +const host = '*'.repeat(256); +const req = http.get({ host }); +const err = new Error('mock unexpected code error'); +req.on('error', common.mustCall(() => { + throw err; +})); + +process.on('uncaughtException', common.mustCall((e) => { + assert.strictEqual(e, err); +})); |