[llvm-ar] Access ADDLIB in llvm-ar via command line
ADDLIB is called to add the contents of an archive to another archive.
Previously this was only accessible through the use of an MRI script.
With the use of a new "L" modifier, archive files can treated in the
manner above when using quick append.
llvm-svn: 345383
diff --git a/llvm/test/tools/llvm-ar/add-library.test b/llvm/test/tools/llvm-ar/add-library.test
new file mode 100644
index 0000000..bd44a7e
--- /dev/null
+++ b/llvm/test/tools/llvm-ar/add-library.test
@@ -0,0 +1,43 @@
+RUN: yaml2obj %S/Inputs/add-lib1.yaml -o %t-add-lib1.o
+RUN: yaml2obj %S/Inputs/add-lib2.yaml -o %t-add-lib2.o
+RUN: yaml2obj %S/Inputs/add-lib2.yaml -o %t-add-lib3.o
+
+RUN: rm -f %t.ar
+RUN: llvm-ar crs %t.ar %t-add-lib1.o
+RUN: llvm-ar cqs %t.ar %t-add-lib2.o
+
+RUN: llvm-ar tv %t.ar | FileCheck %s --check-prefix=CHECK-NAMES-NO-ADDLIB
+CHECK-NAMES-NO-ADDLIB: add-library.test.tmp-add-lib1.o
+CHECK-NAMES-NO-ADDLIB: add-library.test.tmp-add-lib2.o
+
+RUN: llvm-nm %t.ar | FileCheck %s --check-prefix=CHECK-SYMBOLS-NO-ADDLIB
+CHECK-SYMBOLS-NO-ADDLIB: add-lib1
+CHECK-SYMBOLS-NO-ADDLIB: add-lib2
+
+RUN: rm -f %t1.ar
+RUN: llvm-ar crs %t1.ar %t-add-lib3.o
+RUN: llvm-ar cqLs %t1.ar %t.ar
+
+RUN: llvm-ar tv %t1.ar | FileCheck %s --check-prefix=CHECK-NAMES-ADDLIB
+CHECK-NAMES-ADDLIB: add-library.test.tmp-add-lib3.o
+CHECK-NAMES-ADDLIB: add-library.test.tmp-add-lib1.o
+CHECK-NAMES-ADDLIB: add-library.test.tmp-add-lib2.o
+
+RUN: llvm-nm %t1.ar | FileCheck %s --check-prefix=CHECK-SYMBOLS-ADDLIB
+CHECK-SYMBOLS-ADDLIB: add-lib3
+CHECK-SYMBOLS-ADDLIB: add-lib1
+CHECK-SYMBOLS-ADDLIB: add-lib2
+
+RUN: llvm-ar cqLs %t1.ar %t-add-lib1.o
+
+RUN: llvm-ar tv %t1.ar | FileCheck %s --check-prefix=CHECK-NAMES-DUPLICATE
+CHECK-NAMES-DUPLICATE: add-library.test.tmp-add-lib3.o
+CHECK-NAMES-DUPLICATE: add-library.test.tmp-add-lib1.o
+CHECK-NAMES-DUPLICATE: add-library.test.tmp-add-lib2.o
+CHECK-NAMES-DUPLICATE: add-library.test.tmp-add-lib1.o
+
+RUN: llvm-nm %t1.ar | FileCheck %s --check-prefix=CHECK-SYMBOLS-DUPLICATE
+CHECK-SYMBOLS-DUPLICATE: add-lib3
+CHECK-SYMBOLS-DUPLICATE: add-lib1
+CHECK-SYMBOLS-DUPLICATE: add-lib2
+CHECK-SYMBOLS-DUPLICATE: add-lib1