| ## Test inserting files after a file. |
| |
| RUN: touch %t1.txt |
| RUN: touch %t2.txt |
| RUN: touch %t3.txt |
| RUN: touch %t4.txt |
| |
| # Insert one file: |
| RUN: rm -f %t-one.a |
| RUN: llvm-ar rc %t-one.a %t1.txt %t2.txt |
| RUN: llvm-ar ra %t1.txt %t-one.a %t3.txt |
| RUN: llvm-ar t %t-one.a | FileCheck %s --check-prefix=ONE |
| |
| ONE: 1.txt |
| ONE-NEXT: 3.txt |
| ONE-NEXT: 2.txt |
| |
| # Insert file at back: |
| RUN: rm -f %t-back.a |
| RUN: llvm-ar rc %t-back.a %t1.txt %t2.txt |
| RUN: llvm-ar ra %t2.txt %t-back.a %t3.txt |
| RUN: llvm-ar t %t-back.a | FileCheck %s --check-prefix=BACK |
| |
| BACK: 1.txt |
| BACK-NEXT: 2.txt |
| BACK-NEXT: 3.txt |
| |
| # Insert multiple files: |
| RUN: rm -f %t-multiple.a |
| RUN: llvm-ar rc %t-multiple.a %t1.txt %t2.txt |
| RUN: llvm-ar ra %t1.txt %t-multiple.a %t4.txt %t3.txt |
| RUN: llvm-ar t %t-multiple.a | FileCheck %s --check-prefix=MULTIPLE |
| |
| MULTIPLE: 1.txt |
| MULTIPLE-NEXT: 4.txt |
| MULTIPLE-NEXT: 3.txt |
| MULTIPLE-NEXT: 2.txt |
| |
| # Insert after invalid file: |
| RUN: rm -f %t-invalid.a |
| RUN: llvm-ar rc %t-invalid.a %t1.txt %t2.txt %t3.txt |
| RUN: not llvm-ar ra invalid.txt %t-invalid.a %t2.txt 2>&1 \ |
| RUN: | FileCheck %s --check-prefix=ERROR |
| RUN: llvm-ar t %t-invalid.a | FileCheck %s --check-prefix=INVALID |
| |
| ERROR: error: insertion point not found |
| INVALID: 1.txt |
| INVALID-NEXT: 2.txt |
| INVALID-NEXT: 3.txt |
| |
| # Insert file at the same position: |
| RUN: rm -f %t-position.a |
| RUN: llvm-ar rc %t-position.a %t1.txt %t2.txt %t3.txt |
| RUN: llvm-ar ra %t1.txt %t-position.a %t2.txt |
| RUN: llvm-ar t %t-position.a | FileCheck %s --check-prefix=POSITION |
| |
| POSITION: 1.txt |
| POSITION-NEXT: 2.txt |
| POSITION-NEXT: 3.txt |