@@ -140,9 +140,21 @@ server.listen(0, common.mustCall(() => {
140140
141141// Check for listener leaks when reusing sockets. 
142142function  checkListeners ( socket )  { 
143-   assert . strictEqual ( socket . listenerCount ( 'data' ) ,  1 ) ; 
144-   assert . strictEqual ( socket . listenerCount ( 'drain' ) ,  1 ) ; 
143+   const  callback  =  common . mustCall ( ( )  =>  { 
144+     if  ( ! socket . destroyed )  { 
145+       assert . strictEqual ( socket . listenerCount ( 'data' ) ,  0 ) ; 
146+       assert . strictEqual ( socket . listenerCount ( 'drain' ) ,  0 ) ; 
147+       // Sockets have freeSocketErrorListener. 
148+       assert . strictEqual ( socket . listenerCount ( 'error' ) ,  1 ) ; 
149+       // Sockets have onReadableStreamEnd. 
150+       assert . strictEqual ( socket . listenerCount ( 'end' ) ,  1 ) ; 
151+     } 
152+ 
153+     socket . off ( 'free' ,  callback ) ; 
154+     socket . off ( 'close' ,  callback ) ; 
155+   } ) ; 
145156  assert . strictEqual ( socket . listenerCount ( 'error' ) ,  1 ) ; 
146-   // Sockets have onReadableStreamEnd. 
147157  assert . strictEqual ( socket . listenerCount ( 'end' ) ,  2 ) ; 
158+   socket . once ( 'free' ,  callback ) ; 
159+   socket . once ( 'close' ,  callback ) ; 
148160} 
0 commit comments