1 #include <wasmtime/types/extern.hh>
2 
3 #include <gtest/gtest.h>
4 #include <wasmtime.hh>
5 
6 using namespace wasmtime;
7 
TEST(ExternType,Smoke)8 TEST(ExternType, Smoke) {
9   Engine engine;
10 
11   Module module =
12       Module::compile(engine, "(module"
13                               "(import \"a\" \"b\" (func))"
14                               "(global (export \"x\") i32 (i32.const 0))"
15                               ")")
16           .unwrap();
17 
18   auto imports = module.imports();
19   EXPECT_EQ(imports.size(), 1);
20   auto i = *imports.begin();
21   auto import_ty = std::get<FuncType::Ref>(ExternType::from_import(i));
22   EXPECT_EQ(import_ty.params().size(), 0);
23   EXPECT_EQ(import_ty.results().size(), 0);
24 
25   auto exports = module.exports();
26   EXPECT_EQ(exports.size(), 1);
27   auto e = *exports.begin();
28   auto export_ty = std::get<GlobalType::Ref>(ExternType::from_export(e));
29   EXPECT_EQ(export_ty.content().kind(), ValKind::I32);
30   EXPECT_FALSE(export_ty.is_mutable());
31 }
32