summaryrefslogtreecommitdiff
path: root/cli/js
diff options
context:
space:
mode:
Diffstat (limited to 'cli/js')
-rw-r--r--cli/js/tests/net_test.ts65
-rw-r--r--cli/js/tests/test_util.ts18
-rw-r--r--cli/js/tests/tls_test.ts12
3 files changed, 65 insertions, 30 deletions
diff --git a/cli/js/tests/net_test.ts b/cli/js/tests/net_test.ts
index f27dcdc19..f62c5c329 100644
--- a/cli/js/tests/net_test.ts
+++ b/cli/js/tests/net_test.ts
@@ -3,14 +3,16 @@ import {
unitTest,
assert,
assertEquals,
- createResolvable
+ createResolvable,
+ randomPort
} from "./test_util.ts";
unitTest({ perms: { net: true } }, function netTcpListenClose(): void {
- const listener = Deno.listen({ hostname: "127.0.0.1", port: 4500 });
+ const port = randomPort();
+ const listener = Deno.listen({ hostname: "127.0.0.1", port });
assertEquals(listener.addr.transport, "tcp");
assertEquals(listener.addr.hostname, "127.0.0.1");
- assertEquals(listener.addr.port, 4500);
+ assertEquals(listener.addr.port, port);
listener.close();
});
@@ -21,14 +23,15 @@ unitTest(
ignore: Deno.build.os === "win"
},
function netUdpListenClose(): void {
+ const port = randomPort();
const socket = Deno.listen({
hostname: "127.0.0.1",
- port: 4500,
+ port,
transport: "udp"
});
assertEquals(socket.addr.transport, "udp");
assertEquals(socket.addr.hostname, "127.0.0.1");
- assertEquals(socket.addr.port, 4500);
+ assertEquals(socket.addr.port, port);
socket.close();
}
);
@@ -38,7 +41,8 @@ unitTest(
perms: { net: true }
},
async function netTcpCloseWhileAccept(): Promise<void> {
- const listener = Deno.listen({ port: 4501 });
+ const port = randomPort();
+ const listener = Deno.listen({ port });
const p = listener.accept();
listener.close();
let err;
@@ -56,7 +60,8 @@ unitTest(
unitTest(
{ perms: { net: true } },
async function netTcpConcurrentAccept(): Promise<void> {
- const listener = Deno.listen({ port: 4502 });
+ const port = randomPort();
+ const listener = Deno.listen({ port });
let acceptErrCount = 0;
const checkErr = (e: Error): void => {
if (e.message === "Listener has been closed") {
@@ -79,19 +84,20 @@ unitTest(
unitTest({ perms: { net: true } }, async function netTcpDialListen(): Promise<
void
> {
- const listener = Deno.listen({ port: 4500 });
+ const port = randomPort();
+ const listener = Deno.listen({ port });
listener.accept().then(
async (conn): Promise<void> => {
assert(conn.remoteAddr != null);
assertEquals(conn.localAddr.hostname, "127.0.0.1");
- assertEquals(conn.localAddr.port, 4500);
+ assertEquals(conn.localAddr.port, port);
await conn.write(new Uint8Array([1, 2, 3]));
conn.close();
}
);
- const conn = await Deno.connect({ hostname: "127.0.0.1", port: 4500 });
+ const conn = await Deno.connect({ hostname: "127.0.0.1", port });
assertEquals(conn.remoteAddr.hostname, "127.0.0.1");
- assertEquals(conn.remoteAddr.port, 4500);
+ assertEquals(conn.remoteAddr.port, port);
assert(conn.localAddr != null);
const buf = new Uint8Array(1024);
const readResult = await conn.read(buf);
@@ -113,13 +119,15 @@ unitTest({ perms: { net: true } }, async function netTcpDialListen(): Promise<
unitTest(
{ ignore: Deno.build.os === "win", perms: { net: true } },
async function netUdpSendReceive(): Promise<void> {
- const alice = Deno.listen({ port: 4500, transport: "udp" });
- assertEquals(alice.addr.port, 4500);
+ const alicePort = randomPort();
+ const alice = Deno.listen({ port: alicePort, transport: "udp" });
+ assertEquals(alice.addr.port, alicePort);
assertEquals(alice.addr.hostname, "0.0.0.0");
assertEquals(alice.addr.transport, "udp");
- const bob = Deno.listen({ port: 4501, transport: "udp" });
- assertEquals(bob.addr.port, 4501);
+ const bobPort = randomPort();
+ const bob = Deno.listen({ port: bobPort, transport: "udp" });
+ assertEquals(bob.addr.port, bobPort);
assertEquals(bob.addr.hostname, "0.0.0.0");
assertEquals(bob.addr.transport, "udp");
@@ -127,7 +135,7 @@ unitTest(
await alice.send(sent, bob.addr);
const [recvd, remote] = await bob.receive();
- assertEquals(remote.port, 4500);
+ assertEquals(remote.port, alicePort);
assertEquals(recvd.length, 3);
assertEquals(1, recvd[0]);
assertEquals(2, recvd[1]);
@@ -140,7 +148,8 @@ unitTest(
unitTest(
{ perms: { net: true } },
async function netTcpListenCloseWhileIterating(): Promise<void> {
- const listener = Deno.listen({ port: 8000 });
+ const port = randomPort();
+ const listener = Deno.listen({ port });
const nextWhileClosing = listener[Symbol.asyncIterator]().next();
listener.close();
assertEquals(await nextWhileClosing, { value: undefined, done: true });
@@ -153,7 +162,8 @@ unitTest(
unitTest(
{ ignore: Deno.build.os === "win", perms: { net: true } },
async function netUdpListenCloseWhileIterating(): Promise<void> {
- const socket = Deno.listen({ port: 8000, transport: "udp" });
+ const port = randomPort();
+ const socket = Deno.listen({ port, transport: "udp" });
const nextWhileClosing = socket[Symbol.asyncIterator]().next();
socket.close();
assertEquals(await nextWhileClosing, { value: undefined, done: true });
@@ -170,7 +180,8 @@ unitTest(
perms: { net: true }
},
async function netListenAsyncIterator(): Promise<void> {
- const addr = { hostname: "127.0.0.1", port: 4500 };
+ const port = randomPort();
+ const addr = { hostname: "127.0.0.1", port };
const listener = Deno.listen(addr);
const runAsyncIterator = async (): Promise<void> => {
for await (const conn of listener) {
@@ -205,7 +216,8 @@ unitTest(
perms: { net: true }
},
async function netCloseReadSuccess() {
- const addr = { hostname: "127.0.0.1", port: 4500 };
+ const port = randomPort();
+ const addr = { hostname: "127.0.0.1", port };
const listener = Deno.listen(addr);
const closeDeferred = createResolvable();
const closeReadDeferred = createResolvable();
@@ -242,7 +254,8 @@ unitTest(
perms: { net: true }
},
async function netDoubleCloseRead() {
- const addr = { hostname: "127.0.0.1", port: 4500 };
+ const port = randomPort();
+ const addr = { hostname: "127.0.0.1", port };
const listener = Deno.listen(addr);
const closeDeferred = createResolvable();
listener.accept().then(async conn => {
@@ -274,7 +287,8 @@ unitTest(
perms: { net: true }
},
async function netCloseWriteSuccess() {
- const addr = { hostname: "127.0.0.1", port: 4500 };
+ const port = randomPort();
+ const addr = { hostname: "127.0.0.1", port };
const listener = Deno.listen(addr);
const closeDeferred = createResolvable();
listener.accept().then(async conn => {
@@ -313,7 +327,8 @@ unitTest(
perms: { net: true }
},
async function netDoubleCloseWrite() {
- const addr = { hostname: "127.0.0.1", port: 4500 };
+ const port = randomPort();
+ const addr = { hostname: "127.0.0.1", port };
const listener = Deno.listen(addr);
const closeDeferred = createResolvable();
listener.accept().then(async conn => {
@@ -365,8 +380,8 @@ unitTest(
resolvable.resolve();
}
-
- const addr = { hostname: "127.0.0.1", port: 4500 };
+ const port = randomPort();
+ const addr = { hostname: "127.0.0.1", port };
const listener = Deno.listen(addr);
iteratorReq(listener);
const conn = await Deno.connect(addr);
diff --git a/cli/js/tests/test_util.ts b/cli/js/tests/test_util.ts
index 980d32bac..347a2204e 100644
--- a/cli/js/tests/test_util.ts
+++ b/cli/js/tests/test_util.ts
@@ -359,3 +359,21 @@ unitTest(
});
}
);
+function* portIterator(): IterableIterator<number> {
+ // use 49152 ~ 55000 for js/cli (rest are for std)
+ let i = 49152;
+ while (true) {
+ yield i;
+ i++;
+ if (i > 55000) {
+ i = 55000;
+ }
+ }
+}
+const it = portIterator();
+/** Obtain (maybe) safe port number for net tests */
+export function randomPort(): number {
+ const { value } = it.next();
+ assert(value != null);
+ return value;
+}
diff --git a/cli/js/tests/tls_test.ts b/cli/js/tests/tls_test.ts
index 20dd62f9b..2e6e5afc9 100644
--- a/cli/js/tests/tls_test.ts
+++ b/cli/js/tests/tls_test.ts
@@ -2,6 +2,7 @@
import {
assert,
assertEquals,
+ randomPort,
createResolvable,
unitTest
} from "./test_util.ts";
@@ -43,7 +44,7 @@ unitTest(
let err;
const options = {
hostname: "localhost",
- port: 4500,
+ port: randomPort(),
certFile: "cli/tests/tls/localhost.crt",
keyFile: "cli/tests/tls/localhost.key"
};
@@ -72,10 +73,11 @@ unitTest(
unitTest({ perms: { net: true } }, function listenTLSNoReadPerm(): void {
let err;
+ const port = randomPort();
try {
Deno.listenTLS({
hostname: "localhost",
- port: 4500,
+ port,
certFile: "cli/tests/tls/localhost.crt",
keyFile: "cli/tests/tls/localhost.key"
});
@@ -94,7 +96,7 @@ unitTest(
let err;
const options = {
hostname: "localhost",
- port: 4500,
+ port: randomPort(),
certFile: "cli/tests/tls/localhost.crt",
keyFile: "cli/tests/tls/localhost.key"
};
@@ -123,7 +125,7 @@ unitTest(
let err;
const options = {
hostname: "localhost",
- port: 4500,
+ port: randomPort(),
certFile: "cli/tests/tls/localhost.crt",
keyFile: "cli/tests/tls/localhost.key"
};
@@ -151,7 +153,7 @@ unitTest(
async function dialAndListenTLS(): Promise<void> {
const resolvable = createResolvable();
const hostname = "localhost";
- const port = 4500;
+ const port = randomPort();
const listener = Deno.listenTLS({
hostname,