cmd/setexpr: support concatenation of direct strings
The setexpr.s command allows to concatenate two strings. According to the description in doc/usage/cmd/setexpr.rst the parameters value1 and value2 can be either direct values or pointers to a memory location holding the values. Unfortunately `setexpr.s <value1> + <value2>` fails if any of the values is a direct value. $? is set to false. * Add support for direct values in setexpr.s. * Correct the unit test for "setexpr.s fred 0". * Add a new unit test for "setexpr.s fred '1' + '3'" giving '13'. Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
This commit is contained in:
committed by
Simon Glass
parent
d01eb288cb
commit
0748f66cad
@@ -302,7 +302,8 @@ static int setexpr_test_str(struct unit_test_state *uts)
|
||||
memset(buf, '\xff', BUF_SIZE);
|
||||
|
||||
ut_assertok(env_set("fred", "x"));
|
||||
ut_asserteq(1, run_command("setexpr.s fred 0", 0));
|
||||
ut_asserteq(0, run_command("setexpr.s fred 0", 0));
|
||||
ut_asserteq_str("0", env_get("fred"));
|
||||
|
||||
strcpy(buf, "hello");
|
||||
ut_assertok(env_set("fred", "12345"));
|
||||
@@ -320,6 +321,10 @@ static int setexpr_test_str_oper(struct unit_test_state *uts)
|
||||
{
|
||||
char *buf;
|
||||
|
||||
/* Test concatenation of strings */
|
||||
ut_assertok(run_command("setexpr.s fred '1' + '3'", 0));
|
||||
ut_asserteq_str("13", env_get("fred"));
|
||||
|
||||
buf = map_sysmem(0, BUF_SIZE);
|
||||
memset(buf, '\xff', BUF_SIZE);
|
||||
strcpy(buf, "hello");
|
||||
|
||||
Reference in New Issue
Block a user