@@ -46,6 +46,14 @@ auto test_sprintf(fmt::basic_string_view<wchar_t> format, const Args&... args)
4646
4747TEST(printf_test, no_args) { EXPECT_EQ (" test" , test_sprintf (" test" )); }
4848
49+ TEST (printf_test, trailing_percent) {
50+ EXPECT_THROW_MSG (test_sprintf (" %" ), format_error, " invalid format string" );
51+ EXPECT_THROW_MSG (test_sprintf (" hello%" ), format_error,
52+ " invalid format string" );
53+ EXPECT_THROW_MSG (test_sprintf (" %1$d%" , 1 , 2 ), format_error,
54+ " invalid format string" );
55+ }
56+
4957TEST (printf_test, escape) {
5058 EXPECT_EQ (" %" , test_sprintf (" %%" ));
5159 EXPECT_EQ (" before %" , test_sprintf (" before %%" ));
@@ -76,8 +84,6 @@ TEST(printf_test, number_is_too_big_in_arg_index) {
7684}
7785
7886TEST (printf_test, switch_arg_indexing) {
79- EXPECT_THROW_MSG (test_sprintf (" %1$d%" , 1 , 2 ), format_error,
80- " cannot switch from manual to automatic argument indexing" );
8187 EXPECT_THROW_MSG (test_sprintf (format (" %1$d%{}d" , big_num), 1 , 2 ),
8288 format_error, " number is too big" );
8389 EXPECT_THROW_MSG (test_sprintf (" %1$d%d" , 1 , 2 ), format_error,
0 commit comments