diff mbox series

[v4,5/8] test/acceptance: boot_linux_console: Add boot Linux/ppc64le with KVM

Message ID 20200205203250.30526-6-wainersm@redhat.com (mailing list archive)
State New, archived
Headers show
Series Acceptance tests: boot Linux with KVM test | expand

Commit Message

Wainer dos Santos Moschetta Feb. 5, 2020, 8:32 p.m. UTC
Likewise this splitted the boot Linux for ppc64le test in a version
for KVM and another for TCG.

The kvm test case is designed to run on POWER8 or greater, otherwise
it is skipped. The SMT should be off on POWER8, that is also checked.

Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
---
 tests/acceptance/boot_linux_console.py | 39 ++++++++++++++++++++++----
 1 file changed, 34 insertions(+), 5 deletions(-)
diff mbox series

Patch

diff --git a/tests/acceptance/boot_linux_console.py b/tests/acceptance/boot_linux_console.py
index 76a66ee533..ca385c90a4 100644
--- a/tests/acceptance/boot_linux_console.py
+++ b/tests/acceptance/boot_linux_console.py
@@ -19,6 +19,8 @@  from avocado_qemu import exec_command_and_wait_for_pattern
 from avocado_qemu import wait_for_console_pattern
 from avocado.utils import process
 from avocado.utils import archive
+from avocado.utils.cpu import get_cpu_vendor_name
+from avocado.utils.path import find_command
 
 
 class BootLinuxConsole(Test):
@@ -551,11 +553,7 @@  class BootLinuxConsole(Test):
         console_pattern = 'Kernel command line: %s' % kernel_command_line
         self.wait_for_console_pattern(console_pattern)
 
-    def test_ppc64_pseries(self):
-        """
-        :avocado: tags=arch:ppc64
-        :avocado: tags=machine:pseries
-        """
+    def do_test_ppc64_pseries(self):
         kernel_url = ('https://archives.fedoraproject.org/pub/archive'
                       '/fedora-secondary/releases/29/Everything/ppc64le/os'
                       '/ppc/ppc64/vmlinuz')
@@ -570,6 +568,37 @@  class BootLinuxConsole(Test):
         console_pattern = 'Kernel command line: %s' % kernel_command_line
         self.wait_for_console_pattern(console_pattern)
 
+    @skipUnless(find_command('ppc64_cpu', default=False))
+    def test_ppc64_pseries_kvm(self):
+        """
+        :avocado: tags=arch:ppc64
+        :avocado: tags=machine:pseries
+        :avocado: tags=accel:kvm
+
+        It assumes running on POWER8 or greater, otherwise skip the test.
+        If on POWER8 then SMT should be off, otherwise skip the test.
+        """
+        cpu = get_cpu_vendor_name()
+        if not cpu.startswith('power'):
+            self.cancel('do not test with %s cpu' % cpu)
+        else:
+            version = int(cpu.replace('power', ''))
+            if version < 8:
+                self.cancel('cpu %s is not >= POWER8')
+            elif version == 8:
+                smt = process.run('ppc64_cpu --smt -n').stdout_text.strip()
+                if smt != 'SMT=1':
+                    self.cancel('%s on POWER8' % smt)
+        self.do_test_ppc64_pseries()
+
+    def test_ppc64_pseries_tcg(self):
+        """
+        :avocado: tags=arch:ppc64
+        :avocado: tags=machine:pseries
+        :avocado: tags=accel:tcg
+        """
+        self.do_test_ppc64_pseries()
+
     def test_m68k_q800(self):
         """
         :avocado: tags=arch:m68k