From: Dinesh Maniyam Date: Wed, 6 Aug 2025 04:32:33 +0000 (+0800) Subject: test: cmd: Add simple test for i3c X-Git-Tag: v2025.10-rc2~14^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9e014408c15d1c54cf49a1be93a14a9a9a224941;p=thirdparty%2Fu-boot.git test: cmd: Add simple test for i3c 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 --- diff --git a/test/cmd/Makefile b/test/cmd/Makefile index 595e4cfcada..e71c80a5b2e 100644 --- a/test/cmd/Makefile +++ b/test/cmd/Makefile @@ -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 index 00000000000..04baad2a4b2 --- /dev/null +++ b/test/cmd/i3c.c @@ -0,0 +1,50 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright (C) 2025 Altera Corporation + */ + +#include +#include +#include +#include + +/* 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