1 # RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/start.s -o %t.start.o
2 # RUN: wasm-ld --export-memory=foo -o %t.wasm %t.start.o
3 # RUN: obj2yaml %t.wasm | FileCheck %s
5 # Verify that the --export-memory=<name> option changes the exported name of the module's memory
7 # CHECK: - Type: EXPORT
9 # CHECK-NEXT: - Name: foo
10 # CHECK-NEXT: Kind: MEMORY
11 # CHECK-NEXT: Index: 0
12 # CHECK-NEXT: - Name: _start
13 # CHECK-NEXT: Kind: FUNCTION
14 # CHECK-NEXT: Index: 0
17 # RUN:wasm-ld --export-memory --export-memory -o %t.unnamed.wasm %t.start.o
18 # RUN: obj2yaml %t.unnamed.wasm | FileCheck -check-prefix=CHECK-UNNAMED %s
20 # Verify that the --export-memory option without a parameter exports the memory
23 # CHECK-UNNAMED: - Type: EXPORT
24 # CHECK-UNNAMED-NEXT: Exports:
25 # CHECK-UNNAMED-NEXT: - Name: memory
26 # CHECK-UNNAMED-NEXT: Kind: MEMORY
27 # CHECK-UNNAMED-NEXT: Index: 0
28 # CHECK-UNNAMED-NEXT: - Name: _start
29 # CHECK-UNNAMED-NEXT: Kind: FUNCTION
30 # CHECK-UNNAMED-NEXT: Index: 0
31 # CHECK-UNNAMED-NEXT: - Type:
33 # RUN:wasm-ld --export-memory=foo --export-memory=foo -o %t.duplicate.wasm %t.start.o
34 # RUN: obj2yaml %t.duplicate.wasm | FileCheck -check-prefix=CHECK-DUPLICATE %s
36 # Verify that passing --export-memory with the same name twice works
38 # CHECK-DUPLICATE: - Type: EXPORT
39 # CHECK-DUPLICATE-NEXT: Exports:
40 # CHECK-DUPLICATE-NEXT: - Name: foo
41 # CHECK-DUPLICATE-NEXT: Kind: MEMORY
42 # CHECK-DUPLICATE-NEXT: Index: 0
43 # CHECK-DUPLICATE-NEXT: - Name: _start
44 # CHECK-DUPLICATE-NEXT: Kind: FUNCTION
45 # CHECK-DUPLICATE-NEXT: Index: 0
46 # CHECK-DUPLICATE-NEXT: - Type:
48 # RUN:wasm-ld --import-memory=foo,bar -o %t.import.wasm %t.start.o
49 # RUN: obj2yaml %t.import.wasm | FileCheck -check-prefix=CHECK-IMPORT %s
51 # Verify that memory imports can be renamed, and that no memory is exported by
52 # default when memory is being imported
54 # CHECK-IMPORT: - Type: IMPORT
55 # CHECK-IMPORT-NEXT: Imports:
56 # CHECK-IMPORT-NEXT: - Module: foo
57 # CHECK-IMPORT-NEXT: Field: bar
58 # CHECK-IMPORT-NEXT: Kind: MEMORY
59 # CHECK-IMPORT-NEXT: Memory:
60 # CHECK-IMPORT-NEXT: Minimum: 0x2
61 # CHECK-IMPORT: - Type: EXPORT
62 # CHECK-IMPORT-NEXT: Exports:
63 # CHECK-IMPORT-NEXT: - Name: _start
64 # CHECK-IMPORT-NEXT: Kind: FUNCTION
65 # CHECK-IMPORT-NEXT: Index: 0
66 # CHECK-IMPORT-NEXT: - Type:
68 # RUN:wasm-ld --import-memory=foo,bar --export-memory=qux -o %t.both.wasm %t.start.o
69 # RUN: obj2yaml %t.both.wasm | FileCheck -check-prefix=CHECK-BOTH %s
71 # Verify that memory can be both imported and exported from a module
73 # CHECK-BOTH: - Type: IMPORT
74 # CHECK-BOTH-NEXT: Imports:
75 # CHECK-BOTH-NEXT: - Module: foo
76 # CHECK-BOTH-NEXT: Field: bar
77 # CHECK-BOTH-NEXT: Kind: MEMORY
78 # CHECK-BOTH-NEXT: Memory:
79 # CHECK-BOTH-NEXT: Minimum: 0x2
80 # CHECK-BOTH: - Type: EXPORT
81 # CHECK-BOTH-NEXT: Exports:
82 # CHECK-BOTH-NEXT: - Name: qux
83 # CHECK-BOTH-NEXT: Kind: MEMORY
84 # CHECK-BOTH-NEXT: Index: 0
85 # CHECK-BOTH-NEXT: - Name: _start
86 # CHECK-BOTH-NEXT: Kind: FUNCTION
87 # CHECK-BOTH-NEXT: Index: 0
88 # CHECK-BOTH-NEXT: - Type: