@@ -140,9 +140,21 @@ server.listen(0, common.mustCall(() => {
140
140
141
141
// Check for listener leaks when reusing sockets.
142
142
function 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
+ } ) ;
145
156
assert . strictEqual ( socket . listenerCount ( 'error' ) , 1 ) ;
146
- // Sockets have onReadableStreamEnd.
147
157
assert . strictEqual ( socket . listenerCount ( 'end' ) , 2 ) ;
158
+ socket . once ( 'free' , callback ) ;
159
+ socket . once ( 'close' , callback ) ;
148
160
}
0 commit comments