diff options
| author | Bartek IwaĆczuk <biwanczuk@gmail.com> | 2020-03-10 01:06:47 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-03-10 01:06:47 +0100 |
| commit | 68119e1d7ed23421ccdcba20532ebe9ae3df9f18 (patch) | |
| tree | 455dd170024112e3388adc27ebebb119b0ecda38 /cli/js/unit_test_runner.ts | |
| parent | dad8036766dca3417b79858b9a04d90447f88605 (diff) | |
reorg: move js runtime tests to cli/js/tests/ (#4250)
All Deno runtime test files were moved to cli/js/tests/ directory.
It makes a clear distinction that cli/js/tests/ contains code
that is run under Deno runtime as opposed to code in cli/js/ which
is used to create bundle and snapshot with "deno_typescript".
Diffstat (limited to 'cli/js/unit_test_runner.ts')
| -rwxr-xr-x | cli/js/unit_test_runner.ts | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/cli/js/unit_test_runner.ts b/cli/js/unit_test_runner.ts deleted file mode 100755 index f32de96f8..000000000 --- a/cli/js/unit_test_runner.ts +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/env -S deno run --reload --allow-run -// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license. -import "./unit_tests.ts"; -import { - permissionCombinations, - parseUnitTestOutput, - Permissions -} from "./test_util.ts"; - -interface TestResult { - perms: string; - output?: string; - result: number; -} - -function permsToCliFlags(perms: Permissions): string[] { - return Object.keys(perms) - .map(key => { - if (!perms[key as keyof Permissions]) return ""; - - const cliFlag = key.replace( - /\.?([A-Z])/g, - (x, y): string => `-${y.toLowerCase()}` - ); - return `--allow-${cliFlag}`; - }) - .filter((e): boolean => e.length > 0); -} - -function fmtPerms(perms: Permissions): string { - let fmt = permsToCliFlags(perms).join(" "); - - if (!fmt) { - fmt = "<no permissions>"; - } - - return fmt; -} - -async function main(): Promise<void> { - console.log( - "Discovered permission combinations for tests:", - permissionCombinations.size - ); - - for (const perms of permissionCombinations.values()) { - console.log("\t" + fmtPerms(perms)); - } - - const testResults = new Set<TestResult>(); - - for (const perms of permissionCombinations.values()) { - const permsFmt = fmtPerms(perms); - console.log(`Running tests for: ${permsFmt}`); - const cliPerms = permsToCliFlags(perms); - // run subsequent tests using same deno executable - const args = [Deno.execPath(), "run", ...cliPerms, "cli/js/unit_tests.ts"]; - - const p = Deno.run({ - args, - stdout: "piped" - }); - - const { actual, expected, resultOutput } = await parseUnitTestOutput( - p.stdout!, - true - ); - - let result = 0; - - if (!actual && !expected) { - console.error("Bad cli/js/unit_test.ts output"); - result = 1; - } else if (expected !== actual) { - result = 1; - } - - testResults.add({ - perms: permsFmt, - output: resultOutput, - result - }); - } - - // if any run tests returned non-zero status then whole test - // run should fail - let testsFailed = false; - - for (const testResult of testResults) { - console.log(`Summary for ${testResult.perms}`); - console.log(testResult.output + "\n"); - testsFailed = testsFailed || Boolean(testResult.result); - } - - if (testsFailed) { - console.error("Unit tests failed"); - Deno.exit(1); - } - - console.log("Unit tests passed"); -} - -main(); |
