@@ -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