2
2
3
3
const common = require ( '../common' ) ;
4
4
const assert = require ( 'assert' ) ;
5
+ const cluster = require ( 'cluster' ) ;
5
6
const net = require ( 'net' ) ;
6
7
7
8
common . expectsError ( ( ) => {
@@ -25,27 +26,40 @@ function test(sock, readable, writable) {
25
26
assert . strictEqual ( socket . writable , writable ) ;
26
27
}
27
28
28
- test ( undefined , false , false ) ;
29
+ if ( cluster . isMaster ) {
30
+ test ( undefined , false , false ) ;
29
31
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
+ } ) ) ;
39
40
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
+ } ) ) ;
42
47
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 ) ;
48
49
} ) ) ;
49
50
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