add additional tests

#define out problematic test for gcc 4
This commit is contained in:
Thomas Novotny 2018-11-20 23:47:23 +01:00
parent 018f654476
commit 57842660b6

View File

@ -519,16 +519,42 @@ TEST(PrintfTest, CheckFormatStringRegression) {
check_format_string_regression("%c%s", 'x', "");
}
TEST(PrintfTest, VSPrintfMakeArgsExample) {
EXPECT_EQ("[42] something happened",
TEST( PrintfTest, VSPrintfMakeArgsExample ) {
fmt::format_arg_store<fmt::printf_context, int, const char *> as{42,
"something"};
fmt::basic_format_args<fmt::printf_context> args(as);
EXPECT_EQ(
"[42] something happened", fmt::vsprintf("[%d] %s happened", args));
fmt::format_arg_store<fmt::printf_context, int, char[10]> as2 =
fmt::make_printf_args(42, "something");
fmt::basic_format_args<fmt::printf_context> args2(as2);
EXPECT_EQ(
"[42] something happened", fmt::vsprintf("[%d] %s happened", args2));
//the older gcc versions can"t cast the return value
#if !defined(__GNUC__) || (__GNUC__ > 4)
EXPECT_EQ(
"[42] something happened",
fmt::vsprintf(
"[%d] %s happened", fmt::make_printf_args( 42, "something" ) ) );
"[%d] %s happened", fmt::make_printf_args(42, "something")));
#endif
}
TEST( PrintfTest, VSPrintfMakeWArgsExample ) {
EXPECT_EQ(L"[42] something happened",
fmt::format_arg_store<fmt::wprintf_context, int, const wchar_t *> as{
42,L"something"};
fmt::basic_format_args<fmt::wprintf_context> args(as);
EXPECT_EQ(
L"[42] something happened",
fmt::vsprintf(L"[%d] %s happened", args));
fmt::format_arg_store<fmt::wprintf_context, int, wchar_t[10]> as2 =
fmt::make_wprintf_args(42, L"something");
fmt::basic_format_args<fmt::wprintf_context> args2( as2 );
EXPECT_EQ(
L"[42] something happened", fmt::vsprintf(L"[%d] %s happened", args2));
#if !defined(__GNUC__) || (__GNUC__ > 4)
EXPECT_EQ(
L"[42] something happened",
fmt::vsprintf(
L"[%d] %s happened", fmt::make_wprintf_args( 42, L"something" ) ) );
L"[%d] %s happened", fmt::make_wprintf_args(42, L"something")));
#endif
}