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? >> 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. > >> "-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.