diff options
| author | Daniel P. Berrangé <berrange@redhat.com> | 2024-10-25 10:26:59 +0100 |
|---|---|---|
| committer | Thomas Huth <thuth@redhat.com> | 2024-11-04 14:16:11 +0100 |
| commit | 786bc2255256c11efa4c0e689cc9ae3351f2405d (patch) | |
| tree | bb12132937aa5db6174c2c15217f7491d2d90c27 /tests/functional/qemu_test/asset.py | |
| parent | c9daf680d1ea34097f367527046a9229279aa1e9 (diff) | |
| download | focaccia-qemu-786bc2255256c11efa4c0e689cc9ae3351f2405d.tar.gz focaccia-qemu-786bc2255256c11efa4c0e689cc9ae3351f2405d.zip | |
tests/functional: make cached asset files read-only
This ensures that if a functional test runs QEMU with a writable disk pointing to a cached asset, an error will be reported, rather than silently modifying the cache file. As an example, tweaking test_sbsaref.py to set snapshot=off, results in a clear error: Command: ./build/qemu-system-aarch64 ...snip... -drive file=/var/home/berrange/.cache/qemu/download/44cdbae275ef1bb6dab1d5fbb59473d4f741e1c8ea8a80fd9e906b531d6ad461,format=raw,snapshot=off -cpu max,pauth=off Output: qemu-system-aarch64: Could not open '/var/home/berrange/.cache/qemu/download/44cdbae275ef1bb6dab1d5fbb59473d4f741e1c8ea8a80fd9e906b531d6ad461': Permission denied Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Tested-by: Thomas Huth <thuth@redhat.com> Message-ID: <20241025092659.2312118-3-berrange@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'tests/functional/qemu_test/asset.py')
| -rw-r--r-- | tests/functional/qemu_test/asset.py | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/tests/functional/qemu_test/asset.py b/tests/functional/qemu_test/asset.py index e47bfac035..f126cd5863 100644 --- a/tests/functional/qemu_test/asset.py +++ b/tests/functional/qemu_test/asset.py @@ -8,6 +8,7 @@ import hashlib import logging import os +import stat import subprocess import sys import unittest @@ -143,6 +144,8 @@ class Asset: raise Exception("Hash of %s does not match %s" % (self.url, self.hash)) tmp_cache_file.replace(self.cache_file) + # Remove write perms to stop tests accidentally modifying them + os.chmod(self.cache_file, stat.S_IRUSR | stat.S_IRGRP) self.log.info("Cached %s at %s" % (self.url, self.cache_file)) return str(self.cache_file) |