blob: 31ad14a0ed0cabc3824ac80b38e248a4cd8d78e5 [file] [log] [blame]
## 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
...