Update LLVM and fix formatv issues. (#4282)

https://github.com/llvm/llvm-project/pull/105745 increased validation of
formatv requirements, this fixes a couple issues.

Note the CommandLine case was untested, and caught separately.
This commit is contained in:
Jon Ross-Perkins
2024-09-09 23:54:35 +00:00
committed by GitHub
parent f641cb95d2
commit 43c6259fb2
4 changed files with 24 additions and 11 deletions
+10 -1
View File
@@ -194,6 +194,10 @@ TEST(ArgParserTest, ShortArgs) {
StrEq("ERROR: Option '-z' (short for '--option2') requires a "
"value to be provided and none was.\n"));
EXPECT_THAT(parse({"--option2"}, os), Eq(ParseResult::Error));
EXPECT_THAT(os.TakeStr(), StrEq("ERROR: Option '--option2' requires a value "
"to be provided and none was.\n"));
EXPECT_THAT(parse({"-xz=123"}, os), Eq(ParseResult::Error));
EXPECT_THAT(
os.TakeStr(),
@@ -461,10 +465,15 @@ TEST(ArgParserTest, OneOfOption) {
EXPECT_THAT(parse({"--option=z"}, llvm::errs()), Eq(ParseResult::Success));
EXPECT_THAT(value, Eq(3));
TestRawOstream os;
EXPECT_THAT(parse({"--option"}, os), Eq(ParseResult::Error));
EXPECT_THAT(os.TakeStr(), StrEq("ERROR: Option '--option' requires a value "
"to be provided and none was.\n"));
constexpr const char* ErrorStr =
"ERROR: Option '--option={0}' has an invalid value '{0}'; valid values "
"are: 'x', 'y', or 'z'\n";
TestRawOstream os;
EXPECT_THAT(parse({"--option=a"}, os), Eq(ParseResult::Error));
EXPECT_THAT(os.TakeStr(), StrEq(llvm::formatv(ErrorStr, "a")));