From 4efcf160050889ca0816173bb53a98a05caf0d30 Mon Sep 17 00:00:00 2001 From: Peter Barker Date: Fri, 18 Dec 2020 10:21:26 +1100 Subject: [PATCH] autotest: correct number of bytes we expect to download We request a fixed number of bytes, which could be more or less than the log file size. --- Tools/autotest/common.py | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/Tools/autotest/common.py b/Tools/autotest/common.py index af4806ae1f..549435e978 100644 --- a/Tools/autotest/common.py +++ b/Tools/autotest/common.py @@ -2059,8 +2059,12 @@ class AutoTest(ABC): log_list = self.log_list() return log_list[lognum-1] - def assert_bytes_equal(self, bytes1, bytes2): - for i in range(0,len(bytes1)): + def assert_bytes_equal(self, bytes1, bytes2, maxlen=None): + tocheck = len(bytes1) + if maxlen is not None: + if tocheck > maxlen: + tocheck = maxlen + for i in range(0, tocheck): if bytes1[i] != bytes2[i]: raise NotAchievedException("differ at offset %u" % i) @@ -2184,7 +2188,7 @@ class AutoTest(ABC): raise NotAchievedException("Incorrect log id received") # download the log file in the normal way: - bytes_to_fetch = 10000000 + bytes_to_fetch = 100000 self.progress("Sending request for %u bytes at offset 0" % (bytes_to_fetch,)) tstart = self.get_sim_time() self.mav.mav.log_request_data_send( @@ -2194,7 +2198,9 @@ class AutoTest(ABC): 0, bytes_to_fetch ) - bytes_to_read = log_entry.size + bytes_to_read = bytes_to_fetch + if log_entry.size < bytes_to_read: + bytes_to_read = log_entry.size data_downloaded = [] bytes_read = 0 last_print = 0 @@ -2221,7 +2227,7 @@ class AutoTest(ABC): self.progress("actual_bytes_len=%u data_downloaded_len=%u" % (len(actual_bytes), len(data_downloaded))) - self.assert_bytes_equal(actual_bytes, data_downloaded) + self.assert_bytes_equal(actual_bytes, data_downloaded, maxlen=bytes_to_read) if False: bytes_to_read = log_entry.size @@ -2259,7 +2265,7 @@ class AutoTest(ABC): self.assert_bytes_equal(actual_bytes, data_downloaded) # ... and now download it reading backwards... - bytes_to_read = log_entry.size + bytes_to_read = bytes_to_fetch bytes_read = 0 backwards_data_downloaded = [] last_print = 0 @@ -2292,10 +2298,10 @@ class AutoTest(ABC): last_print = time.time() self.progress("Read %u/%u" % (bytes_read, bytes_to_read)) - self.assert_bytes_equal(actual_bytes, backwards_data_downloaded) - if len(actual_bytes) != len(backwards_data_downloaded): - raise NotAchievedException("Size delta: actual=%u vs downloaded=%u" % - (len(actual_bytes), len(backwards_data_downloaded))) + self.assert_bytes_equal(actual_bytes, backwards_data_downloaded, maxlen=bytes_to_read) + # if len(actual_bytes) != len(backwards_data_downloaded): + # raise NotAchievedException("Size delta: actual=%u vs downloaded=%u" % + # (len(actual_bytes), len(backwards_data_downloaded))) #################################################