1 #include <gtest/gtest.h>
2 #include <wasmtime.h>
3 #include <wasmtime/component.hh>
4 
5 using namespace wasmtime::component;
6 
TEST(Linker,allow_shadowing)7 TEST(Linker, allow_shadowing) {
8   wasmtime::Engine engine;
9   Linker linker(engine);
10   auto m = wasmtime::Module::compile(engine, "(module)").unwrap();
11 
12   linker.root().add_module("x", m).unwrap();
13   linker.root().add_module("x", m).err();
14   linker.allow_shadowing(true);
15   linker.root().add_module("x", m).unwrap();
16 }
17 
TEST(Linker,unknown_imports_trap)18 TEST(Linker, unknown_imports_trap) {
19   wasmtime::Engine engine;
20   Linker linker(engine);
21   wasmtime::Store store(engine);
22 
23   auto c = Component::compile(engine, R"(
24     (component
25       (import "a" (func))
26     )
27   )")
28                .unwrap();
29 
30   EXPECT_FALSE(linker.instantiate(store, c));
31   EXPECT_TRUE(linker.define_unknown_imports_as_traps(c));
32   EXPECT_TRUE(linker.instantiate(store, c));
33 }
34