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

Reply via email to