summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj/string-dump.test
diff options
context:
space:
mode:
authorJames Henderson <jh7370@my.bristol.ac.uk>2019-02-27 16:41:59 +0000
committerJames Henderson <jh7370@my.bristol.ac.uk>2019-02-27 16:41:59 +0000
commit416603e32a9ce7cd99f8456f057387069a260e20 (patch)
treeca203fc5381561a9fcdfcca93943177572735374 /llvm/test/tools/llvm-readobj/string-dump.test
parent8c436ce3a1d81a55706966ff9966a38e57a54cba (diff)
downloadbcm5719-llvm-416603e32a9ce7cd99f8456f057387069a260e20.tar.gz
bcm5719-llvm-416603e32a9ce7cd99f8456f057387069a260e20.zip
[llvm-readobj]Add additional testing for various ELF features
This patch adds testing of areas of the code that are not fully tested, in particular dynamic table printing, ELF type printing, handling of edge cases where things are missing/empty (relocations/program header tables/section header table), and the --string-dump switch. Reviewed by: grimar, higuoxing, rupprecht Differential Revision: https://reviews.llvm.org/D58677 llvm-svn: 355003
Diffstat (limited to 'llvm/test/tools/llvm-readobj/string-dump.test')
-rw-r--r--llvm/test/tools/llvm-readobj/string-dump.test42
1 files changed, 42 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/string-dump.test b/llvm/test/tools/llvm-readobj/string-dump.test
new file mode 100644
index 00000000000..b9946c25424
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/string-dump.test
@@ -0,0 +1,42 @@
+# Check the dumping of a section as strings.
+# RUN: yaml2obj %s > %t
+
+# RUN: llvm-readobj --string-dump=.strings --string-dump=.not_null_terminated %t | FileCheck %s
+# RUN: llvm-readobj -p=.strings -p=.not_null_terminated %t | FileCheck %s
+# RUN: llvm-readobj --string-dump=1 --string-dump=2 %t | FileCheck %s
+
+# RUN: llvm-readelf --string-dump=.strings --string-dump=.not_null_terminated %t | FileCheck %s
+# RUN: llvm-readelf -p=.strings -p=.not_null_terminated %t | FileCheck %s
+# RUN: llvm-readelf --string-dump=1 --string-dump=2 %t | FileCheck %s
+
+# CHECK: String dump of section '.strings':
+# CHECK-NEXT: [ 0] here
+# CHECK-NEXT: [ 5] are
+# CHECK-NEXT: [ 9] some
+# CHECK-NEXT: [ e] strings
+# CHECK-NEXT: String dump of section '.not_null_terminated':
+# CHECK-NEXT: [ 0] no
+# CHECK-NEXT: [ 3] null{{$}}
+# CHECK-NOT: {{.}}
+
+# RUN: not llvm-readobj --string-dump=does_not_exist %t 2>&1 | FileCheck %s --check-prefix=ERR
+# RUN: not llvm-readobj --string-dump=42 %t 2>&1 | FileCheck %s --check-prefix=ERR
+
+# RUN: not llvm-readelf --string-dump=does_not_exist %t 2>&1 | FileCheck %s --check-prefix=ERR
+# RUN: not llvm-readelf --string-dump=42 %t 2>&1 | FileCheck %s --check-prefix=ERR
+
+# ERR: Error reading file: invalid section reference.
+
+--- !ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .strings
+ Type: SHT_PROGBITS
+ Content: 686572650061726500736f6d6500737472696e677300
+ - Name: .not_null_terminated
+ Type: SHT_PROGBITS
+ Content: 6e6f006e756c6c
OpenPOWER on IntegriCloud