# Check the dumping of a section as strings.
# RUN: yaml2obj %s -o %t

# RUN: llvm-readobj --string-dump=.strings \
# RUN:   --string-dump=.not_null_terminated %t > %t.readobj.out
# RUN: FileCheck %s --input-file=%t.readobj.out

# Also test the different ways --string-dump can be specified, i.e. as a short
# flag (-p), with different prefix modes (-p .foo, -p=.foo, -p.foo), and with
# the value being a index section number instead of a section name.
# RUN: llvm-readobj -p=.strings -p=.not_null_terminated %t > %t.readobj.1
# RUN: llvm-readobj -p.strings -p.strings -p.not_null_terminated %t > %t.readobj.2
# RUN: llvm-readobj --string-dump=1 --string-dump=2 %t > %t.readobj.3
# RUN: llvm-readobj -p1 -p1 -p2 %t > %t.readobj.4
# RUN: llvm-readobj -p=1 -p=2 %t > %t.readobj.5

# RUN: cmp %t.readobj.out %t.readobj.1
# RUN: cmp %t.readobj.out %t.readobj.2
# RUN: cmp %t.readobj.out %t.readobj.3
# RUN: cmp %t.readobj.out %t.readobj.4
# RUN: cmp %t.readobj.out %t.readobj.5

# Run readelf flag tests with an additional flag, --file-header, so we can test
# -p grouped with something.
# RUN: llvm-readelf --file-header --string-dump=.strings \
# RUN:   --string-dump=.not_null_terminated %t > %t.readelf.out
# RUN: FileCheck %s --input-file=%t.readelf.out

# RUN: llvm-readelf -h -p=.strings -p=.not_null_terminated %t > %t.readelf.1
# RUN: llvm-readelf -p.strings -hp.not_null_terminated %t > %t.readelf.2
# RUN: llvm-readelf -h --string-dump=1 --string-dump=2 %t > %t.readelf.3
# RUN: llvm-readelf -hp1 -p2 %t > %t.readelf.4
# RUN: llvm-readelf -hp 1 -p.not_null_terminated %t > %t.readelf.5
# RUN: llvm-readelf -p=1 -hp=2 %t > %t.readelf.6

# RUN: cmp %t.readelf.out %t.readelf.1
# RUN: cmp %t.readelf.out %t.readelf.2
# RUN: cmp %t.readelf.out %t.readelf.3
# RUN: cmp %t.readelf.out %t.readelf.4
# RUN: cmp %t.readelf.out %t.readelf.5
# RUN: cmp %t.readelf.out %t.readelf.6

# CHECK:      String dump of section '.strings':
# CHECK-NEXT: [ 0] here
# CHECK-NEXT: [ 5] are
# CHECK-NEXT: [ 9] some
# CHECK-NEXT: [ e] strings
# CHECK-EMPTY:
# CHECK-NEXT: String dump of section '.not_null_terminated':
# CHECK-NEXT: [ 0] no
# CHECK-NEXT: [ 3] null{{$}}
# CHECK-NOT:  {{.}}

# RUN: llvm-readobj --string-dump=does_not_exist %t 2>&1 | FileCheck -DFILE=%t %s --check-prefix=WARN1
# RUN: llvm-readobj --string-dump=42 %t 2>&1 | FileCheck %s  -DFILE=%t --check-prefix=WARN2

# RUN: llvm-readelf --string-dump=does_not_exist %t 2>&1 | FileCheck -DFILE=%t %s --check-prefix=WARN1
# RUN: llvm-readelf --string-dump=42 %t 2>&1 | FileCheck %s  -DFILE=%t --check-prefix=WARN2

# WARN1: warning: '[[FILE]]': could not find section 'does_not_exist'
# WARN2: warning: '[[FILE]]': could not find section 42

--- !ELF
FileHeader:
  Class: ELFCLASS64
  Data:  ELFDATA2LSB
  Type:  ET_REL
Sections:
  - Name: .strings
    Type: SHT_PROGBITS
    Content: 686572650061726500736f6d6500737472696e677300
  - Name: .not_null_terminated
    Type: SHT_PROGBITS
    Content: 6e6f006e756c6c
