]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
test: cmd: Add simple test for i3c
authorDinesh Maniyam <dinesh.maniyam@altera.com>
Wed, 6 Aug 2025 04:32:33 +0000 (12:32 +0800)
committerHeiko Schocher <hs@denx.de>
Wed, 6 Aug 2025 06:41:52 +0000 (08:41 +0200)
Add simple test to check i3c controller defined in sandbox test DT.
Basically, this test case will check validity of the i3c controller
by probing it and perform basic commands of cmd/i3c.c

Signed-off-by: Dinesh Maniyam <dinesh.maniyam@altera.com>
test/cmd/Makefile
test/cmd/i3c.c [new file with mode: 0644]

index 595e4cfcada650d7a811e4d477855656f90bddea..e71c80a5b2e6dcb2d6d7b2a7dbecd71b8632c74a 100644 (file)
@@ -19,6 +19,7 @@ obj-$(CONFIG_CMD_FDT) += fdt.o
 obj-$(CONFIG_CONSOLE_TRUETYPE) += font.o
 obj-$(CONFIG_CMD_HASH) += hash.o
 obj-$(CONFIG_CMD_HISTORY) += history.o
+obj-$(CONFIG_CMD_I3C) += i3c.o
 obj-$(CONFIG_CMD_LOADM) += loadm.o
 obj-$(CONFIG_CMD_MEMINFO) += meminfo.o
 obj-$(CONFIG_CMD_MEMORY) += mem_copy.o
diff --git a/test/cmd/i3c.c b/test/cmd/i3c.c
new file mode 100644 (file)
index 0000000..04baad2
--- /dev/null
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2025 Altera Corporation <www.altera.com>
+ */
+
+#include <dm.h>
+#include <dm/test.h>
+#include <test/test.h>
+#include <test/ut.h>
+
+/* Basic test for probing i3c controller with invalid name */
+static int dm_test_i3c_cmd_probe_invalid_master(struct unit_test_state *uts)
+{
+       ut_asserteq(1, run_command("i3c any", 0));
+       ut_assert_nextline("i3c0 (i3c_sandbox)");
+       ut_assert_nextline("i3c1 (i3c_sandbox)");
+       ut_assert_nextline("i3c: Host controller not initialized: any");
+       ut_assert_console_end();
+
+       return 0;
+}
+DM_TEST(dm_test_i3c_cmd_probe_invalid_master, UTF_SCAN_PDATA | UTF_SCAN_FDT | UTF_DM);
+
+/* Basic test of the i3c controller for valid name as per test DT */
+static int dm_test_i3c_cmd_probe_valid_master(struct unit_test_state *uts)
+{
+       ut_asserteq(0, run_command("i3c i3c0", 0));
+       ut_assert_nextline("i3c: Current controller: i3c0");
+       ut_assert_console_end();
+
+       ut_asserteq(0, run_command("i3c current", 0));
+       ut_assert_nextline("i3c: Current controller: i3c0");
+       ut_assert_console_end();
+
+       ut_asserteq(0, run_command("i3c i3c1", 0));
+       ut_assert_nextline("i3c: Current controller: i3c1");
+       ut_assert_console_end();
+
+       ut_asserteq(0, run_command("i3c current", 0));
+       ut_assert_nextline("i3c: Current controller: i3c1");
+       ut_assert_console_end();
+
+       ut_asserteq(0, run_command("i3c list", 0));
+       ut_assert_nextline("i3c0 (i3c_sandbox)");
+       ut_assert_nextline("i3c1 (i3c_sandbox)");
+       ut_assert_console_end();
+
+       return 0;
+}
+DM_TEST(dm_test_i3c_cmd_probe_valid_master, UTF_SCAN_PDATA | UTF_SCAN_FDT | UTF_DM);
\ No newline at end of file