Note that these new tests fail. Future commits will fix scrub_for_print(). --- lib/util/tests/stringutils-test.c | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-)
diff --git a/lib/util/tests/stringutils-test.c b/lib/util/tests/stringutils-test.c index eb72ab0..86cdbf8 100644 --- a/lib/util/tests/stringutils-test.c +++ b/lib/util/tests/stringutils-test.c @@ -6,15 +6,32 @@ #include "test/unittest.h" +/** + * @brief store a sequence of @len characters in both @p dst and @p + * ref + */ +static void +init_dst( + char *dst, + char *ref, + size_t len) +{ + memset(dst, 0, len); + memset(ref, 0, len); +} + static bool test_scrub_for_print__length_if_truncated( void) { size_t const DST_LEN = 5; char src[] = "0123456789"; - char dst[DST_LEN]; + char dst[DST_LEN + 50]; + char ref[sizeof(dst) - DST_LEN]; + init_dst(dst + DST_LEN, ref, sizeof(ref)); scrub_for_print(dst, src, DST_LEN, NULL, ""); TEST(size_t, "%zu", strlen(dst), ==, DST_LEN - 1); + TEST_BOOL(memcmp(dst + DST_LEN, ref, sizeof(ref)), false); return true; } @@ -23,11 +40,14 @@ static bool test_scrub_for_print__length_if_expansion_truncated( size_t const dst_sz) { char src[50]; - char dst[dst_sz]; + char dst[dst_sz + 50]; + char ref[sizeof(dst) - dst_sz]; + init_dst(dst + dst_sz, ref, sizeof(ref)); sprintf(src, "%c%c%s", 'a', '\n', "12345"); scrub_for_print(dst, src, dst_sz, NULL, ""); TEST(size_t, "%zu", strlen(dst), ==, dst_sz - 1); + TEST_BOOL(memcmp(dst + dst_sz, ref, sizeof(ref)), false); return true; } -- 2.4.3 ------------------------------------------------------------------------------ _______________________________________________ rpstir-devel mailing list rpstir-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/rpstir-devel