## 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 ...