Improve name argument validation

This commit is contained in:
Victor Zverovich
2024-01-19 16:13:43 -08:00
parent 2eb363297b
commit 4c5b4af04d
4 changed files with 13 additions and 6 deletions
+3 -3
View File
@@ -144,9 +144,9 @@ TEST(args_test, reserve) {
fmt::dynamic_format_arg_store<fmt::format_context> store;
store.reserve(2, 1);
store.push_back(1.5f);
store.push_back(fmt::arg("a1", 42));
auto result = fmt::vformat("{a1} and {}", store);
EXPECT_EQ("42 and 1.5", result);
store.push_back(fmt::arg("a", 42));
auto result = fmt::vformat("{} and {a}", store);
EXPECT_EQ("1.5 and 42", result);
}
struct copy_throwable {
+4 -1
View File
@@ -555,6 +555,9 @@ TEST(format_test, named_arg) {
"argument not found");
EXPECT_THROW_MSG((void)fmt::format(runtime("{a}"), 42), format_error,
"argument not found");
EXPECT_THROW_MSG((void)fmt::format(runtime("{a} {}"), fmt::arg("a", 2), 42),
format_error,
"cannot switch from manual to automatic argument indexing");
}
TEST(format_test, auto_arg_index) {
@@ -1742,7 +1745,7 @@ TEST(format_test, print) {
}
TEST(format_test, big_print) {
enum {count = 5000};
enum { count = 5000 };
auto big_print = []() {
for (int i = 0; i < count / 5; ++i) fmt::print("xxxxx");
};