llvm/llvm/test/tools/llvm-symbolizer/get-input-file.test

# If binary input file is not specified, llvm-symbolizer assumes it is the first
# item in the command.

# No input items at all. Report an unknown line, but do not produce any output on stderr.
RUN: echo | llvm-symbolizer 2>%t.1.err | FileCheck %s --check-prefix=NOSOURCE
RUN: FileCheck --input-file=%t.1.err --implicit-check-not={{.}} --allow-empty %s

# Only one input item, complain about missing addresses.
RUN: llvm-symbolizer "foo" 2>%t.2.err | FileCheck %s --check-prefix=NOSOURCE
RUN: FileCheck --input-file=%t.2.err --check-prefix=NOADDR %s

# Two items specified, check if the first one is an existing file.
RUN: llvm-symbolizer "foo 400" 2>%t.3.err | FileCheck %s --check-prefix=NOSOURCE
RUN: FileCheck --input-file=%t.3.err --check-prefix=NOTFOUND -DMSG=%errc_ENOENT %s

# FILE: must be followed by a file name.
RUN: llvm-symbolizer "FILE:" 2>%t.4.err | FileCheck %s --check-prefix=NOSOURCE
RUN: FileCheck --input-file=%t.4.err --check-prefix=MISSING-FILE %s

# BUILDID: must be followed by a hash.
RUN: llvm-symbolizer "BUILDID:" 2>%t.5.err | FileCheck %s --check-prefix=NOSOURCE
RUN: FileCheck --input-file=%t.5.err --check-prefix=MISSING-HASH %s

# Wrong build-id.
RUN: llvm-symbolizer "BUILDID: foo" 2>%t.6.err | FileCheck %s --check-prefix=NOSOURCE
RUN: FileCheck --input-file=%t.6.err --check-prefix=BAD-HASH %s

# Unbalanced string quotes in the file name.
RUN: llvm-symbolizer "FILE:\"foo" 2>%t.7.err | FileCheck %s --check-prefix=NOSOURCE
RUN: FileCheck --input-file=%t.7.err --check-prefix=BAD-QUOTE %s

NOSOURCE:      ??
NOSOURCE-NEXT: ??:0:0

NOADDR: error: 'foo': no module offset has been specified

NOTFOUND:  error: 'foo': [[MSG]]

MISSING-FILE: error: 'FILE:': must be followed by an input file

MISSING-HASH: error: 'BUILDID:': must be followed by a hash

BAD-HASH:  error: 'BUILDID: foo': wrong format of build-id

BAD-QUOTE: error: 'FILE:"foo': unbalanced quotes in input file name