Message ID | b03d952471eea861766a6ad78f732404ff5c7cbf.1462192143.git.michal.simek@xilinx.com |
---|---|
State | Changes Requested |
Delegated to: | Tom Rini |
Headers | show |
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")
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. :-) Thanks, Michal
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
diff --git a/test/py/tests/test_net.py b/test/py/tests/test_net.py index 4ab58b44248a..4f4a876c1335 100644 --- a/test/py/tests/test_net.py +++ b/test/py/tests/test_net.py @@ -46,6 +46,7 @@ env__net_tftp_readable_file = { "addr": 0x10000000, "size": 5058624, "crc32": "c2244b26", + "timeout": 50000, } """ @@ -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
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, } Signed-off-by: Michal Simek <michal.simek@xilinx.com> --- test/py/tests/test_net.py | 9 +++++++++ 1 file changed, 9 insertions(+)