tests/functional: make tuxrun disk images writable

The zstd command will preserve the input archive permissions on the
output file. So when we decompress the readonly cached image, the
resulting per-test run private disk image will also be readonly.
We need it to be writable, so make it so.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Message-ID: <20241025092659.2312118-2-berrange@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Daniel P. Berrangé 2024-10-25 10:26:58 +01:00 committed by Thomas Huth
parent 9094f7c934
commit c9daf680d1

View File

@ -10,6 +10,7 @@
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import os import os
import stat
import time import time
from qemu_test import QemuSystemTest from qemu_test import QemuSystemTest
@ -77,12 +78,17 @@ class TuxRunBaselineTest(QemuSystemTest):
kernel_image = kernel_asset.fetch() kernel_image = kernel_asset.fetch()
disk_image_zst = rootfs_asset.fetch() disk_image_zst = rootfs_asset.fetch()
disk_image = self.workdir + "/rootfs.ext4"
run_cmd([self.zstd, "-f", "-d", disk_image_zst, run_cmd([self.zstd, "-f", "-d", disk_image_zst,
"-o", self.workdir + "/rootfs.ext4"]) "-o", disk_image])
# zstd copies source archive permissions for the output
# file, so must make this writable for QEMU
os.chmod(disk_image, stat.S_IRUSR | stat.S_IWUSR)
dtb = dtb_asset.fetch() if dtb_asset is not None else None dtb = dtb_asset.fetch() if dtb_asset is not None else None
return (kernel_image, self.workdir + "/rootfs.ext4", dtb) return (kernel_image, disk_image, dtb)
def prepare_run(self, kernel, disk, drive, dtb=None, console_index=0): def prepare_run(self, kernel, disk, drive, dtb=None, console_index=0):
""" """