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>
This commit is contained in:
parent
c9daf680d1
commit
786bc22552
@ -8,6 +8,7 @@
|
|||||||
import hashlib
|
import hashlib
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
import stat
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import unittest
|
import unittest
|
||||||
@ -143,6 +144,8 @@ class Asset:
|
|||||||
raise Exception("Hash of %s does not match %s" %
|
raise Exception("Hash of %s does not match %s" %
|
||||||
(self.url, self.hash))
|
(self.url, self.hash))
|
||||||
tmp_cache_file.replace(self.cache_file)
|
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))
|
self.log.info("Cached %s at %s" % (self.url, self.cache_file))
|
||||||
return str(self.cache_file)
|
return str(self.cache_file)
|
||||||
|
Loading…
Reference in New Issue
Block a user