Script with 'if run' don't work as expected
Hi,
a script with 'if run' don't work as expect. I have test it on an omap3_overo board.
The following script always prints true:
setenv testcmd false; if run testcmd; then echo "true"; fi;
This could be fixed by reverting commit 1992dbfdb9886c3dfc4a505091895c851f736f3a:
Make 'run' use run_command_list() instead of run_command()
Kind regards,
Stefan
Hi Stefan,
Quoted 11 lines · Stefan Herbrechtsmeier
Hi,
a script with 'if run' don't work as expect. I have test it on an
omap3_overoboard.The following script always prints true:
setenv testcmd false; if run testcmd; then echo "true"; fi;This could be fixed by reverting commit
1992dbfdb9886c3dfc4a505091895c851f736f3a:
Make 'run' userun_command_list()instead ofrun_command()
I can repeat this with sandbox:
$ ./b/sandbox/u-boot -c "setenv testcmd false; if run testcmd; then echo true; fi;"
U-Boot 2014.07-rc1-00097-g169b1f8 (May 21 2014 - 19:46:07)
DRAM: 128 MiB
Using default environment
In: serial Out: lcd Err: lcd
true
However although that commit provoked the problem I don't think it is the root cause. It seems that hush loses the return code when asked to execute a sequence of commands. In looking at this I've found several related problems so I'll put a series together and send it out for review.
Regards,
Simon