summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-objdump
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/tools/llvm-objdump')
-rw-r--r--llvm/test/tools/llvm-objdump/Inputs/malformed-archives/libbogus1.a13
-rw-r--r--llvm/test/tools/llvm-objdump/Inputs/malformed-archives/libbogus2.a13
-rw-r--r--llvm/test/tools/llvm-objdump/Inputs/malformed-archives/libbogus3.a16
-rw-r--r--llvm/test/tools/llvm-objdump/malformed-archives.test20
4 files changed, 62 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-objdump/Inputs/malformed-archives/libbogus1.a b/llvm/test/tools/llvm-objdump/Inputs/malformed-archives/libbogus1.a
new file mode 100644
index 00000000000..510c1455527
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/Inputs/malformed-archives/libbogus1.a
@@ -0,0 +1,13 @@
+!<arch>
+hello.c 1444941273 124 0 100644 10% `
+#include <stdio.h>
+#include <stdlib.h>
+int
+main()
+{
+ printf("Hello World\n");
+ return EXIT_SUCCESS;
+}
+foo.c 1444941645 124 0 100644 1% `
+void foo(void){}
+
diff --git a/llvm/test/tools/llvm-objdump/Inputs/malformed-archives/libbogus2.a b/llvm/test/tools/llvm-objdump/Inputs/malformed-archives/libbogus2.a
new file mode 100644
index 00000000000..2ccb7f31c09
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/Inputs/malformed-archives/libbogus2.a
@@ -0,0 +1,13 @@
+!<arch>
+hello.c 1444941273 124 0 100644 102 `
+#include <stdio.h>
+#include <stdlib.h>
+int
+main()
+{
+ printf("Hello World\n");
+ return EXIT_SUCCESS;
+}
+foo.c 1444941645 124 0 100644 1% `
+void foo(void){}
+
diff --git a/llvm/test/tools/llvm-objdump/Inputs/malformed-archives/libbogus3.a b/llvm/test/tools/llvm-objdump/Inputs/malformed-archives/libbogus3.a
new file mode 100644
index 00000000000..f15a7329f9f
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/Inputs/malformed-archives/libbogus3.a
@@ -0,0 +1,16 @@
+!<arch>
+hello.c 1444941273 124 0 100644 102 `
+#include <stdio.h>
+#include <stdlib.h>
+int
+main()
+{
+ printf("Hello World\n");
+ return EXIT_SUCCESS;
+}
+foo.c 1444941645 124 0 100644 171 `
+void foo(void){}
+
+bar.c 1445026190 124 0 100644 17 `
+void foo(void){}
+
diff --git a/llvm/test/tools/llvm-objdump/malformed-archives.test b/llvm/test/tools/llvm-objdump/malformed-archives.test
new file mode 100644
index 00000000000..5066cb543b4
--- /dev/null
+++ b/llvm/test/tools/llvm-objdump/malformed-archives.test
@@ -0,0 +1,20 @@
+// These test checks that llvm-objdump will not crash with malformed Archive
+// files. So the check line is not all that important but the bug fixes to
+// make sure llvm-objdump is robust is what matters.
+# RUN: llvm-objdump -macho -archive-headers \
+# RUN: %p/Inputs/malformed-archives/libbogus1.a \
+# RUN: 2>&1 | FileCheck -check-prefix=bogus1 %s
+
+# bogus1: Invalid data was encountered while parsing the file
+
+# RUN: llvm-objdump -macho -archive-headers \
+# RUN: %p/Inputs/malformed-archives/libbogus2.a \
+# RUN: 2>&1 | FileCheck -check-prefix=bogus2 %s
+
+# bogus2: hello.c
+
+# RUN: llvm-objdump -macho -archive-headers \
+# RUN: %p/Inputs/malformed-archives/libbogus3.a \
+# RUN: 2>&1 | FileCheck -check-prefix=bogus3 %s
+
+# bogus3: foo.c
OpenPOWER on IntegriCloud