Skip to content

Commit c683ccc

Browse files
committed
feat: Import test
1 parent 26947a2 commit c683ccc

File tree

3 files changed

+159
-5
lines changed

3 files changed

+159
-5
lines changed

test/import_test.re

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
open Binaryen;
2+
open Frame_work;
3+
4+
suite("Import", () => {
5+
test("Add Import", () => {
6+
let wasm_mod = Module.create();
7+
let external_module_name = "ext_module";
8+
let external_base_name = "ext_base";
9+
// Import Function
10+
Import.add_function_import(
11+
wasm_mod,
12+
"ext_func",
13+
external_module_name,
14+
external_base_name,
15+
Type.none,
16+
Type.none,
17+
);
18+
// Import Table
19+
Import.add_table_import(
20+
wasm_mod,
21+
"ext_table",
22+
external_module_name,
23+
external_base_name,
24+
);
25+
// Import Memory
26+
Import.add_memory_import(
27+
wasm_mod,
28+
"ext_memory",
29+
external_module_name,
30+
external_base_name,
31+
false,
32+
);
33+
// Import Global
34+
Import.add_global_import(
35+
wasm_mod,
36+
"ext_global",
37+
external_module_name,
38+
external_base_name,
39+
Type.int32,
40+
false,
41+
);
42+
Printf.printf("%s", Module.write_text(wasm_mod));
43+
Module.dispose(wasm_mod);
44+
});
45+
test("Get Module", () => {
46+
let wasm_mod = Module.create();
47+
let external_module_name = "ext_module";
48+
let external_base_name = "ext_base";
49+
// Import Function
50+
let func_name = "ext_func";
51+
Import.add_function_import(
52+
wasm_mod,
53+
func_name,
54+
external_module_name,
55+
external_base_name,
56+
Type.none,
57+
Type.none,
58+
);
59+
// Import Memory
60+
Import.add_memory_import(
61+
wasm_mod,
62+
"ext_memory",
63+
external_module_name,
64+
external_base_name,
65+
false,
66+
);
67+
// Import Global
68+
Import.add_global_import(
69+
wasm_mod,
70+
"ext_global",
71+
external_module_name,
72+
external_base_name,
73+
Type.int32,
74+
false,
75+
);
76+
77+
assert(
78+
Import.function_import_get_module(
79+
Function.get_function(wasm_mod, func_name),
80+
)
81+
== external_module_name,
82+
);
83+
assert(
84+
Import.memory_import_get_module(wasm_mod, "ext_memory")
85+
== external_module_name,
86+
);
87+
assert(
88+
Import.global_import_get_module(
89+
Global.get_global(wasm_mod, "ext_global"),
90+
)
91+
== external_module_name,
92+
);
93+
94+
Module.dispose(wasm_mod);
95+
});
96+
test("Get Base", () => {
97+
let wasm_mod = Module.create();
98+
let external_module_name = "ext_module";
99+
let external_base_name = "ext_base";
100+
// Import Function
101+
let func_name = "ext_func";
102+
Import.add_function_import(
103+
wasm_mod,
104+
func_name,
105+
external_module_name,
106+
external_base_name,
107+
Type.none,
108+
Type.none,
109+
);
110+
// Import Memory
111+
Import.add_memory_import(
112+
wasm_mod,
113+
"ext_memory",
114+
external_module_name,
115+
external_base_name,
116+
false,
117+
);
118+
// Import Global
119+
Import.add_global_import(
120+
wasm_mod,
121+
"ext_global",
122+
external_module_name,
123+
external_base_name,
124+
Type.int32,
125+
false,
126+
);
127+
128+
assert(
129+
Import.function_import_get_base(
130+
Function.get_function(wasm_mod, func_name),
131+
)
132+
== external_base_name,
133+
);
134+
assert(
135+
Import.memory_import_get_base(wasm_mod, "ext_memory")
136+
== external_base_name,
137+
);
138+
assert(
139+
Import.global_import_get_base(
140+
Global.get_global(wasm_mod, "ext_global"),
141+
)
142+
== external_base_name,
143+
);
144+
145+
Module.dispose(wasm_mod);
146+
});
147+
});

test/test.expected

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,17 @@ Running suite: Function
9898
. Running test: Remove Global
9999
. Running test: Get Global by Index
100100
. Running test: Get Init Expr
101+
Running suite: Import
102+
. Running test: Add Import
103+
(module
104+
(type $0 (func))
105+
(import "ext_module" "ext_base" (memory $ext_memory 0 65536))
106+
(import "ext_module" "ext_base" (table $ext_table 0 funcref))
107+
(import "ext_module" "ext_base" (global $ext_global i32))
108+
(import "ext_module" "ext_base" (func $ext_func))
109+
)
110+
. Running test: Get Module
111+
. Running test: Get Base
101112
Running suite: Literal
102113
. Running test: int32
103114
(module

test/test.re

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ open Memory_test; // TODO: Document
1313
open Table_test; // TODO: Document
1414
open Element_segment_test; // TODO: Document
1515
open Export_test; // TODO: Document
16-
// TODO: Import (Medium)
16+
open Import_test; // TODO: Document
1717
// TODO: Passes (Hard)
1818
// TODO: Expression (Hard)
1919
// TODO: OP (Medium)
@@ -102,8 +102,6 @@ open Export_test; // TODO: Document
102102
// Expression.Drop.make wasm_mod call_adder;
103103
// ])
104104

105-
// let _ = Export.add_function_export wasm_mod "adder" "adder"
106-
107105
// (* TODO(#240): Re-enable after type-builder api is merged *)
108106
// (* let funcref_expr1 = Expression.Ref.func wasm_mod "adder" (Heap_type.func ())
109107

@@ -149,8 +147,6 @@ open Export_test; // TODO: Document
149147
// ]
150148
// Type.int32)
151149

152-
// let _ = Export.add_function_export wasm_mod "hello" "hello"
153-
154150
// let _ =
155151
// Module.run_passes new_mod
156152
// [

0 commit comments

Comments
 (0)