diff options
author | Alex Bennée <alex.bennee@linaro.org> | 2019-11-04 17:31:44 +0000 |
---|---|---|
committer | Alex Bennée <alex.bennee@linaro.org> | 2019-11-12 14:32:55 +0000 |
commit | 5b4b4865f44ed27d6aeea1d05e8314fce9cdc136 (patch) | |
tree | a054e55daab5d0465a817da283a620eb9895e22b /tests/vm | |
parent | 860eacec5852e66ac1425ab636ea245afcfa9283 (diff) |
tests/vm: support sites with sha512 checksums
The NetBSD project uses SHA512 for its checksums so lets support that
in the download helper.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Diffstat (limited to 'tests/vm')
-rwxr-xr-x | tests/vm/basevm.py | 10 | ||||
-rwxr-xr-x | tests/vm/netbsd | 3 |
2 files changed, 10 insertions, 3 deletions
diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py index 086bfb2c66..91a9226026 100755 --- a/tests/vm/basevm.py +++ b/tests/vm/basevm.py @@ -95,19 +95,25 @@ class BaseVM(object): logging.info("KVM not available, not using -enable-kvm") self._data_args = [] - def _download_with_cache(self, url, sha256sum=None): + def _download_with_cache(self, url, sha256sum=None, sha512sum=None): def check_sha256sum(fname): if not sha256sum: return True checksum = subprocess.check_output(["sha256sum", fname]).split()[0] return sha256sum == checksum.decode("utf-8") + def check_sha512sum(fname): + if not sha512sum: + return True + checksum = subprocess.check_output(["sha512sum", fname]).split()[0] + return sha512sum == checksum.decode("utf-8") + cache_dir = os.path.expanduser("~/.cache/qemu-vm/download") if not os.path.exists(cache_dir): os.makedirs(cache_dir) fname = os.path.join(cache_dir, hashlib.sha1(url.encode("utf-8")).hexdigest()) - if os.path.exists(fname) and check_sha256sum(fname): + if os.path.exists(fname) and check_sha256sum(fname) and check_sha512sum(fname): return fname logging.debug("Downloading %s to %s...", url, fname) subprocess.check_call(["wget", "-c", url, "-O", fname + ".download"], diff --git a/tests/vm/netbsd b/tests/vm/netbsd index c48c60853e..611e6cc5b5 100755 --- a/tests/vm/netbsd +++ b/tests/vm/netbsd @@ -23,6 +23,7 @@ class NetBSDVM(basevm.BaseVM): arch = "x86_64" link = "https://cdn.netbsd.org/pub/NetBSD/NetBSD-8.1/images/NetBSD-8.1-amd64.iso" + csum = "718f275b7e0879599bdac95630c5e3f2184700032fdb6cdebf3bdd63687898c48ff3f08f57b89f4437a86cdd8ea07c01a39d432dbb37e1e4b008f4985f98da3f" size = "20G" pkgs = [ # tools @@ -70,7 +71,7 @@ class NetBSDVM(basevm.BaseVM): ipv6 = False def build_image(self, img): - cimg = self._download_with_cache(self.link) + cimg = self._download_with_cache(self.link, sha512sum=self.csum) img_tmp = img + ".tmp" iso = img + ".install.iso" |