Skip to content

Commit a10be02

Browse files
committed
Add tests
1 parent bbaf4e4 commit a10be02

File tree

1 file changed

+237
-0
lines changed

1 file changed

+237
-0
lines changed
Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o
2+
3+
# RUN: wasm-ld -o %t.wasm %t.o
4+
# RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=CHECK-DEFAULT
5+
6+
# RUN: wasm-ld --function-pointer-alignment=2 -o %t.wasm %t.o
7+
# RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=CHECK-2
8+
9+
# RUN: wasm-ld --function-pointer-alignment=3 -o %t.wasm %t.o
10+
# RUN: obj2yaml %t.wasm | FileCheck %s -check-prefix=CHECK-3
11+
12+
.functype func1 () -> ()
13+
.functype func2 () -> ()
14+
15+
.globl _start
16+
_start:
17+
.functype _start () -> ()
18+
i32.const func1
19+
drop
20+
i32.const func2
21+
drop
22+
end_function
23+
24+
.globl func1
25+
func1:
26+
.functype func1 () -> ()
27+
end_function
28+
29+
.globl func2
30+
func2:
31+
.functype func2 () -> ()
32+
end_function
33+
34+
35+
# CHECK-DEFAULT: --- !WASM
36+
# CHECK-DEFAULT-NEXT: FileHeader:
37+
# CHECK-DEFAULT-NEXT: Version: 0x1
38+
# CHECK-DEFAULT-NEXT: Sections:
39+
# CHECK-DEFAULT-NEXT: - Type: TYPE
40+
# CHECK-DEFAULT-NEXT: Signatures:
41+
# CHECK-DEFAULT-NEXT: - Index: 0
42+
# CHECK-DEFAULT-NEXT: ParamTypes: []
43+
# CHECK-DEFAULT-NEXT: ReturnTypes: []
44+
# CHECK-DEFAULT-NEXT: - Type: FUNCTION
45+
# CHECK-DEFAULT-NEXT: FunctionTypes: [ 0, 0, 0 ]
46+
# CHECK-DEFAULT-NEXT: - Type: TABLE
47+
# CHECK-DEFAULT-NEXT: Tables:
48+
# CHECK-DEFAULT-NEXT: - Index: 0
49+
# CHECK-DEFAULT-NEXT: ElemType: FUNCREF
50+
# CHECK-DEFAULT-NEXT: Limits:
51+
# CHECK-DEFAULT-NEXT: Flags: [ HAS_MAX ]
52+
# CHECK-DEFAULT-NEXT: Minimum: 0x3
53+
# CHECK-DEFAULT-NEXT: Maximum: 0x3
54+
# CHECK-DEFAULT-NEXT: - Type: MEMORY
55+
# CHECK-DEFAULT-NEXT: Memories:
56+
# CHECK-DEFAULT-NEXT: - Minimum: 0x2
57+
# CHECK-DEFAULT-NEXT: - Type: GLOBAL
58+
# CHECK-DEFAULT-NEXT: Globals:
59+
# CHECK-DEFAULT-NEXT: - Index: 0
60+
# CHECK-DEFAULT-NEXT: Type: I32
61+
# CHECK-DEFAULT-NEXT: Mutable: true
62+
# CHECK-DEFAULT-NEXT: InitExpr:
63+
# CHECK-DEFAULT-NEXT: Opcode: I32_CONST
64+
# CHECK-DEFAULT-NEXT: Value: 66560
65+
# CHECK-DEFAULT-NEXT: - Type: EXPORT
66+
# CHECK-DEFAULT-NEXT: Exports:
67+
# CHECK-DEFAULT-NEXT: - Name: memory
68+
# CHECK-DEFAULT-NEXT: Kind: MEMORY
69+
# CHECK-DEFAULT-NEXT: Index: 0
70+
# CHECK-DEFAULT-NEXT: - Name: _start
71+
# CHECK-DEFAULT-NEXT: Kind: FUNCTION
72+
# CHECK-DEFAULT-NEXT: Index: 0
73+
# CHECK-DEFAULT-NEXT: - Type: ELEM
74+
# CHECK-DEFAULT-NEXT: Segments:
75+
# CHECK-DEFAULT-NEXT: - Offset:
76+
# CHECK-DEFAULT-NEXT: Opcode: I32_CONST
77+
# CHECK-DEFAULT-NEXT: Value: 1
78+
# CHECK-DEFAULT-NEXT: Functions: [ 1, 2 ]
79+
# CHECK-DEFAULT-NEXT: - Type: CODE
80+
# CHECK-DEFAULT-NEXT: Functions:
81+
# CHECK-DEFAULT-NEXT: - Index: 0
82+
# CHECK-DEFAULT-NEXT: Locals: []
83+
# CHECK-DEFAULT-NEXT: Body: 4181808080001A4182808080001A0B
84+
# CHECK-DEFAULT-NEXT: - Index: 1
85+
# CHECK-DEFAULT-NEXT: Locals: []
86+
# CHECK-DEFAULT-NEXT: Body: 0B
87+
# CHECK-DEFAULT-NEXT: - Index: 2
88+
# CHECK-DEFAULT-NEXT: Locals: []
89+
# CHECK-DEFAULT-NEXT: Body: 0B
90+
# CHECK-DEFAULT-NEXT: - Type: CUSTOM
91+
# CHECK-DEFAULT-NEXT: Name: name
92+
# CHECK-DEFAULT-NEXT: FunctionNames:
93+
# CHECK-DEFAULT-NEXT: - Index: 0
94+
# CHECK-DEFAULT-NEXT: Name: _start
95+
# CHECK-DEFAULT-NEXT: - Index: 1
96+
# CHECK-DEFAULT-NEXT: Name: func1
97+
# CHECK-DEFAULT-NEXT: - Index: 2
98+
# CHECK-DEFAULT-NEXT: Name: func2
99+
# CHECK-DEFAULT-NEXT: GlobalNames:
100+
# CHECK-DEFAULT-NEXT: - Index: 0
101+
# CHECK-DEFAULT-NEXT: Name: __stack_pointer
102+
103+
# CHECK-2: --- !WASM
104+
# CHECK-2-NEXT: FileHeader:
105+
# CHECK-2-NEXT: Version: 0x1
106+
# CHECK-2-NEXT: Sections:
107+
# CHECK-2-NEXT: - Type: TYPE
108+
# CHECK-2-NEXT: Signatures:
109+
# CHECK-2-NEXT: - Index: 0
110+
# CHECK-2-NEXT: ParamTypes: []
111+
# CHECK-2-NEXT: ReturnTypes: []
112+
# CHECK-2-NEXT: - Type: FUNCTION
113+
# CHECK-2-NEXT: FunctionTypes: [ 0, 0, 0 ]
114+
# CHECK-2-NEXT: - Type: TABLE
115+
# CHECK-2-NEXT: Tables:
116+
# CHECK-2-NEXT: - Index: 0
117+
# CHECK-2-NEXT: ElemType: FUNCREF
118+
# CHECK-2-NEXT: Limits:
119+
# CHECK-2-NEXT: Flags: [ HAS_MAX ]
120+
# CHECK-2-NEXT: Minimum: 0x4
121+
# CHECK-2-NEXT: Maximum: 0x4
122+
# CHECK-2-NEXT: - Type: MEMORY
123+
# CHECK-2-NEXT: Memories:
124+
# CHECK-2-NEXT: - Minimum: 0x2
125+
# CHECK-2-NEXT: - Type: GLOBAL
126+
# CHECK-2-NEXT: Globals:
127+
# CHECK-2-NEXT: - Index: 0
128+
# CHECK-2-NEXT: Type: I32
129+
# CHECK-2-NEXT: Mutable: true
130+
# CHECK-2-NEXT: InitExpr:
131+
# CHECK-2-NEXT: Opcode: I32_CONST
132+
# CHECK-2-NEXT: Value: 66560
133+
# CHECK-2-NEXT: - Type: EXPORT
134+
# CHECK-2-NEXT: Exports:
135+
# CHECK-2-NEXT: - Name: memory
136+
# CHECK-2-NEXT: Kind: MEMORY
137+
# CHECK-2-NEXT: Index: 0
138+
# CHECK-2-NEXT: - Name: _start
139+
# CHECK-2-NEXT: Kind: FUNCTION
140+
# CHECK-2-NEXT: Index: 0
141+
# CHECK-2-NEXT: - Type: ELEM
142+
# CHECK-2-NEXT: Segments:
143+
# CHECK-2-NEXT: - Offset:
144+
# CHECK-2-NEXT: Opcode: I32_CONST
145+
# CHECK-2-NEXT: Value: 1
146+
# CHECK-2-NEXT: Functions: [ 1, 2, 0 ]
147+
# CHECK-2-NEXT: - Type: CODE
148+
# CHECK-2-NEXT: Functions:
149+
# CHECK-2-NEXT: - Index: 0
150+
# CHECK-2-NEXT: Locals: []
151+
# CHECK-2-NEXT: Body: 4181808080001A4182808080001A0B
152+
# CHECK-2-NEXT: - Index: 1
153+
# CHECK-2-NEXT: Locals: []
154+
# CHECK-2-NEXT: Body: 0B
155+
# CHECK-2-NEXT: - Index: 2
156+
# CHECK-2-NEXT: Locals: []
157+
# CHECK-2-NEXT: Body: 0B
158+
# CHECK-2-NEXT: - Type: CUSTOM
159+
# CHECK-2-NEXT: Name: name
160+
# CHECK-2-NEXT: FunctionNames:
161+
# CHECK-2-NEXT: - Index: 0
162+
# CHECK-2-NEXT: Name: _start
163+
# CHECK-2-NEXT: - Index: 1
164+
# CHECK-2-NEXT: Name: func1
165+
# CHECK-2-NEXT: - Index: 2
166+
# CHECK-2-NEXT: Name: func2
167+
# CHECK-2-NEXT: GlobalNames:
168+
# CHECK-2-NEXT: - Index: 0
169+
# CHECK-2-NEXT: Name: __stack_pointer
170+
171+
# CHECK-3: --- !WASM
172+
# CHECK-3-NEXT: FileHeader:
173+
# CHECK-3-NEXT: Version: 0x1
174+
# CHECK-3-NEXT: Sections:
175+
# CHECK-3-NEXT: - Type: TYPE
176+
# CHECK-3-NEXT: Signatures:
177+
# CHECK-3-NEXT: - Index: 0
178+
# CHECK-3-NEXT: ParamTypes: []
179+
# CHECK-3-NEXT: ReturnTypes: []
180+
# CHECK-3-NEXT: - Type: FUNCTION
181+
# CHECK-3-NEXT: FunctionTypes: [ 0, 0, 0 ]
182+
# CHECK-3-NEXT: - Type: TABLE
183+
# CHECK-3-NEXT: Tables:
184+
# CHECK-3-NEXT: - Index: 0
185+
# CHECK-3-NEXT: ElemType: FUNCREF
186+
# CHECK-3-NEXT: Limits:
187+
# CHECK-3-NEXT: Flags: [ HAS_MAX ]
188+
# CHECK-3-NEXT: Minimum: 0x6
189+
# CHECK-3-NEXT: Maximum: 0x6
190+
# CHECK-3-NEXT: - Type: MEMORY
191+
# CHECK-3-NEXT: Memories:
192+
# CHECK-3-NEXT: - Minimum: 0x2
193+
# CHECK-3-NEXT: - Type: GLOBAL
194+
# CHECK-3-NEXT: Globals:
195+
# CHECK-3-NEXT: - Index: 0
196+
# CHECK-3-NEXT: Type: I32
197+
# CHECK-3-NEXT: Mutable: true
198+
# CHECK-3-NEXT: InitExpr:
199+
# CHECK-3-NEXT: Opcode: I32_CONST
200+
# CHECK-3-NEXT: Value: 66560
201+
# CHECK-3-NEXT: - Type: EXPORT
202+
# CHECK-3-NEXT: Exports:
203+
# CHECK-3-NEXT: - Name: memory
204+
# CHECK-3-NEXT: Kind: MEMORY
205+
# CHECK-3-NEXT: Index: 0
206+
# CHECK-3-NEXT: - Name: _start
207+
# CHECK-3-NEXT: Kind: FUNCTION
208+
# CHECK-3-NEXT: Index: 0
209+
# CHECK-3-NEXT: - Type: ELEM
210+
# CHECK-3-NEXT: Segments:
211+
# CHECK-3-NEXT: - Offset:
212+
# CHECK-3-NEXT: Opcode: I32_CONST
213+
# CHECK-3-NEXT: Value: 1
214+
# CHECK-3-NEXT: Functions: [ 1, 0, 2, 0, 0 ]
215+
# CHECK-3-NEXT: - Type: CODE
216+
# CHECK-3-NEXT: Functions:
217+
# CHECK-3-NEXT: - Index: 0
218+
# CHECK-3-NEXT: Locals: []
219+
# CHECK-3-NEXT: Body: 4181808080001A4183808080001A0B
220+
# CHECK-3-NEXT: - Index: 1
221+
# CHECK-3-NEXT: Locals: []
222+
# CHECK-3-NEXT: Body: 0B
223+
# CHECK-3-NEXT: - Index: 2
224+
# CHECK-3-NEXT: Locals: []
225+
# CHECK-3-NEXT: Body: 0B
226+
# CHECK-3-NEXT: - Type: CUSTOM
227+
# CHECK-3-NEXT: Name: name
228+
# CHECK-3-NEXT: FunctionNames:
229+
# CHECK-3-NEXT: - Index: 0
230+
# CHECK-3-NEXT: Name: _start
231+
# CHECK-3-NEXT: - Index: 1
232+
# CHECK-3-NEXT: Name: func1
233+
# CHECK-3-NEXT: - Index: 2
234+
# CHECK-3-NEXT: Name: func2
235+
# CHECK-3-NEXT: GlobalNames:
236+
# CHECK-3-NEXT: - Index: 0
237+
# CHECK-3-NEXT: Name: __stack_pointer

0 commit comments

Comments
 (0)