10
10
using namespace fizzy ;
11
11
using namespace fizzy ::test;
12
12
13
+ TEST (module, functions)
14
+ {
15
+ /* wat2wasm
16
+ (func (import "m" "f1") (param i32 i32) (result i32))
17
+ (func)
18
+ (func (param i64))
19
+ (func (result f32) (f32.const 0))
20
+ */
21
+ const auto bin = from_hex (
22
+ " 0061736d0100000001120460027f7f017f60000060017e006000017d020801016d02663100000304030102030a"
23
+ " 0f0302000b02000b070043000000000b" );
24
+ const auto module = parse (bin);
25
+
26
+ ASSERT_EQ (module.get_function_count (), 4 );
27
+ EXPECT_EQ (
28
+ module.get_function_type (0 ), (FuncType{{ValType::i32, ValType::i32}, {ValType::i32}}));
29
+ EXPECT_EQ (module.get_function_type (1 ), (FuncType{}));
30
+ EXPECT_EQ (module.get_function_type (2 ), (FuncType{{ValType::i64}, {}}));
31
+ EXPECT_EQ (module.get_function_type (3 ), (FuncType{{}, {ValType::f32}}));
32
+ }
33
+
13
34
TEST (module, globals)
14
35
{
15
36
/* wat2wasm
@@ -33,3 +54,57 @@ TEST(module, globals)
33
54
EXPECT_EQ (module.get_global_type (3 ).value_type , ValType::f64);
34
55
EXPECT_TRUE (module.get_global_type (3 ).is_mutable );
35
56
}
57
+
58
+ TEST (module, table)
59
+ {
60
+ /* wat2wasm
61
+ (table 1 funcref)
62
+ */
63
+ const auto bin1 = from_hex (" 0061736d01000000040401700001" );
64
+ const auto module1 = parse (bin1);
65
+
66
+ EXPECT_TRUE (module1.has_table ());
67
+
68
+ /* wat2wasm
69
+ (table (import "m" "t") 1 funcref)
70
+ */
71
+ const auto bin2 = from_hex (" 0061736d01000000020901016d017401700001" );
72
+ const auto module2 = parse (bin2);
73
+
74
+ EXPECT_TRUE (module2.has_table ());
75
+
76
+ /* wat2wasm
77
+ (module)
78
+ */
79
+ const auto bin3 = from_hex (" 0061736d01000000" );
80
+ const auto module3 = parse (bin3);
81
+
82
+ EXPECT_FALSE (module3.has_table ());
83
+ }
84
+
85
+ TEST (module, memory)
86
+ {
87
+ /* wat2wasm
88
+ (memory 1)
89
+ */
90
+ const auto bin1 = from_hex (" 0061736d010000000503010001" );
91
+ const auto module1 = parse (bin1);
92
+
93
+ EXPECT_TRUE (module1.has_memory ());
94
+
95
+ /* wat2wasm
96
+ (memory (import "m" "m") 1)
97
+ */
98
+ const auto bin2 = from_hex (" 0061736d01000000020801016d016d020001" );
99
+ const auto module2 = parse (bin2);
100
+
101
+ EXPECT_TRUE (module2.has_memory ());
102
+
103
+ /* wat2wasm
104
+ (module)
105
+ */
106
+ const auto bin3 = from_hex (" 0061736d01000000" );
107
+ const auto module3 = parse (bin3);
108
+
109
+ EXPECT_FALSE (module3.has_memory ());
110
+ }
0 commit comments