# Test handling of a (valid) breakpad file, which ends with a line without a
# recognised keyword.

RUN: lldb-test object-file %p/Inputs/sections-trailing-func.syms -contents | FileCheck %s

CHECK: Showing 4 sections

CHECK:       ID: 0x4
CHECK-NEXT:  Name: FUNC
CHECK:       File size: 66
CHECK-NEXT:  Data:  (
CHECK-NEXT:      0000: 46554E43 20313031 30203130 2030205F 73746172 740A3130 31302034 20342030  |FUNC 1010 10 0 _start.1010 4 4 0|
CHECK-NEXT:      0020: 0A313031 34203520 3520300A 31303139 20352036 20300A31 30316520 32203720  |.1014 5 5 0.1019 5 6 0.101e 2 7 |
CHECK-NEXT:      0040: 300A                                                                     |0.|
CHECK-NEXT:  )
