diff options
Diffstat (limited to 'js/unit_test_runner.ts')
-rwxr-xr-x | js/unit_test_runner.ts | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/js/unit_test_runner.ts b/js/unit_test_runner.ts deleted file mode 100755 index 24dae7706..000000000 --- a/js/unit_test_runner.ts +++ /dev/null @@ -1,107 +0,0 @@ -#!/usr/bin/env -S deno run --reload --allow-run -// Copyright 2018-2019 the Deno authors. All rights reserved. MIT license. -import "./unit_tests.ts"; -import { permissionCombinations, parseUnitTestOutput } from "./test_util.ts"; - -interface TestResult { - perms: string; - output: string; - result: number; -} - -function permsToCliFlags(perms: Deno.Permissions): string[] { - return Object.keys(perms) - .map( - (key): string => { - if (!perms[key]) 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: Deno.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", - "--no-prompt", - ...cliPerms, - "js/unit_tests.ts" - ]; - - const p = Deno.run({ - args, - stdout: "piped" - }); - - const { actual, expected, resultOutput } = parseUnitTestOutput( - await p.output(), - true - ); - - let result = 0; - - if (!actual && !expected) { - console.error("Bad 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(); |