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);