On 5/29/20 9:05 AM, Pavel Dovgalyuk wrote: > This patch moves image downloading functions to the separate class to allow > reusing them from record/replay tests. > > Signed-off-by: Pavel Dovgalyuk <pavel.dovga...@ispras.ru> > --- > 0 files changed > > diff --git a/tests/acceptance/boot_linux.py b/tests/acceptance/boot_linux.py > index 075a386300..3aa57e88b0 100644 > --- a/tests/acceptance/boot_linux.py > +++ b/tests/acceptance/boot_linux.py > @@ -26,22 +26,8 @@ KVM_NOT_AVAILABLE = ACCEL_NOT_AVAILABLE_FMT % "KVM" > TCG_NOT_AVAILABLE = ACCEL_NOT_AVAILABLE_FMT % "TCG" > > > -class BootLinux(Test): > - """ > - Boots a Linux system, checking for a successful initialization > - """ > - > - timeout = 900 > - chksum = None > - > - def setUp(self): > - super(BootLinux, self).setUp() > - self.vm.add_args('-smp', '2') > - self.vm.add_args('-m', '1024') > - self.prepare_boot() > - self.prepare_cloudinit() > - > - def prepare_boot(self): > +class BootLinuxBase(Test): > + def download_boot(self): > self.log.debug('Looking for and selecting a qemu-img binary to be ' > 'used to create the bootable snapshot image') > # If qemu-img has been built, use it, otherwise the system wide one > @@ -60,17 +46,17 @@ class BootLinux(Test): > if image_arch == 'ppc64': > image_arch = 'ppc64le' > try: > - self.boot = vmimage.get( > + boot = vmimage.get( > 'fedora', arch=image_arch, version='31', > checksum=self.chksum, > algorithm='sha256', > cache_dir=self.cache_dirs[0], > snapshot_dir=self.workdir) > - self.vm.add_args('-drive', 'file=%s' % self.boot.path) > except: > self.cancel('Failed to download/prepare boot image') > + return boot.path > > - def prepare_cloudinit(self): > + def download_cloudinit(self): > self.log.info('Preparing cloudinit image') > try: > cloudinit_iso = os.path.join(self.workdir, 'cloudinit.iso') > @@ -81,9 +67,32 @@ class BootLinux(Test): > # QEMU's hard coded usermode router address > phone_home_host='10.0.2.2', > phone_home_port=self.phone_home_port) > - self.vm.add_args('-drive', 'file=%s,format=raw' % cloudinit_iso) > except Exception: > self.cancel('Failed to prepared cloudinit image') > + return cloudinit_iso > + > +class BootLinux(BootLinuxBase): > + """ > + Boots a Linux system, checking for a successful initialization > + """ > + > + timeout = 900 > + chksum = None > + > + def setUp(self): > + super(BootLinux, self).setUp() > + self.vm.add_args('-smp', '2') > + self.vm.add_args('-m', '1024') > + self.prepare_boot() > + self.prepare_cloudinit() > + > + def prepare_boot(self): > + path = self.download_boot() > + self.vm.add_args('-drive', 'file=%s' % path) > + > + def prepare_cloudinit(self): > + cloudinit_iso = self.download_cloudinit() > + self.vm.add_args('-drive', 'file=%s,format=raw' % cloudinit_iso) > > def launch_and_wait(self): > self.vm.set_console() >
Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Tested-by: Philippe Mathieu-Daudé <phi...@redhat.com>