Message ID | 20210203172357.1422425-22-crosa@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Acceptance Test: introduce base class for Linux based tests | expand |
On Wed, Feb 3, 2021 at 9:51 PM Cleber Rosa <crosa@redhat.com> wrote: > > Even though there are qtest based tests for hotplugging CPUs (from > which this test took some inspiration from), this one adds checks > from a Linux guest point of view. > > It should also serve as an example for tests that follow a similar > pattern and need to interact with QEMU (via qmp) and with the Linux > guest via SSH. > > Signed-off-by: Cleber Rosa <crosa@redhat.com> Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com> > --- > tests/acceptance/hotplug_cpu.py | 38 +++++++++++++++++++++++++++++++++ > 1 file changed, 38 insertions(+) > create mode 100644 tests/acceptance/hotplug_cpu.py > > diff --git a/tests/acceptance/hotplug_cpu.py b/tests/acceptance/hotplug_cpu.py > new file mode 100644 > index 0000000000..a22b264b4b > --- /dev/null > +++ b/tests/acceptance/hotplug_cpu.py > @@ -0,0 +1,38 @@ > +# Functional test that hotplugs a CPU and checks it on a Linux guest > +# > +# Copyright (c) 2021 Red Hat, Inc. > +# > +# Author: > +# Cleber Rosa <crosa@redhat.com> > +# > +# This work is licensed under the terms of the GNU GPL, version 2 or > +# later. See the COPYING file in the top-level directory. > + > +from avocado_qemu import LinuxTest > + > + > +class HotPlugCPU(LinuxTest): > + > + def test(self): > + """ > + :avocado: tags=arch:x86_64 > + :avocado: tags=machine:q35 > + :avocado: tags=accel:kvm > + """ > + self.require_accelerator('kvm') > + self.vm.add_args('-accel', 'kvm') > + self.vm.add_args('-cpu', 'Haswell') > + self.vm.add_args('-smp', '1,sockets=1,cores=2,threads=1,maxcpus=2') > + self.launch_and_wait() > + > + self.ssh_connect('root', self.ssh_key) > + self.ssh_command('test -e /sys/devices/system/cpu/cpu0') > + with self.assertRaises(AssertionError): > + self.ssh_command('test -e /sys/devices/system/cpu/cpu1') > + > + self.vm.command('device_add', > + driver='Haswell-x86_64-cpu', > + socket_id=0, > + core_id=1, > + thread_id=0) > + self.ssh_command('test -e /sys/devices/system/cpu/cpu1') > -- > 2.25.4 > >
On Wed, Feb 3, 2021 at 2:25 PM Cleber Rosa <crosa@redhat.com> wrote: > > Even though there are qtest based tests for hotplugging CPUs (from > which this test took some inspiration from), this one adds checks > from a Linux guest point of view. > > It should also serve as an example for tests that follow a similar > pattern and need to interact with QEMU (via qmp) and with the Linux > guest via SSH. > > Signed-off-by: Cleber Rosa <crosa@redhat.com> > --- > tests/acceptance/hotplug_cpu.py | 38 +++++++++++++++++++++++++++++++++ > 1 file changed, 38 insertions(+) > create mode 100644 tests/acceptance/hotplug_cpu.py > Reviewed-by: Willian Rampazzo <willianr@redhat.com>
diff --git a/tests/acceptance/hotplug_cpu.py b/tests/acceptance/hotplug_cpu.py new file mode 100644 index 0000000000..a22b264b4b --- /dev/null +++ b/tests/acceptance/hotplug_cpu.py @@ -0,0 +1,38 @@ +# Functional test that hotplugs a CPU and checks it on a Linux guest +# +# Copyright (c) 2021 Red Hat, Inc. +# +# Author: +# Cleber Rosa <crosa@redhat.com> +# +# This work is licensed under the terms of the GNU GPL, version 2 or +# later. See the COPYING file in the top-level directory. + +from avocado_qemu import LinuxTest + + +class HotPlugCPU(LinuxTest): + + def test(self): + """ + :avocado: tags=arch:x86_64 + :avocado: tags=machine:q35 + :avocado: tags=accel:kvm + """ + self.require_accelerator('kvm') + self.vm.add_args('-accel', 'kvm') + self.vm.add_args('-cpu', 'Haswell') + self.vm.add_args('-smp', '1,sockets=1,cores=2,threads=1,maxcpus=2') + self.launch_and_wait() + + self.ssh_connect('root', self.ssh_key) + self.ssh_command('test -e /sys/devices/system/cpu/cpu0') + with self.assertRaises(AssertionError): + self.ssh_command('test -e /sys/devices/system/cpu/cpu1') + + self.vm.command('device_add', + driver='Haswell-x86_64-cpu', + socket_id=0, + core_id=1, + thread_id=0) + self.ssh_command('test -e /sys/devices/system/cpu/cpu1')
Even though there are qtest based tests for hotplugging CPUs (from which this test took some inspiration from), this one adds checks from a Linux guest point of view. It should also serve as an example for tests that follow a similar pattern and need to interact with QEMU (via qmp) and with the Linux guest via SSH. Signed-off-by: Cleber Rosa <crosa@redhat.com> --- tests/acceptance/hotplug_cpu.py | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 tests/acceptance/hotplug_cpu.py