summaryrefslogtreecommitdiff
path: root/cli/js/tests/net_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'cli/js/tests/net_test.ts')
-rw-r--r--cli/js/tests/net_test.ts36
1 files changed, 36 insertions, 0 deletions
diff --git a/cli/js/tests/net_test.ts b/cli/js/tests/net_test.ts
index f5c1f7abd..64edf34ea 100644
--- a/cli/js/tests/net_test.ts
+++ b/cli/js/tests/net_test.ts
@@ -287,6 +287,42 @@ unitTest(
unitTest(
{ perms: { net: true } },
+ async function netTcpListenIteratorBreakClosesResource(): Promise<void> {
+ const promise = createResolvable();
+
+ async function iterate(listener: Deno.Listener): Promise<void> {
+ let i = 0;
+
+ for await (const conn of listener) {
+ conn.close();
+ i++;
+
+ if (i > 1) {
+ break;
+ }
+ }
+
+ promise.resolve();
+ }
+
+ const addr = { hostname: "127.0.0.1", port: 8888 };
+ const listener = Deno.listen(addr);
+ iterate(listener);
+
+ await new Promise((resolve: () => void, _) => {
+ setTimeout(resolve, 100);
+ });
+ const conn1 = await Deno.connect(addr);
+ conn1.close();
+ const conn2 = await Deno.connect(addr);
+ conn2.close();
+
+ await promise;
+ }
+);
+
+unitTest(
+ { perms: { net: true } },
async function netTcpListenCloseWhileIterating(): Promise<void> {
const listener = Deno.listen({ port: 8000 });
const nextWhileClosing = listener[Symbol.asyncIterator]().next();