+#include "../unittest.h"
+
+#ifndef CONFIG_STRLCAT
+#include "../../oslib/strlcat.h"
+#else
+#include <string.h>
+#endif
+
+static void test_strlcat_1(void)
+{
+ char dst[32];
+ char src[] = "test";
+ size_t ret;
+
+ dst[0] = '\0';
+ ret = strlcat(dst, src, sizeof(dst));
+
+ CU_ASSERT_EQUAL(strcmp(dst, "test"), 0);
+ CU_ASSERT_EQUAL(ret, 4); /* total length it tried to create */
+}
+
+static void test_strlcat_2(void)
+{
+ char dst[32];
+ char src[] = "test";
+ size_t ret;
+
+ dst[0] = '\0';
+ ret = strlcat(dst, src, strlen(dst));
+
+ CU_ASSERT_EQUAL(strcmp(dst, ""), 0);
+ CU_ASSERT_EQUAL(ret, 4); /* total length it tried to create */
+}
+
+static struct fio_unittest_entry tests[] = {
+ {
+ .name = "strlcat/1",
+ .fn = test_strlcat_1,
+ },
+ {
+ .name = "strlcat/2",
+ .fn = test_strlcat_2,
+ },
+ {
+ .name = NULL,
+ },
+};
+
+CU_ErrorCode fio_unittest_oslib_strlcat(void)
+{
+ return fio_unittest_add_suite("oslib/strlcat.c", NULL, NULL, tests);
+}