test: fix test-cluster-eaccess to work on windows
authorTimothy J Fontaine <tjfontaine@gmail.com>
Tue, 31 Dec 2013 19:57:13 +0000 (11:57 -0800)
committerTimothy J Fontaine <tjfontaine@gmail.com>
Tue, 31 Dec 2013 19:57:13 +0000 (11:57 -0800)
test/simple/test-cluster-eaccess.js

index 15da1f2..c87dfe8 100644 (file)
@@ -27,33 +27,36 @@ var path = require('path');
 var fs = require('fs');
 var net = require('net');
 
-// No win32 support so far
-if (process.platform === 'win32')
-  return;
-
 var socketPath = path.join(common.fixturesDir, 'socket-path');
 
 if (cluster.isMaster) {
-  cluster.fork();
-} else {
-  fs.writeFileSync(socketPath, 'some contents');
-
-  var server = net.createServer().listen(socketPath, function() {
-    console.log('here');
-  });
-
+  var worker = cluster.fork();
   var gotError = 0;
-  server.on('error', function(err) {
+  worker.on('message', function(err) {
     gotError++;
-    assert(/EADDRINUSE/.test(err.message));
-    process.exit();
+    console.log(err);
+    if (process.platform === 'win32')
+      assert.strictEqual('EACCES', err.code);
+    else
+      assert.strictEqual('EADDRINUSE', err.code);
+    worker.disconnect();
   });
-
   process.on('exit', function() {
+    console.log('master exited');
     try {
       fs.unlinkSync(socketPath);
     } catch (e) {
     }
     assert.equal(gotError, 1);
   });
+} else {
+  fs.writeFileSync(socketPath, 'some contents');
+
+  var server = net.createServer().listen(socketPath, function() {
+    console.log('here');
+  });
+
+  server.on('error', function(err) {
+    process.send(err);
+  });
 }