[PATCH 3/3] test: cmd: setexpr: add tests for format string operations
Roland Gaudig
roland.gaudig-oss at weidmueller.com
Mon Jun 28 17:17:50 CEST 2021
From: Roland Gaudig <roland.gaudig at weidmueller.com>
Series-version 2
Signed-off-by: Roland Gaudig <roland.gaudig at weidmueller.com>
---
test/cmd/setexpr.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/test/cmd/setexpr.c b/test/cmd/setexpr.c
index c537e89353..f8b5eef62e 100644
--- a/test/cmd/setexpr.c
+++ b/test/cmd/setexpr.c
@@ -388,6 +388,39 @@ static int setexpr_test_str_long(struct unit_test_state *uts)
}
SETEXPR_TEST(setexpr_test_str_long, UT_TESTF_CONSOLE_REC);
+/* Test 'setexpr' command with simply setting integers */
+static int setexpr_test_fmt(struct unit_test_state *uts)
+{
+ u8 *buf;
+
+ buf = map_sysmem(0, BUF_SIZE);
+ memset(buf, '\xff', BUF_SIZE);
+
+ /* Test decimal conversion */
+ ut_assertok(run_command("setexpr fred fmt %d 0xff", 0));
+ ut_asserteq_str("255", env_get("fred"));
+ /* Test hexadecimal conversion with 0x prefix and 4 digits */
+ ut_assertok(run_command("setexpr fred fmt 0x%04x 257", 0));
+ ut_asserteq_str("0x0257", env_get("fred"));
+ /* Test octal conversion with % prefix */
+ ut_assertok(run_command("setexpr fred fmt %%%o 8", 0));
+ ut_asserteq_str("%10", env_get("fred"));
+ /* Error test with missing format specifier */
+ ut_asserteq(1, run_command("setexpr fred fmd hello 0xff", 0));
+ /* Error test with invalid format type */
+ ut_asserteq(1, run_command("setexpr fred fmt %a 0xff", 0));
+ /* Error test with incomplete format specifier */
+ ut_asserteq(1, run_command("setexpr fred fmt hello% bf", 0));
+ /* Error test with more than one format specifier */
+ ut_asserteq(1, run_command("setexpr fred fmt %d_%x 100", 0));
+
+ unmap_sysmem(buf);
+
+ return 0;
+}
+
+SETEXPR_TEST(setexpr_test_fmt, UT_TESTF_CONSOLE_REC);
+
int do_ut_setexpr(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
struct unit_test *tests = UNIT_TEST_SUITE_START(setexpr_test);
--
2.25.1
More information about the U-Boot
mailing list