summaryrefslogtreecommitdiff
path: root/core/libdeno/libdeno_test.cc
diff options
context:
space:
mode:
authorRyan Dahl <ry@tinyclouds.org>2019-06-20 09:04:34 -0700
committerGitHub <noreply@github.com>2019-06-20 09:04:34 -0700
commitf2c50fae844b34cf6d8488ab1fbc599eb935a919 (patch)
tree14bbf737b249afa2f82f86bea67d17d8f624484a /core/libdeno/libdeno_test.cc
parent6a5177dc11936687e6da95c3c45e3e41a7856d79 (diff)
Fix silent failure of WebAssembly.instantiate() (#2548)
By making WASM compilation synchronous. We'll have to do more work to make it properly async.
Diffstat (limited to 'core/libdeno/libdeno_test.cc')
-rw-r--r--core/libdeno/libdeno_test.cc21
1 files changed, 20 insertions, 1 deletions
diff --git a/core/libdeno/libdeno_test.cc b/core/libdeno/libdeno_test.cc
index 485c95bff..c2d76c876 100644
--- a/core/libdeno/libdeno_test.cc
+++ b/core/libdeno/libdeno_test.cc
@@ -159,7 +159,6 @@ TEST(LibDenoTest, CheckPromiseErrors) {
EXPECT_EQ(deno_last_exception(d), nullptr);
deno_execute(d, nullptr, "a.js", "CheckPromiseErrors()");
EXPECT_EQ(nullptr, deno_last_exception(d));
- EXPECT_EQ(deno_last_exception(d), nullptr);
EXPECT_EQ(count, 1);
// We caught the exception. So still no errors after calling
// deno_check_promise_errors().
@@ -261,3 +260,23 @@ TEST(LibDenoTest, SharedAtomics) {
EXPECT_EQ(s[2], 2);
deno_delete(d);
}
+
+TEST(LibDenoTest, WasmInstantiate) {
+ static int count = 0;
+ auto recv_cb = [](auto _, auto buf, auto zero_copy_buf) {
+ EXPECT_EQ(buf.data_len, 1u);
+ EXPECT_EQ(buf.data_ptr[0], 42);
+ count++;
+ };
+ Deno* d = deno_new(deno_config{0, snapshot, empty, recv_cb, nullptr});
+ EXPECT_EQ(deno_last_exception(d), nullptr);
+ deno_execute(d, nullptr, "a.js", "WasmInstantiate()");
+
+ EXPECT_EQ(nullptr, deno_last_exception(d));
+ deno_check_promise_errors(d);
+ EXPECT_EQ(nullptr, deno_last_exception(d));
+
+ EXPECT_EQ(count, 3);
+
+ deno_delete(d);
+}