summaryrefslogtreecommitdiff
path: root/std/wasi/snapshot_preview1_test.ts
diff options
context:
space:
mode:
Diffstat (limited to 'std/wasi/snapshot_preview1_test.ts')
-rw-r--r--std/wasi/snapshot_preview1_test.ts22
1 files changed, 20 insertions, 2 deletions
diff --git a/std/wasi/snapshot_preview1_test.ts b/std/wasi/snapshot_preview1_test.ts
index d7e29e195..01b91bc3e 100644
--- a/std/wasi/snapshot_preview1_test.ts
+++ b/std/wasi/snapshot_preview1_test.ts
@@ -1,6 +1,6 @@
// Copyright 2018-2020 the Deno authors. All rights reserved. MIT license.
-import Context from "./snapshot_preview1.ts";
-import { assertEquals, assertThrows } from "../testing/asserts.ts";
+import Context, { ExitStatus } from "./snapshot_preview1.ts";
+import { assert, assertEquals, assertThrows } from "../testing/asserts.ts";
import { copy } from "../fs/mod.ts";
import * as path from "../path/mod.ts";
@@ -179,6 +179,24 @@ Deno.test("context_start", function () {
TypeError,
"export _start must be a function",
);
+
+ try {
+ const context = new Context({
+ exitOnReturn: false,
+ });
+ context.start({
+ exports: {
+ _start() {
+ const exit = context.exports["proc_exit"] as CallableFunction;
+ exit(0);
+ },
+ memory: new WebAssembly.Memory({ initial: 1 }),
+ },
+ });
+ } catch (err) {
+ assert(err instanceof ExitStatus);
+ assertEquals(err.code, 0);
+ }
});
Deno.test("context_initialize", function () {