diff --git a/tests/specs/run/resolve_dns_edns0/__test__.jsonc b/tests/specs/run/resolve_dns_edns0/__test__.jsonc new file mode 100644 index 0000000000..9124ee2593 --- /dev/null +++ b/tests/specs/run/resolve_dns_edns0/__test__.jsonc @@ -0,0 +1,9 @@ +{ + "tests": { + "resolve_dns": { + "args": "test --allow-net=127.0.0.1 test.ts", + "output": "test.out", + "exitCode": 0 + } + } +} diff --git a/tests/specs/run/resolve_dns_edns0/test.out b/tests/specs/run/resolve_dns_edns0/test.out new file mode 100644 index 0000000000..6a1929401e --- /dev/null +++ b/tests/specs/run/resolve_dns_edns0/test.out @@ -0,0 +1,6 @@ +[WILDCARD] +running 1 test from ./test.ts +EDNS0 enabled ... ok ([WILDCARD]s) + +ok | 1 passed | 0 failed ([WILDCARD]s) + diff --git a/tests/specs/run/resolve_dns_edns0/test.ts b/tests/specs/run/resolve_dns_edns0/test.ts new file mode 100644 index 0000000000..070b4dbaeb --- /dev/null +++ b/tests/specs/run/resolve_dns_edns0/test.ts @@ -0,0 +1,36 @@ +// Copyright 2018-2025 the Deno authors. MIT license. +import dns2 from "npm:dns2@2.1.0"; + +Deno.test("EDNS0 enabled", async () => { + // With EDNS0 enabled, Deno.resolveDns can handle 44 A records. + const NUM_RECORD = 44; + const { Packet } = dns2; + const server = dns2.createServer({ + udp: true, + // deno-lint-ignore no-explicit-any + handle(request: any, send: any) { + const response = Packet.createResponseFromRequest(request); + const { name } = request.questions[0]; + for (const i of [...Array(NUM_RECORD).keys()]) { + response.answers.push({ + name, + type: Packet.TYPE.A, + class: Packet.CLASS.IN, + ttl: 300, + address: "1.2.3." + i, + }); + } + send(response); + }, + }); + const { udp: { port } } = await server.listen({ + udp: { port: 0, address: "127.0.0.1", type: "udp4" }, + }); + const addr = await Deno.resolveDns("example.com", "A", { + nameServer: { ipAddr: "127.0.0.1", port }, + }); + if (addr.length !== NUM_RECORD) { + throw new Error(`Expected ${NUM_RECORD} records, got ${addr.length}`); + } + await server.close(); +}); diff --git a/tests/unit/net_test.ts b/tests/unit/net_test.ts index c16bc1fdec..9c2819c30a 100644 --- a/tests/unit/net_test.ts +++ b/tests/unit/net_test.ts @@ -9,7 +9,6 @@ import { execCode2, tmpUnixSocketPath, } from "./test_util.ts"; -import dns2 from "npm:dns2@2.1.0"; // Since these tests may run in parallel, ensure this port is unique to this file const listenPort = 4503; @@ -1328,35 +1327,3 @@ Deno.test( // calling [Symbol.dispose] after manual close is a no-op }, ); - -Deno.test({ permissions: { net: true } }, async function resolveDnsEdns0() { - // With EDNS0 enabled, Deno.resolveDns can handle 44 A records. - const NUM_RECORD = 44; - const { Packet } = dns2; - const server = dns2.createServer({ - udp: true, - // deno-lint-ignore no-explicit-any - handle(request: any, send: any) { - const response = Packet.createResponseFromRequest(request); - const { name } = request.questions[0]; - for (const i of [...Array(NUM_RECORD).keys()]) { - response.answers.push({ - name, - type: Packet.TYPE.A, - class: Packet.CLASS.IN, - ttl: 300, - address: "1.2.3." + i, - }); - } - send(response); - }, - }); - const { udp: { port } } = await server.listen({ - udp: { port: 0, address: "127.0.0.1", type: "udp4" }, - }); - const addr = await Deno.resolveDns("example.com", "A", { - nameServer: { ipAddr: "127.0.0.1", port }, - }); - assertEquals(addr.length, NUM_RECORD); - await server.close(); -});