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