[U-Boot] [PATCH] test/py: Add support for extending timeout for large files

Stephen Warren swarren at wwwdotorg.org
Mon May 2 18:27:58 CEST 2016


On 05/02/2016 06:29 AM, Michal Simek wrote:
> Slow network or big image filesize is not able to be finished
> in 30s. Add option to user to extend timeout(in miliseconds).
>
> env__net_tftp_readable_file = {
>      "fn": "192.168.0.105:zc706/image.ub",
>      "addr": 0x20000000,
>      "size": 20484981,
>      "crc32": "873a30ae",
>      "timeout": 50000,

Out of curiosity, I wonder why your network is so slow.

> diff --git a/test/py/tests/test_net.py b/test/py/tests/test_net.py

> @@ -140,6 +141,11 @@ def test_net_tftpboot(u_boot_console):
>       if not addr:
>           addr = u_boot_utils.find_ram_base(u_boot_console)
>
> +    timeout = f.get('timeout', None)
> +    if timeout:
> +        orig_timeout = u_boot_console.p.timeout
> +        u_boot_console.p.timeout = timeout
> +
>       fn = f['fn']
>       output = u_boot_console.run_command('tftpboot %x %s' % (addr, fn))
>       expected_text = 'Bytes transferred = '
> @@ -157,3 +163,6 @@ def test_net_tftpboot(u_boot_console):
>
>       output = u_boot_console.run_command('crc32 %x $filesize' % addr)
>       assert expected_crc in output
> +
> +    if timeout:
> +        u_boot_console.p.timeout = orig_timeout

The timeout won't be correctly restored if an exception occurs. Please 
introduce a u_boot_console.temporary_timeout(to) API into 
u_boot_console_base.py (see e.g. how the existing disable_check() API 
works) and use it like:

timeout = f.get('timeout', None)
with u_boot_console.temporary_timeout(timeout):
   existing code

(The implementation can treat None as "no change")


More information about the U-Boot mailing list