llvm/llvm/test/tools/llvm-readobj/ELF/grouped.test

## In this test we check that short command line options can be grouped.

## Check grouped options produce identical output to when not grouped.
# RUN: yaml2obj %s -o %t.o
# RUN: llvm-readelf -aeWhSrnudlVgIs %t.o > %t.grouped
# RUN: llvm-readelf -a -e -W -h -S -r -n -u -d -l -V -g -I -s %t.o > %t.not-grouped
# RUN: cmp %t.grouped %t.not-grouped
# RUN: FileCheck /dev/null --input-file %t.grouped --implicit-check-not=error:

## Check that the output without -a (--all) option is the same. We do it
## to verify that each of the options is handled, and not just the first
## one nor just -a, which triggers all other options.
# RUN: llvm-readelf -eWhSrnudlVgIs %t.o > %t.grouped.no.a
# RUN: cmp %t.grouped %t.grouped.no.a

## -e (--headers) is equivalent to setting --file-headers (-h),
## --program-headers (-l) and --section-headers (-S).
## Check that the output without -e is equal to the output with it.
## We do not use -a in this test either.
# RUN: llvm-readelf -WhSrnudlVgIs %t.o > %t.grouped.no.ae
# RUN: cmp %t.grouped %t.grouped.no.ae

## An arbitrary YAML description that triggers an output for each of
## the short option from the test sequence.

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
Sections:
  - Name:    .note.ABI-tag
    Type:    SHT_NOTE
## An arbitrary valid note content.
    Content: 040000001000000001000000474E550000000000020000000600000020000000
  - Name: .eh_frame
    Type: SHT_PROGBITS
  - Name:    .dynamic
    Type:    SHT_DYNAMIC
    Entries:
      - Tag:   DT_NULL
        Value: 0
  - Name:    .gnu.version
    Type:    SHT_GNU_versym
    Flags:   [ SHF_ALLOC ]
    Entries: [ 0, 1 ]
DynamicSymbols:
  - Name:    foo
    Binding: STB_GLOBAL

## Check llvm-readobj supports grouped short options as well.
# RUN: llvm-readobj -aeWhSsrnudlVgIS %t.o > %t.grouped
# RUN: llvm-readobj -a -e -W -h -S -r -n -u -d -l -V -g -I -s %t.o > %t.not-grouped
# RUN: cmp %t.grouped %t.not-grouped