From: "Philippe Mathieu-Daudé" <philmd@redhat.com> To: qemu-devel@nongnu.org Cc: "Cleber Rosa" <crosa@redhat.com>, "Kevin Wolf" <kwolf@redhat.com>, kvm@vger.kernel.org, "Richard Henderson" <rth@twiddle.net>, "Fam Zheng" <fam@euphon.net>, "Eduardo Habkost" <ehabkost@redhat.com>, "Alex Bennée" <alex.bennee@linaro.org>, "Paolo Bonzini" <pbonzini@redhat.com>, "Max Reitz" <mreitz@redhat.com>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, "Stefan Hajnoczi" <stefanha@redhat.com>, "Markus Armbruster" <armbru@redhat.com>, "Marcelo Tosatti" <mtosatti@redhat.com>, qemu-block@nongnu.org, "Pavel Dovgalyuk" <Pavel.Dovgaluk@gmail.com>, "Pavel Dovgalyuk" <Pavel.Dovgaluk@ispras.ru> Subject: [PULL 25/25] tests/acceptance: refactor boot_linux to allow code reuse Date: Sun, 31 May 2020 18:38:46 +0200 [thread overview] Message-ID: <20200531163846.25363-26-philmd@redhat.com> (raw) In-Reply-To: <20200531163846.25363-1-philmd@redhat.com> From: Pavel Dovgalyuk <Pavel.Dovgaluk@gmail.com> This patch moves image downloading functions to the separate class to allow reusing them from record/replay tests. Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <159073593167.20809.17582679291556188984.stgit@pasha-ThinkPad-X280> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- tests/acceptance/boot_linux.py | 49 ++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 20 deletions(-) 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 @@ 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 @@ def prepare_boot(self): 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 @@ def prepare_cloudinit(self): # 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() -- 2.21.3
WARNING: multiple messages have this Message-ID (diff)
From: "Philippe Mathieu-Daudé" <philmd@redhat.com> To: qemu-devel@nongnu.org Cc: "Kevin Wolf" <kwolf@redhat.com>, "Fam Zheng" <fam@euphon.net>, "Eduardo Habkost" <ehabkost@redhat.com>, kvm@vger.kernel.org, "Pavel Dovgalyuk" <Pavel.Dovgaluk@ispras.ru>, "Philippe Mathieu-Daudé" <philmd@redhat.com>, "Marcelo Tosatti" <mtosatti@redhat.com>, "Markus Armbruster" <armbru@redhat.com>, "Max Reitz" <mreitz@redhat.com>, "Pavel Dovgalyuk" <Pavel.Dovgaluk@gmail.com>, "Stefan Hajnoczi" <stefanha@redhat.com>, "Cleber Rosa" <crosa@redhat.com>, "Paolo Bonzini" <pbonzini@redhat.com>, qemu-block@nongnu.org, "Alex Bennée" <alex.bennee@linaro.org>, "Richard Henderson" <rth@twiddle.net> Subject: [PULL 25/25] tests/acceptance: refactor boot_linux to allow code reuse Date: Sun, 31 May 2020 18:38:46 +0200 [thread overview] Message-ID: <20200531163846.25363-26-philmd@redhat.com> (raw) In-Reply-To: <20200531163846.25363-1-philmd@redhat.com> From: Pavel Dovgalyuk <Pavel.Dovgaluk@gmail.com> This patch moves image downloading functions to the separate class to allow reusing them from record/replay tests. Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <159073593167.20809.17582679291556188984.stgit@pasha-ThinkPad-X280> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- tests/acceptance/boot_linux.py | 49 ++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 20 deletions(-) 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 @@ 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 @@ def prepare_boot(self): 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 @@ def prepare_cloudinit(self): # 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() -- 2.21.3
next prev parent reply other threads:[~2020-05-31 16:41 UTC|newest] Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-31 16:38 [PULL 00/25] python-next patches for 2020-05-31 Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 01/25] scripts/qemugdb: Remove shebang header Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 02/25] scripts/qemu-gdb: Use Python 3 interpreter Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 03/25] scripts/qmp: " Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 04/25] scripts/kvm/vmxcap: Use Python 3 interpreter and add pseudo-main() Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 05/25] scripts/modules/module_block: Use Python 3 interpreter & add pseudo-main Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 06/25] scripts/qmp: Fix shebang and imports Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 07/25] python: remove more instances of sys.version_info Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 08/25] python/qemu/machine: add kill() method Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 09/25] python/qemu/machine: remove logging configuration Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 10/25] python/qemu: delint and add pylintrc Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 11/25] python/qemu: delint; add flake8 config Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 12/25] python/qemu: remove Python2 style super() calls Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 13/25] python/qemu: fix socket.makefile() typing Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 14/25] python/qemu: Adjust traceback typing Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 15/25] python/qemu/qmp: use True/False for non/blocking modes Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 16/25] python/qemu/qmp: assert sockfile is not None Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 17/25] python/qemu/qtest: Check before accessing _qtest Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 18/25] tests/vm: Pass --debug through for vm-boot-ssh Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 19/25] tests/vm: Add ability to select QEMU from current build Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 20/25] tests/vm: allow wait_ssh() to specify command Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 21/25] tests/migration/guestperf: Use Python 3 interpreter Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 22/25] tests/acceptance/migration.py: Wait for both sides Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 23/25] tests/acceptance: allow console interaction with specific VMs Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` [PULL 24/25] tests/acceptance: refactor boot_linux_console test to allow code reuse Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé 2020-05-31 16:38 ` Philippe Mathieu-Daudé [this message] 2020-05-31 16:38 ` [PULL 25/25] tests/acceptance: refactor boot_linux " Philippe Mathieu-Daudé 2020-06-01 12:03 ` [PULL 00/25] python-next patches for 2020-05-31 Peter Maydell 2020-06-01 12:03 ` Peter Maydell
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200531163846.25363-26-philmd@redhat.com \ --to=philmd@redhat.com \ --cc=Pavel.Dovgaluk@gmail.com \ --cc=Pavel.Dovgaluk@ispras.ru \ --cc=alex.bennee@linaro.org \ --cc=armbru@redhat.com \ --cc=crosa@redhat.com \ --cc=ehabkost@redhat.com \ --cc=fam@euphon.net \ --cc=kvm@vger.kernel.org \ --cc=kwolf@redhat.com \ --cc=mreitz@redhat.com \ --cc=mtosatti@redhat.com \ --cc=pbonzini@redhat.com \ --cc=qemu-block@nongnu.org \ --cc=qemu-devel@nongnu.org \ --cc=rth@twiddle.net \ --cc=stefanha@redhat.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.