summaryrefslogtreecommitdiffstats
path: root/llvm/test/tools/llvm-readobj/ELF/broken-group.test
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/test/tools/llvm-readobj/ELF/broken-group.test')
-rw-r--r--llvm/test/tools/llvm-readobj/ELF/broken-group.test80
1 files changed, 80 insertions, 0 deletions
diff --git a/llvm/test/tools/llvm-readobj/ELF/broken-group.test b/llvm/test/tools/llvm-readobj/ELF/broken-group.test
new file mode 100644
index 00000000000..23bd76a821e
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/ELF/broken-group.test
@@ -0,0 +1,80 @@
+# RUN: yaml2obj %s -o %t.o
+
+# RUN: llvm-readelf --elf-section-groups \
+# RUN: %t.o >%tout.log 2>%terr.log
+# RUN: FileCheck %s -check-prefix=GNU-STDERR < %terr.log
+# GNU-STDERR: Error: section [ 3] in group section [ 4] already in group section [ 2]
+# RUN: FileCheck %s -check-prefix=GNU-STDOUT < %tout.log
+# GNU-STDOUT: COMDAT group section [ 2] `.group' [bar] contains 1 sections:
+# GNU-STDOUT-NEXT: [Index] Name
+# GNU-STDOUT-NEXT: [ 3] .foo
+# GNU-STDOUT: COMDAT group section [ 4] `.group1' [zed] contains 1 sections:
+# GNU-STDOUT-NEXT: [Index] Name
+
+# RUN: llvm-readobj --elf-section-groups \
+# RUN: %t.o >%t2out.log 2>%t2err.log %t.o
+# RUN: FileCheck %s -check-prefix=LLVM-STDERR < %t2err.log
+# LLVM-STDERR: Error: .foo (3) in a group .group1 (4) is already in a group .group (2)
+# RUN: FileCheck %s -check-prefix=LLVM-STDOUT < %t2out.log
+# LLVM-STDOUT: Groups {
+# LLVM-STDOUT-NEXT: Group {
+# LLVM-STDOUT-NEXT: Name: .group
+# LLVM-STDOUT-NEXT: Index: 2
+# LLVM-STDOUT-NEXT: Link: 5
+# LLVM-STDOUT-NEXT: Info: 1
+# LLVM-STDOUT-NEXT: Type: COMDAT
+# LLVM-STDOUT-NEXT: Signature: bar
+# LLVM-STDOUT-NEXT: Section(s) in group [
+# LLVM-STDOUT-NEXT: .foo (3)
+# LLVM-STDOUT-NEXT: ]
+# LLVM-STDOUT-NEXT: }
+# LLVM-STDOUT-NEXT: Group {
+# LLVM-STDOUT-NEXT: Name: .group1
+# LLVM-STDOUT-NEXT: Index: 4
+# LLVM-STDOUT-NEXT: Link: 5
+# LLVM-STDOUT-NEXT: Info: 2
+# LLVM-STDOUT-NEXT: Type: COMDAT
+# LLVM-STDOUT-NEXT: Signature: zed
+# LLVM-STDOUT-NEXT: Section(s) in group [
+# LLVM-STDOUT-NEXT: ]
+# LLVM-STDOUT-NEXT: }
+# LLVM-STDOUT-NEXT: }
+
+!ELF
+FileHeader:
+ Class: ELFCLASS64
+ Data: ELFDATA2LSB
+ Type: ET_REL
+ Machine: EM_X86_64
+Sections:
+ - Name: .text
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
+ AddressAlign: 0x0000000000000004
+ Content: ''
+ - Name: .group
+ Type: SHT_GROUP
+ Link: .symtab
+ AddressAlign: 0x0000000000000004
+ Info: bar
+ Members:
+ - SectionOrType: GRP_COMDAT
+ - SectionOrType: .foo
+ - Name: .foo
+ Type: SHT_PROGBITS
+ Flags: [ SHF_ALLOC, SHF_EXECINSTR, SHF_GROUP ]
+ AddressAlign: 0x0000000000000001
+ Content: ''
+ - Name: .group1
+ Type: SHT_GROUP
+ Link: .symtab
+ AddressAlign: 0x0000000000000004
+ Info: zed
+ Members:
+ - SectionOrType: GRP_COMDAT
+ - SectionOrType: .foo
+Symbols:
+ - Name: bar
+ Section: .group
+ - Name: zed
+ Section: .group1
OpenPOWER on IntegriCloud