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:
		
				
					committed by
					
						 Thomas Huth
						Thomas Huth
					
				
			
			
				
	
			
			
			
						parent
						
							c9daf680d1
						
					
				
				
					commit
					786bc22552
				
			| @@ -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) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user