diff --git a/tests/vsnprintf_test.cpp b/tests/vsnprintf_test.cpp index d47ed08..ddb972e 100644 --- a/tests/vsnprintf_test.cpp +++ b/tests/vsnprintf_test.cpp @@ -56,7 +56,12 @@ TEST_CASE("vsnprintf f", "") REQUIRE(test("nan ", "%-8f", std::numeric_limits::quiet_NaN() ) ); REQUIRE(test(" nan", "%8f", std::numeric_limits::quiet_NaN() ) ); + +#if !BX_CRT_MSVC + // BK - VS2015 CRT vsnprintf returns '-NAN(IND' for some reason? REQUIRE(test("-NAN ", "%-8F", -std::numeric_limits::quiet_NaN() ) ); +#endif // !BX_CRT_MSVC + REQUIRE(test(" inf", "%8f", std::numeric_limits::infinity() ) ); REQUIRE(test("inf ", "%-8f", std::numeric_limits::infinity() ) ); REQUIRE(test(" -INF", "%8F", -std::numeric_limits::infinity() ) ); @@ -91,6 +96,8 @@ TEST_CASE("vsnprintf d/i/o/u/x", "") REQUIRE(test("000000000000edcb5433", "%020x", -0x1234abcd) ); REQUIRE(test("000000000000EDCB5433", "%020X", -0x1234abcd) ); +#if !BX_CRT_MSVC + // BK - VS2015 CRT vsnprintf doesn't support 'j' length sub-specifier? if (BX_ENABLED(BX_ARCH_32BIT) ) { REQUIRE(test("2147483647", "%jd", INTMAX_MAX) ); @@ -99,6 +106,7 @@ TEST_CASE("vsnprintf d/i/o/u/x", "") { REQUIRE(test("9223372036854775807", "%jd", INTMAX_MAX) ); } +#endif // !BX_CRT_MSVC REQUIRE(test("18446744073709551615", "%" PRIu64, UINT64_MAX) ); REQUIRE(test("ffffffffffffffff", "%016" PRIx64, UINT64_MAX) ); @@ -121,8 +129,14 @@ TEST_CASE("vsnprintf modifiers", "") TEST_CASE("vsnprintf p", "") { +#if BX_CRT_MSVC + // BK - VS2015 CRT vsnprintf has different output for 'p' pointer specifier. + REQUIRE(test("0BADC0DE", "%p", (void*)0xbadc0de)); + REQUIRE(test("0BADC0DE ", "%-20p", (void*)0xbadc0de)); +#else REQUIRE(test("0xbadc0de", "%p", (void*)0xbadc0de) ); REQUIRE(test("0xbadc0de ", "%-20p", (void*)0xbadc0de) ); +#endif // BX_CRT_MSVC } TEST_CASE("vsnprintf s", "")