1## In this test we check that short command line options can be merged.
2
3## Check merged args produce identical output to when not merged.
4# RUN: yaml2obj %s -o %t.o
5# RUN: llvm-readelf -aeWhSrnudlVgIs %t.o > %t.merged
6# RUN: llvm-readelf -a -e -W -h -S -r -n -u -d -l -V -g -I -s %t.o > %t.not-merged
7# RUN: cmp %t.merged %t.not-merged
8# RUN: FileCheck %s --input-file %t.merged
9
10## Check that the output without -a (--all) option is the same. We do it
11## to verify that each of the options is handled, and not just the first
12## one nor just -a, which triggers all other options.
13# RUN: llvm-readelf -eWhSrnudlVgIs %t.o > %t.merged.no.a
14# RUN: cmp %t.merged %t.merged.no.a
15
16## -e (--headers) is equivalent to setting --file-headers (-h),
17## --program-headers (-l) and --section-headers (-S).
18## Check that the output without -e is equal to the output with it.
19## We do not use -a in this test either.
20# RUN: llvm-readelf -WhSrnudlVgIs %t.o > %t.merged.no.ae
21# RUN: cmp %t.merged %t.merged.no.ae
22
23## An arbitrary YAML description that triggers an output for each of
24## the short option from the test sequence.
25
26--- !ELF
27FileHeader:
28  Class:   ELFCLASS64
29  Data:    ELFDATA2LSB
30  Type:    ET_EXEC
31  Machine: EM_X86_64
32Sections:
33  - Name:    .note.ABI-tag
34    Type:    SHT_NOTE
35## An arbitrary valid note content.
36    Content: 040000001000000001000000474E550000000000020000000600000020000000
37  - Name: .eh_frame
38    Type: SHT_PROGBITS
39  - Name:    .dynamic
40    Type:    SHT_DYNAMIC
41    Entries:
42      - Tag:   DT_NULL
43        Value: 0
44  - Name:    .gnu.version
45    Type:    SHT_GNU_versym
46    Flags:   [ SHF_ALLOC ]
47    Link:    .dynsym
48    Entries: [ 0, 1 ]
49DynamicSymbols:
50  - Name:    foo
51    Binding: STB_GLOBAL
52
53## llvm-readobj does not support merged args, because it also supports some old
54## flags (-st, -sd, etc.), and it would be confusing if only some merged args
55## were supported.
56# RUN: not llvm-readobj -aeWhSrnudlVgIs %t.o 2>&1 | FileCheck %s --check-prefix=UNKNOWN
57
58# CHECK-NOT: Unknown command line argument
59# UNKNOWN:   for the --section-headers option: may only occur zero or one times!
60