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.
This commit is contained in:
Peter Barker 2020-12-18 10:21:26 +11:00 committed by Peter Barker
parent 8e71e2505a
commit 4efcf16005
1 changed files with 16 additions and 10 deletions

View File

@ -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,6 +2198,8 @@ class AutoTest(ABC):
0,
bytes_to_fetch
)
bytes_to_read = bytes_to_fetch
if log_entry.size < bytes_to_read:
bytes_to_read = log_entry.size
data_downloaded = []
bytes_read = 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)))
#################################################