summaryrefslogtreecommitdiff
path: root/test/cmd
diff options
context:
space:
mode:
authorSean Anderson <seanga2@gmail.com>2021-03-01 00:29:51 +0300
committerTom Rini <trini@konsulko.com>2021-04-13 00:17:11 +0300
commit9539f71675c40485e448efb3c4e06afc8d102f94 (patch)
treee4a3d2be937c6593a057e8a8a077645f2af09d40 /test/cmd
parentc146de48727da66ea7dc43f12bd41814cff2faa8 (diff)
downloadu-boot-9539f71675c40485e448efb3c4e06afc8d102f94.tar.xz
hush: Fix assignments being misinterpreted as commands
If there were no variable substitutions in a command, then initial assignments would be misinterpreted as commands, instead of being skipped over. This is demonstrated by the following example: => foo=bar echo baz Unknown command 'foo=bar' - try 'help' Signed-off-by: Sean Anderson <seanga2@gmail.com>
Diffstat (limited to 'test/cmd')
-rw-r--r--test/cmd/test_echo.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/test/cmd/test_echo.c b/test/cmd/test_echo.c
index 9d60d7d1a0..091e4f823c 100644
--- a/test/cmd/test_echo.c
+++ b/test/cmd/test_echo.c
@@ -34,6 +34,8 @@ static struct test_data echo_data[] = {
*/
{"setenv jQx X; echo \"a)\" ${jQx} 'b)' '${jQx}' c) ${jQx}; setenv jQx",
"a) X b) ${jQx} c) X"},
+ /* Test shell variable assignments without substitutions */
+ {"foo=bar echo baz", "baz"},
/* Test handling of shell variables. */
{"setenv jQx; for jQx in 1 2 3; do echo -n \"${jQx}, \"; done; echo;",
"1, 2, 3, "},