From mboxrd@z Thu Jan 1 00:00:00 1970 From: Michal Simek Date: Wed, 18 May 2016 15:11:52 +0200 Subject: [U-Boot] [PATCH] test/py: Add support for extending timeout for large files In-Reply-To: <572848FC.8060508@xilinx.com> References: <5727800E.8090604@wwwdotorg.org> <572848FC.8060508@xilinx.com> Message-ID: <573C6A18.7090806@xilinx.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 3.5.2016 08:45, Michal Simek wrote: > On 2.5.2016 18:27, Stephen Warren wrote: >> 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. > > it is on 100Mbit/s and speed is 620kB/s. > In boardfarm because of high traffic this should be also selectable. > > > > >>> 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") > > ok. Will look at it if my minimal python experience allows me to do it. :-) I have sent the patch for it "test/py: Support setting up specific timeout" Thanks, Michal