From 1cc28111676cc7e16dbf36dbaa199f67b83f0748 Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 24 May 2017 08:34:20 -0700 Subject: [PATCH] Eagerly set process.exitCode (#2820) To workaround process being terminated earlier than expected. Simpler version of PR #2714 which only eagerly sets the exitcode without playing with the draining semantics. --- bin/_mocha | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/bin/_mocha b/bin/_mocha index 00514b5ce0..7f3d01aa1d 100755 --- a/bin/_mocha +++ b/bin/_mocha @@ -476,12 +476,18 @@ function exitLater (code) { } function exit (code) { + var clampedCode = Math.min(code, 255); + + // Eagerly set the process's exit code in case stream.write doesn't + // execute its callback before the process terminates. + process.exitCode = clampedCode; + // flush output for Node.js Windows pipe bug // https://github.com/joyent/node/issues/6247 is just one bug example // https://github.com/visionmedia/mocha/issues/333 has a good discussion function done () { if (!(draining--)) { - process.exit(Math.min(code, 255)); + process.exit(clampedCode); } }