On 11/07/2024 20.49, Richard Henderson wrote:
On 7/11/24 09:45, Richard Henderson wrote:
On 7/11/24 04:55, Thomas Huth wrote:
+ def fetch_asset(self, url, asset_hash):
+ cache_dir = os.path.expanduser("~/.cache/qemu/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 self.check_hash(fname, asset_hash):
+ return fname
+ logging.debug("Downloading %s to %s...", url, fname)
+ subprocess.check_call(["wget", "-c", url, "-O", fname +
".download"])
+ os.rename(fname + ".download", fname)
+ return fname
Download failure via exception?
Check hash on downloaded asset?
I would prefer to see assets, particularly downloading, handled in a
separate pass from tests.
(1) Asset download should not count against test timeout.
(2) Running tests while disconnected should skip unavailable assets.
Sounds good, but honestly, that's above my primitive python-fu. I guess that
would need some kind of introspection of the tests to retrieve the
information what they want to download?
Thomas