diff --git a/libmapper/test/utils.c b/libmapper/test/utils.c
new file mode 100644
index 0000000..b3c7ae1
--- /dev/null
+++ b/libmapper/test/utils.c
@@ -0,0 +1,31 @@
+#include "utils.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+char** generate_test_sarray(size_t len)
+{
+    static const char testString[] = "test";
+    size_t i;
+    char** ret = calloc(len + 1, sizeof(*ret));
+    if (!ret)
+        return NULL;
+
+    for (i = 0; i < len; ++i)
+    {
+        ret[i] = strdup(testString);
+        if (!ret[i])
+            goto error;
+    }
+
+    return ret;
+
+error:
+    for (i = 0; i < len; ++i)
+    {
+        free(ret[i]);
+    }
+    free(ret);
+
+    return NULL;
+}
