91 lines
2.2 KiB
Plaintext
91 lines
2.2 KiB
Plaintext
|
## Test a basic copy of an archive containing a wasm object.
|
||
|
|
||
|
# RUN: yaml2obj %s -o %t
|
||
|
|
||
|
## Create an archive and copy it using llvm-objcopy.
|
||
|
# RUN: rm -f %t.a
|
||
|
# RUN: llvm-ar crs %t.a %t
|
||
|
# RUN: cp %t.a %t.copy.a
|
||
|
# RUN: llvm-objcopy %t.a %t2.a
|
||
|
## Create another archive from an objcopy-copied object, verify that they match.
|
||
|
# RUN: llvm-objcopy %t %t2
|
||
|
# RUN: llvm-ar p %t2.a > %t3
|
||
|
# RUN: cmp %t2 %t3
|
||
|
|
||
|
## Check that the copied archive has the correct index contents.
|
||
|
# RUN: llvm-nm --print-armap %t.a | FileCheck --check-prefix=INDEX-TABLE %s
|
||
|
# RUN: llvm-nm --print-armap %t2.a | FileCheck --check-prefix=INDEX-TABLE %s
|
||
|
## Verify that llvm-objcopy has not modifed the input.
|
||
|
# RUN: cmp %t.copy.a %t.a
|
||
|
|
||
|
# INDEX-TABLE: Archive map
|
||
|
# INDEX-TABLE-NEXT: func1 in
|
||
|
|
||
|
## Do the same with an archive that has no index.
|
||
|
# RUN: rm -f %t.no.index.a
|
||
|
# RUN: llvm-ar crS %t.no.index.a %t
|
||
|
# RUN: llvm-objcopy %t.no.index.a %t2.no.index.a
|
||
|
# RUN: llvm-ar p %t2.no.index.a > %t4
|
||
|
|
||
|
# RUN: llvm-nm --print-armap %t.no.index.a | FileCheck --check-prefix=NO-INDEX-TABLE %s
|
||
|
# RUN: llvm-nm --print-armap %t2.no.index.a | FileCheck --check-prefix=NO-INDEX-TABLE %s
|
||
|
# RUN: cmp %t2 %t4
|
||
|
|
||
|
# NO-INDEX-TABLE-NOT: Archive map
|
||
|
# NO-INDEX-TABLE-NOT: func1 in
|
||
|
|
||
|
--- !WASM
|
||
|
FileHeader:
|
||
|
Version: 0x00000001
|
||
|
Sections:
|
||
|
- Type: TYPE
|
||
|
Signatures:
|
||
|
- Index: 0
|
||
|
ParamTypes:
|
||
|
- I32
|
||
|
ReturnTypes:
|
||
|
- F32
|
||
|
- Index: 1
|
||
|
ParamTypes:
|
||
|
- I32
|
||
|
- I64
|
||
|
ReturnTypes: []
|
||
|
- Type: FUNCTION
|
||
|
FunctionTypes:
|
||
|
- 0
|
||
|
- 1
|
||
|
- Type: CODE
|
||
|
Relocations:
|
||
|
- Type: R_WASM_TABLE_INDEX_SLEB
|
||
|
Index: 0
|
||
|
Offset: 0x00000002
|
||
|
- Type: R_WASM_FUNCTION_INDEX_LEB
|
||
|
Index: 1
|
||
|
Offset: 0x0000002
|
||
|
Functions:
|
||
|
- Index: 0
|
||
|
Locals:
|
||
|
- Type: I32
|
||
|
Count: 3
|
||
|
Body: 010101010B
|
||
|
- Index: 1
|
||
|
Locals:
|
||
|
- Type: I32
|
||
|
Count: 1
|
||
|
Body: 010101010B
|
||
|
- Type: CUSTOM
|
||
|
Name: linking
|
||
|
Version: 2
|
||
|
SymbolTable:
|
||
|
- Index: 0
|
||
|
Kind: FUNCTION
|
||
|
Name: func1
|
||
|
Flags: [ ]
|
||
|
Function: 0
|
||
|
- Index: 1
|
||
|
Kind: FUNCTION
|
||
|
Name: func2
|
||
|
Flags: [ ]
|
||
|
Function: 1
|
||
|
...
|