Skip to content

Commit 09dc80a

Browse files
committed
tests: fixed memory leaks in tests
1 parent 7d4ba46 commit 09dc80a

File tree

2 files changed

+18
-92
lines changed

2 files changed

+18
-92
lines changed

tests/QUICClient.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1741,6 +1741,7 @@ describe(QUICClient.name, () => {
17411741
);
17421742
testsUtils.extractSocket(client, sockets);
17431743
await connectionEventProm.p;
1744-
await server.stop();
1744+
await client.destroy({ force: true });
1745+
await server.stop({ force: true });
17451746
});
17461747
});

tests/QUICStream.test.ts

Lines changed: 16 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -97,12 +97,7 @@ describe(QUICStream.name, () => {
9797
await writer.write(message);
9898
writer.releaseLock();
9999
}
100-
await Promise.race([
101-
streamCreationProm.p,
102-
testsUtils.sleep(500).then(() => {
103-
throw Error('Creation timed out');
104-
}),
105-
]);
100+
await streamCreationProm.p;
106101
expect(streamCount).toBe(streamsNum);
107102
await client.destroy({ force: true });
108103
await server.stop({ force: true });
@@ -177,20 +172,10 @@ describe(QUICStream.name, () => {
177172
await writer.write(message);
178173
writer.releaseLock();
179174
}
180-
await Promise.race([
181-
streamCreationProm.p,
182-
testsUtils.sleep(100).then(() => {
183-
throw Error('Creation timed out');
184-
}),
185-
]);
175+
await streamCreationProm.p;
186176
// Start destroying streams
187177
await Promise.allSettled(streams.map((stream) => stream.destroy()));
188-
await Promise.race([
189-
streamEndedProm.p,
190-
testsUtils.sleep(200).then(() => {
191-
throw Error('Ending timed out');
192-
}),
193-
]);
178+
await streamEndedProm.p;
194179
expect(streamCreatedCount).toBe(streamsNum);
195180
expect(streamEndedCount).toBe(streamsNum);
196181
await client.destroy({ force: true });
@@ -558,21 +543,11 @@ describe(QUICStream.name, () => {
558543
await writer.write(message);
559544
writer.releaseLock();
560545
}
561-
await Promise.race([
562-
streamCreationProm.p,
563-
testsUtils.sleep(100).then(() => {
564-
throw Error('Creation timed out');
565-
}),
566-
]);
546+
await streamCreationProm.p;
567547
// Start destroying streams
568548
await client.destroy({ force: true });
569549
// All streams need to finish
570-
await Promise.race([
571-
streamEndedProm.p,
572-
testsUtils.sleep(100).then(() => {
573-
throw Error('Ending timed out');
574-
}),
575-
]);
550+
await streamEndedProm.p;
576551
expect(streamCreatedCount).toBe(streamsNum);
577552
expect(streamEndedCount).toBe(streamsNum);
578553
await client.destroy({ force: true });
@@ -646,20 +621,10 @@ describe(QUICStream.name, () => {
646621
await writer.write(message);
647622
writer.releaseLock();
648623
}
649-
await Promise.race([
650-
streamCreationProm.p,
651-
testsUtils.sleep(100).then(() => {
652-
throw Error('Creation timed out');
653-
}),
654-
]);
624+
await streamCreationProm.p;
655625
// Start destroying streams
656626
await conn.stop({ force: true });
657-
await Promise.race([
658-
streamEndedProm.p,
659-
testsUtils.sleep(100).then(() => {
660-
throw Error('Ending timed out');
661-
}),
662-
]);
627+
await streamEndedProm.p;
663628
expect(streamCreatedCount).toBe(streamsNum);
664629
expect(streamEndedCount).toBe(streamsNum);
665630
await client.destroy({ force: true });
@@ -688,6 +653,7 @@ describe(QUICStream.name, () => {
688653
server.addEventListener(
689654
'serverConnection',
690655
(e: events.QUICServerConnectionEvent) => connectionEventProm.resolveP(e),
656+
{ once: true },
691657
);
692658
await server.start({
693659
host: localhost,
@@ -734,19 +700,8 @@ describe(QUICStream.name, () => {
734700
await writer.write(message);
735701
writer.releaseLock();
736702
}
737-
await Promise.race([
738-
streamCreationProm.p,
739-
testsUtils.sleep(100).then(() => {
740-
throw Error('Creation timed out');
741-
}),
742-
]);
743-
// Wait for streams to end with timeout
744-
await Promise.race([
745-
streamEndedProm.p,
746-
testsUtils.sleep(1000).then(() => {
747-
throw Error('Ending timed out');
748-
}),
749-
]);
703+
await streamCreationProm.p;
704+
await streamEndedProm.p;
750705
expect(streamCreatedCount).toBe(streamsNum);
751706
expect(streamEndedCount).toBe(streamsNum);
752707
await client.destroy({ force: true });
@@ -810,12 +765,7 @@ describe(QUICStream.name, () => {
810765
const writer = clientStream.writable.getWriter();
811766
await writer.write(message);
812767
writer.releaseLock();
813-
await Promise.race([
814-
serverStreamProm.p,
815-
testsUtils.sleep(500).then(() => {
816-
throw Error('Creation timed out');
817-
}),
818-
]);
768+
await serverStreamProm.p;
819769
const clientMetadata = clientStream.remoteInfo;
820770
expect(clientMetadata.localHost).toBe(client.host);
821771
expect(clientMetadata.localPort).toBe(client.port);
@@ -898,12 +848,7 @@ describe(QUICStream.name, () => {
898848
const writer = clientStream.writable.getWriter();
899849
await writer.write(message);
900850
writer.releaseLock();
901-
await Promise.race([
902-
serverStreamProm.p,
903-
testsUtils.sleep(500).then(() => {
904-
throw Error('Creation timed out');
905-
}),
906-
]);
851+
await serverStreamProm.p;
907852
clientStream.cancel(cancelReason);
908853
await expect(clientStream.readable.getReader().read()).rejects.toBe(
909854
cancelReason,
@@ -974,12 +919,7 @@ describe(QUICStream.name, () => {
974919
const clientStream = await client.connection.streamNew();
975920
const clientWriter = clientStream.writable.getWriter();
976921
await clientWriter.write(message);
977-
await Promise.race([
978-
streamCreationProm.p,
979-
testsUtils.sleep(500).then(() => {
980-
throw Error('Creation timed out');
981-
}),
982-
]);
922+
await streamCreationProm.p;
983923
const serverStream = await streamCreationProm.p;
984924

985925
// Drain the readable buffer
@@ -991,12 +931,7 @@ describe(QUICStream.name, () => {
991931
await serverStream.writable.close();
992932

993933
// Both streams are destroyed even without reading till close
994-
await Promise.race([
995-
Promise.all([clientStream.destroyedP, serverStream.destroyedP]),
996-
utils.sleep(100).then(() => {
997-
throw Error('took too long to destroy');
998-
}),
999-
]);
934+
await Promise.all([clientStream.destroyedP, serverStream.destroyedP]);
1000935

1001936
await client.destroy({ force: true });
1002937
await server.stop({ force: true });
@@ -1054,12 +989,7 @@ describe(QUICStream.name, () => {
1054989
const clientStream = await client.connection.streamNew();
1055990
const clientWriter = clientStream.writable.getWriter();
1056991
await clientWriter.write(message);
1057-
await Promise.race([
1058-
streamCreationProm.p,
1059-
testsUtils.sleep(500).then(() => {
1060-
throw Error('Creation timed out');
1061-
}),
1062-
]);
992+
await streamCreationProm.p;
1063993
const serverStream = await streamCreationProm.p;
1064994

1065995
// Fill up buffers to block reads from pulling
@@ -1076,12 +1006,7 @@ describe(QUICStream.name, () => {
10761006
await serverWriter.abort(Error('some error'));
10771007

10781008
// Both streams are destroyed even without reading till close
1079-
await Promise.race([
1080-
Promise.all([clientStream.destroyedP, serverStream.destroyedP]),
1081-
utils.sleep(100).then(() => {
1082-
throw Error('took too long to destroy');
1083-
}),
1084-
]);
1009+
await Promise.all([clientStream.destroyedP, serverStream.destroyedP]);
10851010

10861011
await client.destroy({ force: true });
10871012
await server.stop({ force: true });

0 commit comments

Comments
 (0)