diff options
Diffstat (limited to 'libdeno/modules_test.cc')
-rw-r--r-- | libdeno/modules_test.cc | 151 |
1 files changed, 0 insertions, 151 deletions
diff --git a/libdeno/modules_test.cc b/libdeno/modules_test.cc index cb800e89a..357c48641 100644 --- a/libdeno/modules_test.cc +++ b/libdeno/modules_test.cc @@ -64,157 +64,6 @@ TEST(ModulesTest, Resolution) { deno_delete(d); } -TEST(ModulesTest, BuiltinModules) { - exec_count = 0; // Reset - Deno* d = deno_new(deno_config{0, empty, empty, recv_cb}); - EXPECT_EQ(0, exec_count); - - deno_execute(d, d, "setup.js", - "libdeno.builtinModules['deno'] = { foo: 'bar' };"); - EXPECT_EQ(nullptr, deno_last_exception(d)); - - static deno_mod a = - deno_mod_new(d, true, "a.js", - "import { b } from 'b.js'\n" - "import * as deno from 'deno'\n" - "if (b() != 'b') throw Error('b');\n" - "if (deno.foo != 'bar') throw Error('foo');\n" - "libdeno.send(new Uint8Array([4]));"); - EXPECT_NE(a, 0); - EXPECT_EQ(nullptr, deno_last_exception(d)); - - const char* b_src = "export function b() { return 'b' }"; - static deno_mod b = deno_mod_new(d, false, "b.js", b_src); - EXPECT_NE(b, 0); - EXPECT_EQ(nullptr, deno_last_exception(d)); - - EXPECT_EQ(0, exec_count); - - EXPECT_EQ(2u, deno_mod_imports_len(d, a)); - EXPECT_EQ(0u, deno_mod_imports_len(d, b)); - - EXPECT_STREQ("b.js", deno_mod_imports_get(d, a, 0)); - EXPECT_STREQ("deno", deno_mod_imports_get(d, a, 1)); - EXPECT_EQ(nullptr, deno_mod_imports_get(d, a, 2)); - EXPECT_EQ(nullptr, deno_mod_imports_get(d, b, 0)); - - static int resolve_count = 0; - auto resolve_cb = [](void* user_data, const char* specifier, - deno_mod referrer) { - EXPECT_EQ(referrer, a); - EXPECT_STREQ(specifier, "b.js"); - resolve_count++; - return b; - }; - - deno_mod_instantiate(d, d, b, resolve_cb); - EXPECT_EQ(nullptr, deno_last_exception(d)); - EXPECT_EQ(0, resolve_count); - EXPECT_EQ(0, exec_count); - - deno_mod_instantiate(d, d, a, resolve_cb); - EXPECT_EQ(nullptr, deno_last_exception(d)); - EXPECT_EQ(1, resolve_count); - EXPECT_EQ(0, exec_count); - - deno_mod_evaluate(d, d, a); - EXPECT_EQ(nullptr, deno_last_exception(d)); - EXPECT_EQ(1, resolve_count); - EXPECT_EQ(1, exec_count); - - deno_delete(d); -} - -TEST(ModulesTest, BuiltinModules2) { - exec_count = 0; // Reset - Deno* d = deno_new(deno_config{0, empty, empty, recv_cb}); - EXPECT_EQ(0, exec_count); - - deno_execute(d, d, "setup.js", - "libdeno.builtinModules['builtin1'] = { foo: 'bar' }; \n" - "libdeno.builtinModules['builtin2'] = { hello: 'world' }; \n"); - EXPECT_EQ(nullptr, deno_last_exception(d)); - - static deno_mod a = - deno_mod_new(d, true, "a.js", - "import * as b1 from 'builtin1'\n" - "import * as b2 from 'builtin2'\n" - "if (b1.foo != 'bar') throw Error('bad1');\n" - "if (b2.hello != 'world') throw Error('bad2');\n" - "libdeno.send(new Uint8Array([4]));"); - EXPECT_NE(a, 0); - EXPECT_EQ(nullptr, deno_last_exception(d)); - - EXPECT_EQ(2u, deno_mod_imports_len(d, a)); - EXPECT_STREQ("builtin1", deno_mod_imports_get(d, a, 0)); - EXPECT_STREQ("builtin2", deno_mod_imports_get(d, a, 1)); - - deno_mod_instantiate(d, d, a, nullptr); - EXPECT_EQ(nullptr, deno_last_exception(d)); - EXPECT_EQ(0, exec_count); - - deno_mod_evaluate(d, d, a); - EXPECT_EQ(nullptr, deno_last_exception(d)); - EXPECT_EQ(1, exec_count); - - deno_delete(d); -} - -TEST(ModulesTest, BuiltinModules3) { - exec_count = 0; // Reset - Deno* d = deno_new(deno_config{0, empty, empty, recv_cb}); - EXPECT_EQ(0, exec_count); - - deno_execute(d, d, "setup.js", - "libdeno.builtinModules['builtin'] = { foo: 'bar' };"); - EXPECT_EQ(nullptr, deno_last_exception(d)); - - static deno_mod a = - deno_mod_new(d, true, "a.js", - "import * as b1 from 'builtin'\n" - "import * as b2 from 'b.js'\n" - "if (b1.foo != 'bar') throw Error('bad1');\n" - "if (b2.bar() != 'bar') throw Error('bad2');\n" - "libdeno.send(new Uint8Array([4]));"); - EXPECT_NE(a, 0); - EXPECT_EQ(nullptr, deno_last_exception(d)); - - EXPECT_EQ(2u, deno_mod_imports_len(d, a)); - EXPECT_STREQ("builtin", deno_mod_imports_get(d, a, 0)); - EXPECT_STREQ("b.js", deno_mod_imports_get(d, a, 1)); - - static deno_mod b = deno_mod_new(d, false, "b.js", - "import { foo } from 'builtin';\n" - "export function bar() { return foo }\n"); - EXPECT_NE(b, 0); - EXPECT_EQ(nullptr, deno_last_exception(d)); - - static int resolve_count = 0; - auto resolve_cb = [](void* user_data, const char* specifier, - deno_mod referrer) { - EXPECT_EQ(referrer, a); - EXPECT_STREQ(specifier, "b.js"); - resolve_count++; - return b; - }; - - deno_mod_instantiate(d, d, a, resolve_cb); - EXPECT_EQ(nullptr, deno_last_exception(d)); - EXPECT_EQ(1, resolve_count); - EXPECT_EQ(0, exec_count); - - deno_mod_instantiate(d, d, b, resolve_cb); - EXPECT_EQ(nullptr, deno_last_exception(d)); - EXPECT_EQ(1, resolve_count); - EXPECT_EQ(0, exec_count); - - deno_mod_evaluate(d, d, a); - EXPECT_EQ(nullptr, deno_last_exception(d)); - EXPECT_EQ(1, exec_count); - - deno_delete(d); -} - TEST(ModulesTest, ResolutionError) { exec_count = 0; // Reset Deno* d = deno_new(deno_config{0, empty, empty, recv_cb}); |