Skip to content

Commit 245c885

Browse files
santigimenotargos
authored andcommitted
test: fix test-net-socket-constructor
So it doesn't fail when creating a socket whose `fd` is already being watched. Test that functionality now inside a cluster worker. Refs: libuv/libuv#1851 Refs: libuv/libuv#1897 PR-URL: #21466 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
1 parent cd2b80c commit 245c885

1 file changed

Lines changed: 33 additions & 19 deletions

File tree

‎test/parallel/test-net-socket-constructor.js‎

Lines changed: 33 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
constcommon=require('../common');
44
constassert=require('assert');
5+
constcluster=require('cluster');
56
constnet=require('net');
67

78
common.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-
constserver=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+
constserver=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+
constsocket=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-
constsocket=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+
constworker=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

Comments
 (0)