Serge Pavlov 5ce141f7af
[symbolizer] Empty string is not an error (#97781)
This is recommit of llvm/llvm-project#92660, reverted in
llvm/llvm-project#94424.
Original commit message is below.

After commit
1792852f86
([symbolizer] Change reaction on invalid input) llvm-symbolizer issues
an error on malformed command instead of echoing it to the standard
output, as in previous versions. It turns out this behavior broke a use
case when echoing was used to check if llvm-symbolizer is working
(1792852f86 (commitcomment-142161925)).

With this change an empty line as input is not considered as an error
anymore and does not produce any output on stderr. llvm-symbolizer still
respond on empty line with line not found, this is consistent with GNU
addr2line.
2024-07-05 12:27:58 +07:00

46 lines
1.9 KiB
Plaintext

# 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