summaryrefslogtreecommitdiff
path: root/tests/testdata/run/complex_permissions_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'tests/testdata/run/complex_permissions_test.ts')
-rw-r--r--tests/testdata/run/complex_permissions_test.ts53
1 files changed, 53 insertions, 0 deletions
diff --git a/tests/testdata/run/complex_permissions_test.ts b/tests/testdata/run/complex_permissions_test.ts
new file mode 100644
index 000000000..bae157246
--- /dev/null
+++ b/tests/testdata/run/complex_permissions_test.ts
@@ -0,0 +1,53 @@
+// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license.
+const name = Deno.args[0];
+// deno-lint-ignore no-explicit-any
+const test: { [key: string]: (...args: any[]) => void | Promise<void> } = {
+ read(files: string[]) {
+ files.forEach((file) => Deno.readFileSync(file));
+ },
+ write(files: string[]) {
+ files.forEach((file) =>
+ Deno.writeFileSync(file, new Uint8Array(0), { append: true })
+ );
+ },
+ netFetch(urls: string[]) {
+ urls.forEach((url) => fetch(url));
+ },
+ netListen(endpoints: string[]) {
+ endpoints.forEach((endpoint) => {
+ const index = endpoint.lastIndexOf(":");
+ const [hostname, port] = [
+ endpoint.substr(0, index),
+ endpoint.substr(index + 1),
+ ];
+ const listener = Deno.listen({
+ transport: "tcp",
+ hostname,
+ port: parseInt(port, 10),
+ });
+ listener.close();
+ });
+ },
+ async netConnect(endpoints: string[]) {
+ for (const endpoint of endpoints) {
+ const index = endpoint.lastIndexOf(":");
+ const [hostname, port] = [
+ endpoint.substr(0, index),
+ endpoint.substr(index + 1),
+ ];
+ const listener = await Deno.connect({
+ transport: "tcp",
+ hostname,
+ port: parseInt(port, 10),
+ });
+ listener.close();
+ }
+ },
+};
+
+if (!test[name]) {
+ console.log("Unknown test:", name);
+ Deno.exit(1);
+}
+
+test[name](Deno.args.slice(1));