diff options
author | João Souto <joao.jpgs@hotmail.com> | 2020-03-02 00:51:54 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-01 19:51:54 -0500 |
commit | 809019dc6e9a80843affc927fa7a52cd41e76471 (patch) | |
tree | ca3f5ae27fe4cbdc98ea9ef7e713c1194c84e3e7 /cli/tests/complex_permissions_test.ts | |
parent | 2a594bd3b2403fbbd26a0191ac8c289c365451d0 (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.ts | 46 |
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)); |