Problem: FILECHECK_OPTS was implemented so that a test runner, such
as a bot, can specify FileCheck debugging options, such as
-dump-input=fail. However, some existing test suites have FileCheck
calls that already specify -dump-input=fail or -dump-input=always.
Without this patch, such tests fail under such a test runner because
FileCheck doesn't accept multiple occurrences of -dump-input.
Solution: This patch permits multiple occurrences of -dump-input by
assigning precedence to its values in the following descending order:
help, always, fail, and never. That is, any occurrence of
help always obtains help, and otherwise the behavior is similar to
-v vs. -vv in that the option specifying the greatest verbosity
has precedence.
Rationale: My justification for the new behavior is as follows. I
have not experienced use cases where, either as a test runner or as a
test author, I want to limit the permitted debugging verbosity
(except as a test author in FileCheck's or lit's test suites where the
FileCheck debugging output itself is under test, but the solution
there is env FILECHECK_OPTS=, and I imagine we should use the same
solution anywhere else this need might occur). Of course, as either a
test runner or test author, it is useful to increase debugging
verbosity.