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);
+ });
}