summaryrefslogtreecommitdiff
path: root/cli/tests/complex_permissions_test.ts
diff options
context:
space:
mode:
authorJoão Souto <joao.jpgs@hotmail.com>2020-03-02 00:51:54 +0000
committerGitHub <noreply@github.com>2020-03-01 19:51:54 -0500
commit809019dc6e9a80843affc927fa7a52cd41e76471 (patch)
treeca3f5ae27fe4cbdc98ea9ef7e713c1194c84e3e7 /cli/tests/complex_permissions_test.ts
parent2a594bd3b2403fbbd26a0191ac8c289c365451d0 (diff)
Port Complex Permissions Tests to Rust (#4200)
Diffstat (limited to 'cli/tests/complex_permissions_test.ts')
-rw-r--r--cli/tests/complex_permissions_test.ts46
1 files changed, 46 insertions, 0 deletions
diff --git a/cli/tests/complex_permissions_test.ts b/cli/tests/complex_permissions_test.ts
new file mode 100644
index 000000000..401c8cd81
--- /dev/null
+++ b/cli/tests/complex_permissions_test.ts
@@ -0,0 +1,46 @@
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+const { args, readFileSync, writeFileSync, exit } = Deno;
+
+const name = args[0];
+const test: { [key: string]: Function } = {
+ read(files: string[]): void {
+ files.forEach(file => readFileSync(file));
+ },
+ write(files: string[]): void {
+ files.forEach(file =>
+ writeFileSync(file, new Uint8Array(0), { append: true })
+ );
+ },
+ netFetch(hosts: string[]): void {
+ hosts.forEach(host => fetch(host));
+ },
+ netListen(endpoints: string[]): void {
+ endpoints.forEach(endpoint => {
+ const [hostname, port] = endpoint.split(":");
+ const listener = Deno.listen({
+ transport: "tcp",
+ hostname,
+ port: parseInt(port, 10)
+ });
+ listener.close();
+ });
+ },
+ async netConnect(endpoints: string[]): Promise<void> {
+ for (const endpoint of endpoints) {
+ const [hostname, port] = endpoint.split(":");
+ const listener = await Deno.connect({
+ transport: "tcp",
+ hostname,
+ port: parseInt(port, 10)
+ });
+ listener.close();
+ }
+ }
+};
+
+if (!test[name]) {
+ console.log("Unknown test:", name);
+ exit(1);
+}
+
+test[name](args.slice(1));