## Test that the replace command with "u" updates the relevant members.

# RUN: rm -rf %t && mkdir -p %t/new/other

# RUN: yaml2obj %s -o %t/1.o --docnum=1
# RUN: yaml2obj %s -o %t/2.o --docnum=2
# RUN: yaml2obj %s -o %t/3.o --docnum=3

# RUN: env TZ=GMT touch -t 200001020304 %t/1.o
# RUN: env TZ=GMT touch -t 200001020304 %t/2.o
# RUN: env TZ=GMT touch -t 200001020304 %t/3.o

# RUN: yaml2obj %s -o %t/new/1.o --docnum=4
# RUN: yaml2obj %s -o %t/new/3.o --docnum=5

# RUN: yaml2obj %s -o %t/new/other/1.o --docnum=6

# RUN: env TZ=GMT touch -t 200001020304 %t/new/other/1.o

## Replace single member with newer file:
# RUN: llvm-ar rcU %t/single.a %t/1.o %t/2.o %t/3.o
# RUN: llvm-ar ruU %t/single.a %t/new/1.o
# RUN: llvm-ar t %t/single.a \
# RUN:   | FileCheck %s --check-prefix=SINGLE --implicit-check-not {{.}}

# SINGLE:      1.o
# SINGLE-NEXT: 2.o
# SINGLE-NEXT: 3.o

# RUN: llvm-nm --print-armap %t/single.a \
# RUN:   | FileCheck %s --check-prefix=SINGLE-SYM

# SINGLE-SYM:      symbolnew1
# SINGLE-SYM-NEXT: symbol2
# SINGLE-SYM-NEXT: symbol3

## Replace new single member with older file:
# RUN: llvm-ar ruU %t/single.a %t/1.o
# RUN: llvm-ar t %t/single.a \
# RUN:   | FileCheck %s --check-prefix=SINGLE --implicit-check-not {{.}}

# RUN: llvm-nm --print-armap %t/single.a \
# RUN:   | FileCheck %s --check-prefix=SINGLE-SYM

## Replace multiple members with newer files:
# RUN: llvm-ar rcuU %t/multiple.a %t/1.o %t/2.o %t/3.o
# RUN: llvm-ar ruU %t/multiple.a %t/new/1.o %t/new/3.o
# RUN: llvm-ar t %t/multiple.a \
# RUN:   | FileCheck %s --check-prefix=MULTIPLE --implicit-check-not {{.}}

# MULTIPLE:      1.o
# MULTIPLE-NEXT: 2.o
# MULTIPLE-NEXT: 3.o

# RUN: llvm-nm --print-armap %t/multiple.a \
# RUN:   | FileCheck %s --check-prefix=MULTIPLE-SYM

# MULTIPLE-SYM:      symbolnew1
# MULTIPLE-SYM-NEXT: symbol2
# MULTIPLE-SYM-NEXTs: symbolnew3

## Replace newer members with multiple older files:
# RUN: llvm-ar ruU %t/multiple.a %t/1.o %t/2.o
# RUN: llvm-ar t %t/multiple.a \
# RUN:   | FileCheck %s --check-prefix=MULTIPLE --implicit-check-not {{.}}

# RUN: llvm-nm --print-armap %t/multiple.a \
# RUN:   | FileCheck %s --check-prefix=MULTIPLE-SYM

## Replace same member with newer files:
# RUN: llvm-ar rcuU %t/same.a %t/1.o %t/2.o %t/3.o
# RUN: llvm-ar ruU %t/same.a %t/new/1.o %t/new/other/1.o
# RUN: llvm-ar t %t/same.a \
# RUN:   | FileCheck %s --check-prefix=SAME -DFILE=%t/2.o --implicit-check-not {{.}}

# SAME:      1.o
# SAME-NEXT: 2.o
# SAME-NEXT: 3.o
# SAME-NEXT: 1.o

# RUN: llvm-nm --print-armap %t/same.a \
# RUN:   | FileCheck %s --check-prefix=SAME-SYM

# SAME-SYM:      symbolnew1
# SAME-SYM-NEXT: symbol2
# SAME-SYM-NEXT: symbol3
# SAME-SYM-NEXT: symbolother1

## Replace multiple members with an older file and a newer file:
# RUN: llvm-ar rcuU %t/old-new.a %t/new/1.o %t/2.o %t/3.o
# RUN: llvm-ar ruU %t/old-new.a %t/1.o %t/new/3.o
# RUN: llvm-ar t %t/old-new.a \
# RUN:   | FileCheck %s --check-prefix=MULTIPLE --implicit-check-not {{.}}

# RUN: llvm-nm --print-armap %t/old-new.a \
# RUN:   | FileCheck %s --check-prefix=MULTIPLE-SYM

## Replace same member with an older file and a newer file:
# RUN: llvm-ar rcuU %t/old-new-same.a %t/new/1.o %t/2.o %t/3.o
# RUN: llvm-ar ruU %t/old-new-same.a %t/1.o %t/new/other/1.o
# RUN: llvm-ar t %t/old-new-same.a \
# RUN:   | FileCheck %s --check-prefix=SAME -DFILE=%t/2.o --implicit-check-not {{.}}

# RUN: llvm-nm --print-armap %t/same.a \
# RUN:   | FileCheck %s --check-prefix=SAME-SYM

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
Symbols:
  - Name:    symbol1
    Binding: STB_GLOBAL
    Section: .text

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
Symbols:
  - Name:    symbol2
    Binding: STB_GLOBAL
    Section: .text

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
Symbols:
  - Name:    symbol3
    Binding: STB_GLOBAL
    Section: .text

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
Symbols:
  - Name:    symbolnew1
    Binding: STB_GLOBAL
    Section: .text

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
Symbols:
  - Name:    symbolnew3
    Binding: STB_GLOBAL
    Section: .text

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_REL
  Machine: EM_X86_64
Sections:
  - Name: .text
    Type: SHT_PROGBITS
Symbols:
  - Name:    symbolother1
    Binding: STB_GLOBAL
    Section: .text
