[PATCH 4/6] test: self: add strjoin tests
Ahmad Fatoum
a.fatoum at pengutronix.de
Tue Oct 25 23:42:03 PDT 2022
Just to make sure strjoin works as intended, add some simple unit tests.
Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
test/self/Kconfig | 5 +++++
test/self/Makefile | 1 +
test/self/string.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 52 insertions(+)
create mode 100644 test/self/string.c
diff --git a/test/self/Kconfig b/test/self/Kconfig
index f3cb6601e3b8..3a5e7795fea8 100644
--- a/test/self/Kconfig
+++ b/test/self/Kconfig
@@ -38,6 +38,11 @@ config SELFTEST_ENABLE_ALL
help
Selects all self-tests compatible with current configuration
+config SELFTEST_STRING
+ bool "string selftest"
+ help
+ Tests some of the string library functions
+
config SELFTEST_MALLOC
bool "malloc() selftest"
help
diff --git a/test/self/Makefile b/test/self/Makefile
index 6f2c0d394034..5d9d772d13b0 100644
--- a/test/self/Makefile
+++ b/test/self/Makefile
@@ -1,6 +1,7 @@
# SPDX-License-Identifier: GPL-2.0
obj-$(CONFIG_SELFTEST) += core.o
+obj-$(CONFIG_SELFTEST_STRING) += string.o
obj-$(CONFIG_SELFTEST_MALLOC) += malloc.o
obj-$(CONFIG_SELFTEST_PRINTF) += printf.o
obj-$(CONFIG_SELFTEST_PROGRESS_NOTIFIER) += progress-notifier.o
diff --git a/test/self/string.c b/test/self/string.c
new file mode 100644
index 000000000000..b5785da20d8d
--- /dev/null
+++ b/test/self/string.c
@@ -0,0 +1,46 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <common.h>
+#include <bselftest.h>
+#include <malloc.h>
+#include <string.h>
+
+BSELFTEST_GLOBALS();
+
+static void __expect_streq(const char *is, const char *expect,
+ const char *func, int line)
+{
+ total_tests++;
+ if (strcmp(is, expect)) {
+ failed_tests++;
+ printf("%s:%d: got %s, but %s expected\n", func, line, is, expect);
+ }
+}
+
+#define expect_streq(is, expect) \
+ __expect_streq(is, expect, __func__, __LINE__)
+
+static void test_string(void)
+{
+ char *strs[] = { "ayy", "bee", "cee" };
+ char *buf;
+
+ buf = strjoin("", strs, ARRAY_SIZE(strs));
+ expect_streq(buf, "ayybeecee");
+ free(buf);
+
+ buf = strjoin(" ", strs, ARRAY_SIZE(strs));
+ expect_streq(buf, "ayy bee cee");
+ free(buf);
+
+ buf = strjoin(", ", strs, ARRAY_SIZE(strs));
+ expect_streq(buf, "ayy, bee, cee");
+ free(buf);
+
+ buf = strjoin(" ", strs, 1);
+ expect_streq(buf, "ayy");
+ free(buf);
+}
+bselftest(core, test_string);
--
2.30.2
More information about the barebox
mailing list