22
33const common = require ( '../common' ) ;
44const assert = require ( 'assert' ) ;
5+ const cluster = require ( 'cluster' ) ;
56const net = require ( 'net' ) ;
67
78common . expectsError ( ( ) => {
@@ -25,27 +26,40 @@ function test(sock, readable, writable) {
2526 assert . strictEqual ( socket . writable , writable ) ;
2627}
2728
28- test ( undefined , false , false ) ;
29+ if ( cluster . isMaster ) {
30+ test ( undefined , false , false ) ;
2931
30- const server = net . createServer ( common . mustCall ( ( socket ) => {
31- test ( socket , true , true ) ;
32- test ( { handle : socket . _handle } , false , false ) ;
33- test ( { handle : socket . _handle , readable : true , writable : true } , true , true ) ;
34- if ( socket . _handle . fd >= 0 ) {
35- test ( socket . _handle . fd , false , false ) ;
36- test ( { fd : socket . _handle . fd } , false , false ) ;
37- test ( { fd : socket . _handle . fd , readable : true , writable : true } , true , true ) ;
38- }
32+ const server = net . createServer ( common . mustCall ( ( socket ) => {
33+ socket . unref ( ) ;
34+ test ( socket , true , true ) ;
35+ test ( { handle : socket . _handle } , false , false ) ;
36+ test ( { handle : socket . _handle , readable : true , writable : true } ,
37+ true , true ) ;
38+ server . close ( ) ;
39+ } ) ) ;
3940
40- server . close ( ) ;
41- } ) ) ;
41+ server . listen ( common . mustCall ( ( ) => {
42+ const { port } = server . address ( ) ;
43+ const socket = net . connect ( port , common . mustCall ( ( ) => {
44+ test ( socket , true , true ) ;
45+ socket . end ( ) ;
46+ } ) ) ;
4247
43- server . listen ( common . mustCall ( ( ) => {
44- const { port } = server . address ( ) ;
45- const socket = net . connect ( port , common . mustCall ( ( ) => {
46- test ( socket , true , true ) ;
47- socket . end ( ) ;
48+ test ( socket , false , true ) ;
4849 } ) ) ;
4950
50- test ( socket , false , true ) ;
51- } ) ) ;
51+ cluster . setupMaster ( {
52+ stdio : [ 'pipe' , 'pipe' , 'pipe' , 'ipc' , 'pipe' , 'pipe' , 'pipe' ]
53+ } ) ;
54+
55+ const worker = cluster . fork ( ) ;
56+ worker . on ( 'exit' , common . mustCall ( ( code , signal ) => {
57+ assert . strictEqual ( code , 0 ) ;
58+ assert . strictEqual ( signal , null ) ;
59+ } ) ) ;
60+ } else {
61+ test ( 4 , false , false ) ;
62+ test ( { fd : 5 } , false , false ) ;
63+ test ( { fd : 6 , readable : true , writable : true } , true , true ) ;
64+ process . disconnect ( ) ;
65+ }
0 commit comments