tests: add hexdump_memdup function to libtests
* tests/hexdump_strdup.c (hexdump_memdup): New function.
(hexdump_strdup): Use it.
* tests/tests.h (hexdump_memdup): New prototype.
diff --git a/tests/hexdump_strdup.c b/tests/hexdump_strdup.c
index d7e083a..4d6b53f 100644
--- a/tests/hexdump_strdup.c
+++ b/tests/hexdump_strdup.c
@@ -34,11 +34,10 @@
#include <string.h>
const char *
-hexdump_strdup(const char *src)
+hexdump_memdup(const char *src, size_t len)
{
- size_t src_len = strlen(src);
- size_t dst_size = 3 * src_len + 2;
- assert(dst_size > src_len);
+ size_t dst_size = 3 * len + 2;
+ assert(dst_size > len);
char *dst = malloc(dst_size);
if (!dst)
@@ -46,8 +45,8 @@
char *p = dst;
const unsigned char *usrc = (const unsigned char *) src;
- unsigned int i;
- for (i = 0; usrc[i]; ++i) {
+ size_t i;
+ for (i = 0; i < len; ++i) {
unsigned int c = usrc[i];
*(p++) = ' ';
if (i == 8)
@@ -59,3 +58,9 @@
return dst;
}
+
+const char *
+hexdump_strdup(const char *src)
+{
+ return hexdump_memdup(src, strlen(src));
+}
diff --git a/tests/tests.h b/tests/tests.h
index d8632ba..115379e 100644
--- a/tests/tests.h
+++ b/tests/tests.h
@@ -69,6 +69,9 @@
/* Make a hexdump copy of C string */
const char *hexdump_strdup(const char *);
+/* Make a hexdump copy of memory */
+const char *hexdump_memdup(const char *, size_t);
+
/* Make a hexquoted copy of a string */
const char *hexquote_strndup(const char *, size_t);