diff options
author | Ryan Dahl <ry@tinyclouds.org> | 2019-06-20 09:04:34 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-20 09:04:34 -0700 |
commit | f2c50fae844b34cf6d8488ab1fbc599eb935a919 (patch) | |
tree | 14bbf737b249afa2f82f86bea67d17d8f624484a /core/libdeno/libdeno_test.cc | |
parent | 6a5177dc11936687e6da95c3c45e3e41a7856d79 (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.cc | 21 |
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); +} |