Cleber Rosa <crosa@xxxxxxxxxx> writes: > Alex Bennée <alex.bennee@xxxxxxxxxx> writes: > >> Cleber Rosa <crosa@xxxxxxxxxx> writes: >> >>> The tests under machine_aarch64_virt.py do not need read-write access >>> to the ISOs. The ones under machine_aarch64_sbsaref.py, on the other >>> hand, will need read-write access, so let's give each test an unique >>> file. >> >> I think we are making two separate changes here so probably best split >> the patch. >> > > Sure, but, do you mean separating the "readonly=on" and the "writable > file" changes? Or separating those two from the ISO url code style > change? I was thinking about splitting the sbsaref and virt patches, but actually they are fairly related as they all use the alpine image so maybe no need. > >>> And while at it, let's use a single code style and hash for the ISO >>> url. >>> >>> Signed-off-by: Cleber Rosa <crosa@xxxxxxxxxx> >>> --- >>> tests/avocado/machine_aarch64_sbsaref.py | 9 +++++++-- >>> tests/avocado/machine_aarch64_virt.py | 14 +++++++------- >>> 2 files changed, 14 insertions(+), 9 deletions(-) >>> >>> diff --git a/tests/avocado/machine_aarch64_sbsaref.py b/tests/avocado/machine_aarch64_sbsaref.py >>> index 528c7d2934..6ae84d77ac 100644 >>> --- a/tests/avocado/machine_aarch64_sbsaref.py >>> +++ b/tests/avocado/machine_aarch64_sbsaref.py >>> @@ -7,6 +7,7 @@ >>> # SPDX-License-Identifier: GPL-2.0-or-later >>> >>> import os >>> +import shutil >>> >>> from avocado import skipUnless >>> from avocado.utils import archive >>> @@ -123,13 +124,15 @@ def boot_alpine_linux(self, cpu): >>> >>> iso_hash = "5a36304ecf039292082d92b48152a9ec21009d3a62f459de623e19c4bd9dc027" >>> iso_path = self.fetch_asset(iso_url, algorithm="sha256", asset_hash=iso_hash) >>> + iso_path_rw = os.path.join(self.workdir, os.path.basename(iso_path)) >>> + shutil.copy(iso_path, iso_path_rw) >>> >>> self.vm.set_console() >>> self.vm.add_args( >>> "-cpu", >>> cpu, >>> "-drive", >>> - f"file={iso_path},format=raw", >>> + f"file={iso_path_rw},format=raw", >> >> Instead of copying why not add ",snapshot=on" to preserve the original >> image. We don't want to persist data between tests. Ahh yes these are isos so snapshot isn't needed. >> >>> "-device", >>> "virtio-rng-pci,rng=rng0", >>> "-object", >>> @@ -170,13 +173,15 @@ def boot_openbsd73(self, cpu): >>> >>> img_hash = "7fc2c75401d6f01fbfa25f4953f72ad7d7c18650056d30755c44b9c129b707e5" >>> img_path = self.fetch_asset(img_url, algorithm="sha256", asset_hash=img_hash) >>> + img_path_rw = os.path.join(self.workdir, os.path.basename(img_path)) >>> + shutil.copy(img_path, img_path_rw) >>> >>> self.vm.set_console() >>> self.vm.add_args( >>> "-cpu", >>> cpu, >>> "-drive", >>> - f"file={img_path},format=raw", >>> + f"file={img_path_rw},format=raw", >> >> ditto. >> >> >>> "-device", >>> "virtio-rng-pci,rng=rng0", >>> "-object", >>> diff --git a/tests/avocado/machine_aarch64_virt.py b/tests/avocado/machine_aarch64_virt.py >>> index a90dc6ff4b..093d68f837 100644 >>> --- a/tests/avocado/machine_aarch64_virt.py >>> +++ b/tests/avocado/machine_aarch64_virt.py >>> @@ -37,13 +37,13 @@ def test_alpine_virt_tcg_gic_max(self): >>> :avocado: tags=machine:virt >>> :avocado: tags=accel:tcg >>> """ >>> - iso_url = ('https://dl-cdn.alpinelinux.org/' >>> - 'alpine/v3.17/releases/aarch64/' >>> - 'alpine-standard-3.17.2-aarch64.iso') >>> + iso_url = ( >>> + "https://dl-cdn.alpinelinux.org/" >>> + "alpine/v3.17/releases/aarch64/alpine-standard-3.17.2-aarch64.iso" >>> + ) >>> >>> - # Alpine use sha256 so I recalculated this myself >>> - iso_sha1 = '76284fcd7b41fe899b0c2375ceb8470803eea839' >>> - iso_path = self.fetch_asset(iso_url, asset_hash=iso_sha1) >>> + iso_hash = "5a36304ecf039292082d92b48152a9ec21009d3a62f459de623e19c4bd9dc027" >>> + iso_path = self.fetch_asset(iso_url, algorithm="sha256", asset_hash=iso_hash) >>> >>> self.vm.set_console() >>> kernel_command_line = (self.KERNEL_COMMON_COMMAND_LINE + >>> @@ -60,7 +60,7 @@ def test_alpine_virt_tcg_gic_max(self): >>> self.vm.add_args("-smp", "2", "-m", "1024") >>> self.vm.add_args('-bios', os.path.join(BUILD_DIR, 'pc-bios', >>> 'edk2-aarch64-code.fd')) >>> - self.vm.add_args("-drive", f"file={iso_path},format=raw") >>> + self.vm.add_args("-drive", >>> f"file={iso_path},readonly=on,format=raw") >> >> Perhaps we can set ",media=cdrom" here. >> > > Yes, but more importantly, adding both "readonly=on" and "media=cdrom" > to the tests under machine_aarch64_sbsaref.py do the trick. Now, the > behavior explained in my previous response still warrants investigation > IMO. > > Thanks > - Cleber. -- Alex Bennée Virtualisation Tech Lead @ Linaro