test: fix parallel/test-http-destroyed-socket-write2
authorBen Noordhuis <info@bnoordhuis.nl>
Fri, 23 Jan 2015 16:14:36 +0000 (17:14 +0100)
committerBen Noordhuis <info@bnoordhuis.nl>
Fri, 23 Jan 2015 16:59:10 +0000 (17:59 +0100)
Ameliorate a timing sensitivity issue by switching from setImmediate()
to setTimeout() with a 50 ms timeout.

This commit also adds EPIPE as an accepted error (besides ECONNABORT
and ECONNRESET) because that's a plausible outcome given the timing
sensitive nature of test.

PR-URL: https://github.com/iojs/io.js/pull/575
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Fedor Indutny <fedor@indutny.com>
test/parallel/test-http-destroyed-socket-write2.js

index dc5b129..1552d2c 100644 (file)
@@ -19,7 +19,7 @@ server.listen(common.PORT, function() {
     method: 'POST'
   });
 
-  var timer = setImmediate(write);
+  var timer = setTimeout(write, 50);
   var writes = 0;
 
   function write() {
@@ -28,7 +28,7 @@ server.listen(common.PORT, function() {
       req.end();
       test();
     } else {
-      timer = setImmediate(write);
+      timer = setTimeout(write, 50);
       req.write('hello');
     }
   }
@@ -45,6 +45,9 @@ server.listen(common.PORT, function() {
       case 'ECONNRESET':
       // On windows this sometimes manifests as ECONNABORTED
       case 'ECONNABORTED':
+      // This test is timing sensitive so an EPIPE is not out of the question.
+      // It should be infrequent, given the 50 ms timeout, but not impossible.
+      case 'EPIPE':
         break;
       default:
         assert.strictEqual(er.code,