Add r186216 back, but make the test tolerant of different uids and gids.
authorRafael Espindola <rafael.espindola@gmail.com>
Sat, 13 Jul 2013 04:14:13 +0000 (04:14 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Sat, 13 Jul 2013 04:14:13 +0000 (04:14 +0000)
original message:
Fix a off by one error about which members need to use the string table.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186238 91177308-0d34-0410-b5e6-96231b3b80d8

test/Object/archive-format.test [new file with mode: 0644]
tools/llvm-ar/llvm-ar.cpp

diff --git a/test/Object/archive-format.test b/test/Object/archive-format.test
new file mode 100644 (file)
index 0000000..5537175
--- /dev/null
@@ -0,0 +1,22 @@
+Test the exact archive format. In particular, test which file names use the
+string table or not.
+
+REQUIRES: shell
+
+RUN: mkdir -p %t
+RUN: cd %t
+
+RUN: echo bar > 0123456789abcde
+RUN: echo zed > 0123456789abcdef
+
+RUN: rm -f test.a
+RUN: llvm-ar rc test.a 0123456789abcde 0123456789abcdef
+RUN: cat test.a | FileCheck -strict-whitespace %s
+
+CHECK:      !<arch>
+CHECK-NEXT: //                                              18        `
+CHECK-NEXT: 0123456789abcdef/
+CHECK-NEXT: 0123456789abcde/{{.*}}  {{.*}}  {{.*}}  {{.*}}  4         `
+CHECK-NEXT: bar
+CHECK-NEXT: /0              {{.*}}  {{.*}}  {{.*}}  {{.*}}  4         `
+CHECK-NEXT: zed
index ab2a2f18ec563a775274d8176eca3885cd5200c1..5f47654b2467aebb4c1b87fa4cff18e3e67210d5 100644 (file)
@@ -419,7 +419,7 @@ StringRef NewArchiveIterator::getNew() const {
 template <typename T>
 void addMember(std::vector<NewArchiveIterator> &Members,
                std::string &StringTable, T I, StringRef Name) {
-  if (Name.size() < 15) {
+  if (Name.size() < 16) {
     NewArchiveIterator NI(I, Twine(Name) + "/");
     Members.push_back(NI);
   } else {