@ -2,10 +2,10 @@
// Test that a Linux specific quirk in the handle passing protocol is handled
// correctly. See https://github.com/joyent/node/issues/5330 for details.
var common = require ( '../common' ) ;
var assert = require ( 'assert' ) ;
var net = require ( 'net' ) ;
var spawn = require ( 'child_process' ) . spawn ;
const common = require ( '../common' ) ;
const assert = require ( 'assert' ) ;
const net = require ( 'net' ) ;
const spawn = require ( 'child_process' ) . spawn ;
if ( process . argv [ 2 ] === 'worker' )
worker ( ) ;
@ -15,15 +15,15 @@ else
function master ( ) {
// spawn() can only create one IPC channel so we use stdin/stdout as an
// ad-hoc command channel.
var proc = spawn ( process . execPath , [ __ filename , 'worker' ] , {
const proc = spawn ( process . execPath , [ __ filename , 'worker' ] , {
stdio : [ 'pipe' , 'pipe' , 'pipe' , 'ipc' ]
} ) ;
var handle = null ;
proc . on ( 'exit' , function ( ) {
let handle = null ;
proc . on ( 'exit' , ( ) => {
handle . close ( ) ;
} ) ;
proc . stdout . on ( 'data' , function ( data ) {
assert . e qual( data , 'ok\r\n' ) ;
proc . stdout . on ( 'data' , common . mustCall ( ( data ) => {
assert . strictE qual( data . toString ( ) , 'ok\r\n' ) ;
net . createServer ( common . fail ) . listen ( 0 , function ( ) {
handle = this . _ handle ;
proc . send ( 'one' ) ;
@ -31,7 +31,7 @@ function master() {
proc . send ( 'three' ) ;
proc . stdin . write ( 'ok\r\n' ) ;
} ) ;
} ) ;
} ) ) ;
proc . stderr . pipe ( process . stderr ) ;
}
@ -39,25 +39,24 @@ function worker() {
process . _ channel . readStop ( ) ; // Make messages batch up.
process . stdout . ref ( ) ;
process . stdout . write ( 'ok\r\n' ) ;
process . stdin . once ( 'data' , function ( data ) {
assert . e qual( data , 'ok\r\n' ) ;
process . stdin . once ( 'data' , common . mustCall ( ( data ) => {
assert . strictE qual( data . toString ( ) , 'ok\r\n' ) ;
process . _ channel . readStart ( ) ;
} ) ;
var n = 0 ;
process . on ( 'message' , function ( msg , handle ) {
} ) ) ;
let n = 0 ;
process . on ( 'message' , common . mustCall ( ( msg , handle ) => {
n += 1 ;
if ( n === 1 ) {
assert . e qual( msg , 'one' ) ;
assert . e qual( handle , undefined ) ;
assert . strictE qual( msg , 'one' ) ;
assert . strictE qual( handle , undefined ) ;
} else if ( n === 2 ) {
assert . equal ( msg , 'two' ) ;
assert . equal ( typeof handle , 'object' ) ; // Also matches null, therefore...
assert . ok ( handle ) ; // also check that it's truthy.
assert . strictEqual ( msg , 'two' ) ;
assert . ok ( handle !== null && typeof handle === 'object' ) ;
handle . close ( ) ;
} else if ( n === 3 ) {
assert . e qual( msg , 'three' ) ;
assert . e qual( handle , undefined ) ;
assert . strictE qual( msg , 'three' ) ;
assert . strictE qual( handle , undefined ) ;
process . exit ( ) ;
}
} ) ;
} , 3 ) ) ;
}