Hi, On 15.11.2017 19:31, Stephen Warren wrote: > On 11/15/2017 02:34 AM, Michal Simek wrote: >> Hi, >> >> On 10.11.2017 22:34, Stephen Warren wrote: >>> On 11/10/2017 04:01 AM, Michal Simek wrote: >>>> After adding our small zynq uboot which has hush parser off these 3 >>>> tests >>>> start to failed. It is probably just coincidence that others are >>>> passing without hush parser. >>> >>> What was the exact problem here? The set of tests you've disabled all >>> seem to rely on setenv/printenv and don't seem to do anything >>> complicated shell syntax wise. Are you sure they shouldn't depend on >>> setenv being available rather than hush_parser? >> >> These 3 tests. (html attached too.) >> >> Zynq> printenv baudrate >> baudrate=115200 >> Zynq> >> test/py/tests/test_env.py .sZynq> printenv test_env_0 >> ## Error: "test_env_0" not defined >> Zynq> .sZynq> setenv test_env_0 "foo" >> Zynq> printenv test_env_0 >> test_env_0="foo" >> Zynq> F+u-boot-test-reset zynq_cse_qspi zc706 >> >> >> >> Zynq> Zynq> setenv test_env_0 "bar" >> Zynq> printenv test_env_0 >> test_env_0="bar" >> Zynq> F > > For those two failures, the issue is that the test is expecting setenv > to print: > > test_env_0=foo > test_env_0=bar > > ... but it prints: > > test_env_0="foo" > test_env_0="bar" > > I guess this is because the set_var() function wraps the values in > quotes to ensure that values that contain spaces work as expected, yet > when not using Hush, quotes aren't processed. > > I think the best solution is to enhance set_var() to do the following if > Hush isn't available: > > a) Skip the test if the value contains any spaces (or perhaps if the > value contains any characters that aren't in a whitelist. > > b) Not use quotes when not running on Hush. > > I think re-writing it as follows would work: > >> bc = state_test_env.u_boot_console.config.buildconfig >> if bc.get('config_hush_parser', None): >> quote = '"' >> else: >> quote = '' >> if ' ' in value: >> pytest.skip('Space in variable value on non-Hush shell') >> >> state_test_env.u_boot_console.run_command( >> 'setenv %s %s%s%s' % (var, quote, value, quote)) >> state_test_env.env[var] = value >
First of all sorry for delay. I had to fix some other issues. This is fixing issues with all tests and I have sent v2. Thanks, Michal -- Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91 w: www.monstr.eu p: +42-0-721842854 Maintainer of Linux kernel - Xilinx Microblaze Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP SoCs
signature.asc
Description: OpenPGP digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot