diff options
Diffstat (limited to 'cli/tests/unit/opcall_test.ts')
-rw-r--r-- | cli/tests/unit/opcall_test.ts | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/cli/tests/unit/opcall_test.ts b/cli/tests/unit/opcall_test.ts new file mode 100644 index 000000000..6bade6545 --- /dev/null +++ b/cli/tests/unit/opcall_test.ts @@ -0,0 +1,48 @@ +import { assertStringIncludes, unitTest, unreachable } from "./test_util.ts"; + +unitTest(async function sendAsyncStackTrace() { + const buf = new Uint8Array(10); + const rid = 10; + try { + await Deno.read(rid, buf); + unreachable(); + } catch (error) { + const s = error.stack.toString(); + console.log(s); + assertStringIncludes(s, "opcall_test.ts"); + assertStringIncludes(s, "read"); + } +}); + +declare global { + namespace Deno { + // deno-lint-ignore no-explicit-any + var core: any; // eslint-disable-line no-var + } +} + +unitTest(async function opsAsyncBadResource(): Promise<void> { + try { + const nonExistingRid = 9999; + await Deno.core.opAsync( + "op_read_async", + nonExistingRid, + new Uint8Array(0), + ); + } catch (e) { + if (!(e instanceof Deno.errors.BadResource)) { + throw e; + } + } +}); + +unitTest(function opsSyncBadResource(): void { + try { + const nonExistingRid = 9999; + Deno.core.opSync("op_read_sync", nonExistingRid, new Uint8Array(0)); + } catch (e) { + if (!(e instanceof Deno.errors.BadResource)) { + throw e; + } + } +}); |