| ## Test the ADDMOD MRI command. |
| |
| # RUN: rm -rf %t && split-file %s %t |
| # RUN: cd %t |
| # RUN: yaml2obj %s -o f.o |
| |
| # RUN: llvm-ar -M < add-mod.mri |
| # RUN: llvm-nm --print-armap add-mod.a | FileCheck --check-prefix=SYMS %s |
| # RUN: llvm-ar t add-mod.a | FileCheck --check-prefix=FILES %s |
| |
| # SYMS: f in {{.*}} |
| # FILES: f.o |
| |
| ## 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 |
| |
| ## ADDMOD 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: missing.o: [[MSG]] |
| |
| ## ADD same file 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-mod.mri |
| CREATE add-mod.a |
| ADDMOD f.o |
| SAVE |
| |
| #--- no-create.mri |
| ADDMOD f.o |
| SAVE |
| |
| #--- missing.mri |
| CREATE missing.a |
| ADDMOD missing.o |
| SAVE |
| |
| #--- duplicate.mri |
| CREATE duplicate.a |
| ADDMOD f.o |
| ADDMOD f.o |
| SAVE |