Message ID | 20191112135801.854-3-wainersm@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tests/acceptance: Use QEMUMachine on tests that expect failure | expand |
On Tue, Nov 12, 2019 at 08:58:01AM -0500, Wainer dos Santos Moschetta wrote: > On linux_initrd and empty_cpu_model tests the same effect of > calling QEMU through run() to inspect the terminated process is > achieved with a sequence of set_qmp_monitor() / launch() / wait() > commands on an QEMUMachine object. This patch changes those > tests to use QEMUMachine instead, so they follow the same pattern > to launch QEMU found on other acceptance tests. > > Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com> > --- > tests/acceptance/empty_cpu_model.py | 13 +++++++------ > tests/acceptance/linux_initrd.py | 13 +++++++------ > 2 files changed, 14 insertions(+), 12 deletions(-) > > diff --git a/tests/acceptance/empty_cpu_model.py b/tests/acceptance/empty_cpu_model.py > index 3f4f663582..8c20a4ef4a 100644 > --- a/tests/acceptance/empty_cpu_model.py > +++ b/tests/acceptance/empty_cpu_model.py > @@ -7,13 +7,14 @@ > # > # This work is licensed under the terms of the GNU GPL, version 2 or > # later. See the COPYING file in the top-level directory. > -import subprocess > from avocado_qemu import Test > > class EmptyCPUModel(Test): > def test(self): > - cmd = [self.qemu_bin, '-S', '-display', 'none', '-machine', 'none', '-cpu', ''] > - r = subprocess.run(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE) > - self.assertEquals(r.returncode, 1, "QEMU exit code should be 1") > - self.assertEquals(r.stdout, b'', "QEMU stdout should be empty") > - self.assertNotEquals(r.stderr, b'', "QEMU stderr shouldn't be empty") > + self.vm.add_args('-S', '-display', 'none', '-machine', 'none', > + '-cpu', '') > + self.vm.set_qmp_monitor(disabled=True) > + self.vm.launch() > + self.vm.wait() > + self.assertEquals(self.vm.exitcode(), 1, "QEMU exit code should be 1") > + self.assertRegex(self.vm.get_log(), r'-cpu option cannot be empty') > diff --git a/tests/acceptance/linux_initrd.py b/tests/acceptance/linux_initrd.py > index c61d9826a4..158ec4d46c 100644 > --- a/tests/acceptance/linux_initrd.py > +++ b/tests/acceptance/linux_initrd.py > @@ -10,7 +10,6 @@ > > import logging > import tempfile > -from avocado.utils.process import run > > from avocado_qemu import Test > > @@ -41,13 +40,15 @@ class LinuxInitrd(Test): > initrd.seek(max_size) > initrd.write(b'\0') > initrd.flush() > - cmd = "%s -kernel %s -initrd %s -m 4096" % ( > - self.qemu_bin, kernel_path, initrd.name) > - res = run(cmd, ignore_status=True) > - self.assertEqual(res.exit_status, 1) > + self.vm.add_args('-kernel', kernel_path, '-initrd', initrd.name, > + '-m', '4096') > + self.vm.set_qmp_monitor(disabled=True) Like I've said on the previous patch, I'd personally go with `enabled=True` as the default method signature, so this would become `enabled=False`, or simply: self.vm.set_qmp_monitor(False) But either way, Reviewed-by: Cleber Rosa <crosa@redhat.com> Tested-by: Cleber Rosa <crosa@redhat.com>
diff --git a/tests/acceptance/empty_cpu_model.py b/tests/acceptance/empty_cpu_model.py index 3f4f663582..8c20a4ef4a 100644 --- a/tests/acceptance/empty_cpu_model.py +++ b/tests/acceptance/empty_cpu_model.py @@ -7,13 +7,14 @@ # # This work is licensed under the terms of the GNU GPL, version 2 or # later. See the COPYING file in the top-level directory. -import subprocess from avocado_qemu import Test class EmptyCPUModel(Test): def test(self): - cmd = [self.qemu_bin, '-S', '-display', 'none', '-machine', 'none', '-cpu', ''] - r = subprocess.run(cmd, stderr=subprocess.PIPE, stdout=subprocess.PIPE) - self.assertEquals(r.returncode, 1, "QEMU exit code should be 1") - self.assertEquals(r.stdout, b'', "QEMU stdout should be empty") - self.assertNotEquals(r.stderr, b'', "QEMU stderr shouldn't be empty") + self.vm.add_args('-S', '-display', 'none', '-machine', 'none', + '-cpu', '') + self.vm.set_qmp_monitor(disabled=True) + self.vm.launch() + self.vm.wait() + self.assertEquals(self.vm.exitcode(), 1, "QEMU exit code should be 1") + self.assertRegex(self.vm.get_log(), r'-cpu option cannot be empty') diff --git a/tests/acceptance/linux_initrd.py b/tests/acceptance/linux_initrd.py index c61d9826a4..158ec4d46c 100644 --- a/tests/acceptance/linux_initrd.py +++ b/tests/acceptance/linux_initrd.py @@ -10,7 +10,6 @@ import logging import tempfile -from avocado.utils.process import run from avocado_qemu import Test @@ -41,13 +40,15 @@ class LinuxInitrd(Test): initrd.seek(max_size) initrd.write(b'\0') initrd.flush() - cmd = "%s -kernel %s -initrd %s -m 4096" % ( - self.qemu_bin, kernel_path, initrd.name) - res = run(cmd, ignore_status=True) - self.assertEqual(res.exit_status, 1) + self.vm.add_args('-kernel', kernel_path, '-initrd', initrd.name, + '-m', '4096') + self.vm.set_qmp_monitor(disabled=True) + self.vm.launch() + self.vm.wait() + self.assertEqual(self.vm.exitcode(), 1) expected_msg = r'.*initrd is too large.*max: \d+, need %s.*' % ( max_size + 1) - self.assertRegex(res.stderr_text, expected_msg) + self.assertRegex(self.vm.get_log(), expected_msg) def test_with_2gib_file_should_work_with_linux_v4_16(self): """
On linux_initrd and empty_cpu_model tests the same effect of calling QEMU through run() to inspect the terminated process is achieved with a sequence of set_qmp_monitor() / launch() / wait() commands on an QEMUMachine object. This patch changes those tests to use QEMUMachine instead, so they follow the same pattern to launch QEMU found on other acceptance tests. Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com> --- tests/acceptance/empty_cpu_model.py | 13 +++++++------ tests/acceptance/linux_initrd.py | 13 +++++++------ 2 files changed, 14 insertions(+), 12 deletions(-)