blob: 5b464ebbdce7c06d5299d864df00abf492470001 [file] [log] [blame]
## In this test we check that short command line options can be merged.
## Check merged args produce identical output to when not merged.
# RUN: yaml2obj %s -o %t.o
# RUN: llvm-readelf -aeWhSrnudlVgIs %t.o > %t.merged
# RUN: llvm-readelf -a -e -W -h -S -r -n -u -d -l -V -g -I -s %t.o > %t.not-merged
# RUN: cmp %t.merged %t.not-merged
# RUN: FileCheck %s --input-file %t.merged
## 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.merged.no.a
# RUN: cmp %t.merged %t.merged.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.merged.no.ae
# RUN: cmp %t.merged %t.merged.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
## llvm-readobj does not support merged args, because it also supports some old
## flags (-st, -sd, etc.), and it would be confusing if only some merged args
## were supported.
# RUN: not llvm-readobj -aeWhSrnudlVgIs %t.o 2>&1 | FileCheck %s --check-prefix=UNKNOWN
# CHECK-NOT: Unknown command line argument
# UNKNOWN: for the --section-headers option: may only occur zero or one times!