diff options
| author | Wladimir J. van der Laan <[email protected]> | 2013-11-13 08:58:36 -0800 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2013-11-13 08:58:36 -0800 |
| commit | 5ce4361077b1429a813fddda3d80a809329934f6 (patch) | |
| tree | 8f6b9226ddccb299bbca19892b2834834f66c04a /src/test/util_tests.cpp | |
| parent | Merge pull request #3246 from laanwj/2013_11_rpc_help (diff) | |
| parent | tests: add testcases for strprintf (diff) | |
| download | discoin-5ce4361077b1429a813fddda3d80a809329934f6.tar.xz discoin-5ce4361077b1429a813fddda3d80a809329934f6.zip | |
Merge pull request #3244 from laanwj/2013_11_mingw_c99_printf
Use C99 printf statements in mingw
Diffstat (limited to 'src/test/util_tests.cpp')
| -rw-r--r-- | src/test/util_tests.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/src/test/util_tests.cpp b/src/test/util_tests.cpp index 6a9a787fa..b57945d06 100644 --- a/src/test/util_tests.cpp +++ b/src/test/util_tests.cpp @@ -303,4 +303,31 @@ BOOST_AUTO_TEST_CASE(util_TimingResistantEqual) BOOST_CHECK(!TimingResistantEqual(std::string("abc"), std::string("aba"))); } +/* Test strprintf formatting directives. + * Put a string before and after to ensure sanity of element sizes on stack. */ +#define B "check_prefix" +#define E "check_postfix" +BOOST_AUTO_TEST_CASE(strprintf_numbers) +{ + int64_t s64t = -9223372036854775807LL; /* signed 64 bit test value */ + uint64_t u64t = 18446744073709551615ULL; /* unsigned 64 bit test value */ + BOOST_CHECK(strprintf("%s %"PRId64" %s", B, s64t, E) == B" -9223372036854775807 "E); + BOOST_CHECK(strprintf("%s %"PRIu64" %s", B, u64t, E) == B" 18446744073709551615 "E); + BOOST_CHECK(strprintf("%s %"PRIx64" %s", B, u64t, E) == B" ffffffffffffffff "E); + + size_t st = 12345678; /* unsigned size_t test value */ + ssize_t sst = -12345678; /* signed size_t test value */ + BOOST_CHECK(strprintf("%s %"PRIszd" %s", B, sst, E) == B" -12345678 "E); + BOOST_CHECK(strprintf("%s %"PRIszu" %s", B, st, E) == B" 12345678 "E); + BOOST_CHECK(strprintf("%s %"PRIszx" %s", B, st, E) == B" bc614e "E); + + ptrdiff_t pt = 87654321; /* positive ptrdiff_t test value */ + ptrdiff_t spt = -87654321; /* negative ptrdiff_t test value */ + BOOST_CHECK(strprintf("%s %"PRIpdd" %s", B, spt, E) == B" -87654321 "E); + BOOST_CHECK(strprintf("%s %"PRIpdu" %s", B, pt, E) == B" 87654321 "E); + BOOST_CHECK(strprintf("%s %"PRIpdx" %s", B, pt, E) == B" 5397fb1 "E); +} +#undef B +#undef E + BOOST_AUTO_TEST_SUITE_END() |