mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-07-30 22:03:54 -06:00
tests/functional/qemu_test: Use Python hashlib instead of external programs
Some systems (like OpenBSD) do not have the sha256sum or sha512sum programs installed by default, or use different names for those. Use the Python hashlib instead so we don't have to rely on the external programs. Reported-by: Peter Maydell <peter.maydell@linaro.org> Message-ID: <20240910201742.239559-1-thuth@redhat.com> Reviewed-by: Brian Cain <bcain@quicinc.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
parent
59d100243d
commit
05e303210d
1 changed files with 11 additions and 5 deletions
|
@ -43,15 +43,21 @@ class Asset:
|
|||
if self.hash is None:
|
||||
return True
|
||||
if len(self.hash) == 64:
|
||||
sum_prog = 'sha256sum'
|
||||
hl = hashlib.sha256()
|
||||
elif len(self.hash) == 128:
|
||||
sum_prog = 'sha512sum'
|
||||
hl = hashlib.sha512()
|
||||
else:
|
||||
raise Exception("unknown hash type")
|
||||
|
||||
checksum = subprocess.check_output(
|
||||
[sum_prog, str(cache_file)]).split()[0]
|
||||
return self.hash == checksum.decode("utf-8")
|
||||
# Calculate the hash of the file:
|
||||
with open(cache_file, 'rb') as file:
|
||||
while True:
|
||||
chunk = file.read(1 << 20)
|
||||
if not chunk:
|
||||
break
|
||||
hl.update(chunk)
|
||||
|
||||
return hl.hexdigest()
|
||||
|
||||
def valid(self):
|
||||
return self.cache_file.exists() and self._check(self.cache_file)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue