@@ -32,6 +32,45 @@ TEST(capi, free_module_null)
3232 fizzy_free_module (nullptr );
3333}
3434
35+ TEST (capi, get_function_type)
36+ {
37+ /* wat2wasm
38+ (func)
39+ (func (param i32 i32) (result i32) (i32.const 0))
40+ (func (param i64))
41+ (func (param f64) (result f32) (f32.const 0))
42+ */
43+ const auto wasm = from_hex (
44+ " 0061736d0100000001130460000060027f7f017f60017e0060017c017d030504000102030a140402000b040041"
45+ " 000b02000b070043000000000b" );
46+ const auto module = fizzy_parse (wasm.data (), wasm.size ());
47+ EXPECT_NE (module , nullptr );
48+
49+ const auto type0 = fizzy_get_function_type (module , 0 );
50+ EXPECT_EQ (type0.inputs_size , 0 );
51+ EXPECT_EQ (type0.outputs_size , 0 );
52+
53+ const auto type1 = fizzy_get_function_type (module , 1 );
54+ EXPECT_EQ (type1.inputs_size , 2 );
55+ EXPECT_EQ (type1.inputs [0 ], FizzyValueTypeI32);
56+ EXPECT_EQ (type1.inputs [1 ], FizzyValueTypeI32);
57+ EXPECT_EQ (type1.outputs_size , 1 );
58+ EXPECT_EQ (type1.outputs [0 ], FizzyValueTypeI32);
59+
60+ const auto type2 = fizzy_get_function_type (module , 2 );
61+ EXPECT_EQ (type2.inputs_size , 1 );
62+ EXPECT_EQ (type2.inputs [0 ], FizzyValueTypeI64);
63+ EXPECT_EQ (type2.outputs_size , 0 );
64+
65+ const auto type3 = fizzy_get_function_type (module , 3 );
66+ EXPECT_EQ (type3.inputs_size , 1 );
67+ EXPECT_EQ (type3.inputs [0 ], FizzyValueTypeF64);
68+ EXPECT_EQ (type3.outputs_size , 1 );
69+ EXPECT_EQ (type3.outputs [0 ], FizzyValueTypeF32);
70+
71+ fizzy_free_module (module );
72+ }
73+
3574TEST (capi, find_exported_function)
3675{
3776 /* wat2wasm
0 commit comments