Skip to content

Commit c5d0472

Browse files
geeksilva97ruyadorno
authored andcommitted
test: fix test-abortsignal-drop-settled-signals flakiness
PR-URL: #56197 Reviewed-By: Ruben Bridgewater <[email protected]> Reviewed-By: Michaël Zasso <[email protected]> Reviewed-By: Luigi Pinca <[email protected]> Reviewed-By: Jason Zhang <[email protected]> Reviewed-By: James M Snell <[email protected]> Reviewed-By: Chemi Atlow <[email protected]>
1 parent 27cc90f commit c5d0472

File tree

1 file changed

+16
-23
lines changed

1 file changed

+16
-23
lines changed

‎test/parallel/test-abortsignal-drop-settled-signals.mjs‎

Lines changed: 16 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
// Flags: --expose_gc
22
//
33
import'../common/index.mjs';
4+
import{gcUntil}from'../common/gc.js';
45
import{describe,it}from'node:test';
56

67
functionmakeSubsequentCalls(limit,done,holdReferences=false){
@@ -141,37 +142,29 @@ it('drops settled dependant signals when signal is composite', (t, done) =>{
141142
);
142143

143144
setImmediate(()=>{
144-
global.gc();
145+
global.gc({execution: 'async'}).then(()=>{
146+
t.assert.strictEqual(composedSignalRef.deref(),undefined);
147+
t.assert.strictEqual(controllers[0].signal[kDependantSignals].size,2);
148+
t.assert.strictEqual(controllers[1].signal[kDependantSignals].size,1);
145149

146-
t.assert.strictEqual(composedSignalRef.deref(),undefined);
147-
t.assert.strictEqual(controllers[0].signal[kDependantSignals].size,2);
148-
t.assert.strictEqual(controllers[1].signal[kDependantSignals].size,1);
149-
150-
setImmediate(()=>{
151-
t.assert.strictEqual(controllers[0].signal[kDependantSignals].size,0);
152-
t.assert.strictEqual(controllers[1].signal[kDependantSignals].size,0);
150+
setImmediate(()=>{
151+
t.assert.strictEqual(controllers[0].signal[kDependantSignals].size,0);
152+
t.assert.strictEqual(controllers[1].signal[kDependantSignals].size,0);
153153

154-
done();
154+
done();
155+
});
155156
});
156157
});
157158
});
158159

159160
it('drops settled signals even when there are listeners',(t,done)=>{
160-
runWithOrphanListeners(limit,(signalRefs)=>{
161-
setImmediate(()=>{
162-
global.gc();
163-
setImmediate(()=>{
164-
global.gc();// One more call needed to clean up the deeper composed signals
165-
setImmediate(()=>{
166-
global.gc();// One more call needed to clean up the deeper composed signals
167-
168-
constunGCedSignals=[...signalRefs].filter((ref)=>ref.deref());
169-
170-
t.assert.strictEqual(unGCedSignals.length,0);
161+
runWithOrphanListeners(limit,async(signalRefs)=>{
162+
awaitgcUntil('all signals are GCed',()=>{
163+
constunGCedSignals=[...signalRefs].filter((ref)=>ref.deref());
171164

172-
done();
173-
});
174-
});
165+
returnunGCedSignals.length===0;
175166
});
167+
168+
done();
176169
});
177170
});

0 commit comments

Comments
(0)