## Test the ADDLIB MRI command. # RUN: rm -rf %t && split-file %s %t # RUN: cd %t # RUN: yaml2obj %s -o f.o # RUN: llvm-ar r f.a f.o ## Merge contents of archives. # RUN: llvm-ar -M < add-lib.mri # RUN: llvm-nm --print-armap add-lib.a | FileCheck --check-prefix=SYMS %s # RUN: llvm-ar t add-lib.a | FileCheck --check-prefix=FILES %s # SYMS: f in {{.*}} # FILES: f.o ## ADDLIB with non-archive file. # RUN: not llvm-ar -M < bad-lib.mri 2>&1 | FileCheck --check-prefix=PARSE %s # RUN: not ls bad-lib.a # PARSE: error: script line 2: could not parse library ## No create command. # RUN: not llvm-ar -M < no-create.mri 2>&1 | FileCheck --check-prefix=NOCREATE %s # NOCREATE: error: script line 1: no output archive has been opened ## ADDLIB with missing file. # RUN: not llvm-ar -M < missing.mri 2>&1 | FileCheck -DMSG=%errc_ENOENT %s --check-prefix=MISSING # RUN: not ls missing.a # MISSING: error: script line 2: could not open library missing-lib.a: [[MSG]] ## ADD same lib twice. # RUN: llvm-ar -M < duplicate.mri # RUN: llvm-nm --print-armap duplicate.a | FileCheck --check-prefix=SYMS2 %s # RUN: llvm-ar t duplicate.a | FileCheck --check-prefix=FILES2 %s # SYMS2-COUNT-2: f in {{.*}} # FILES2-COUNT-2: f.o #--- f.yaml --- !ELF FileHeader: Class: ELFCLASS64 Data: ELFDATA2LSB Type: ET_REL Machine: EM_X86_64 Sections: - Name: .text Type: SHT_PROGBITS Symbols: - Name: f Binding: STB_GLOBAL Section: .text ... #--- add-lib.mri CREATE add-lib.a ADDLIB f.a SAVE #--- text.txt I AM NOT AN ARCHIVE #--- bad-lib.mri CREATE bad-lib.a ADDLIB text.txt SAVE #--- no-create.mri ADDLIB f.a SAVE #--- missing.mri CREATE missing.a ADDLIB missing-lib.a SAVE #--- duplicate.mri CREATE duplicate.a ADDLIB f.a ADDLIB f.a SAVE