blob: cdce4cbcba0d5869ae15a15acdeb765bcddfddcd [file] [log] [blame]
Cleber Rosa6fd52d62020-03-17 10:16:53 -04001# Functional test that boots a complete Linux system via a cloud image
2#
3# Copyright (c) 2018-2020 Red Hat, Inc.
4#
5# Author:
6# Cleber Rosa <crosa@redhat.com>
7#
8# This work is licensed under the terms of the GNU GPL, version 2 or
9# later. See the COPYING file in the top-level directory.
10
11import os
12
Cleber Rosa6dd74572021-02-03 12:23:49 -050013from avocado_qemu import LinuxTest, BUILD_DIR
Cleber Rosa6fd52d62020-03-17 10:16:53 -040014
Alex Bennée9b45cc92023-12-01 09:36:28 +000015from avocado import skipUnless
Cleber Rosa6fd52d62020-03-17 10:16:53 -040016
Cleber Rosa6fd52d62020-03-17 10:16:53 -040017
Cleber Rosa6dd74572021-02-03 12:23:49 -050018class BootLinuxX8664(LinuxTest):
Cleber Rosa6fd52d62020-03-17 10:16:53 -040019 """
20 :avocado: tags=arch:x86_64
21 """
Alex Bennéee6025632022-10-27 19:36:12 +010022 timeout = 480
Cleber Rosa6fd52d62020-03-17 10:16:53 -040023
Cleber Rosa6fd52d62020-03-17 10:16:53 -040024 def test_pc_i440fx_tcg(self):
25 """
26 :avocado: tags=machine:pc
27 :avocado: tags=accel:tcg
28 """
Cleber Rosaefe30d52021-02-03 12:23:51 -050029 self.require_accelerator("tcg")
Cleber Rosa6fd52d62020-03-17 10:16:53 -040030 self.vm.add_args("-accel", "tcg")
Cleber Rosac6620c42021-04-12 00:46:40 -040031 self.launch_and_wait(set_up_ssh_connection=False)
Cleber Rosa6fd52d62020-03-17 10:16:53 -040032
33 def test_pc_i440fx_kvm(self):
34 """
35 :avocado: tags=machine:pc
36 :avocado: tags=accel:kvm
37 """
Cleber Rosaefe30d52021-02-03 12:23:51 -050038 self.require_accelerator("kvm")
Cleber Rosa6fd52d62020-03-17 10:16:53 -040039 self.vm.add_args("-accel", "kvm")
Cleber Rosac6620c42021-04-12 00:46:40 -040040 self.launch_and_wait(set_up_ssh_connection=False)
Cleber Rosa6fd52d62020-03-17 10:16:53 -040041
42 def test_pc_q35_tcg(self):
43 """
44 :avocado: tags=machine:q35
45 :avocado: tags=accel:tcg
46 """
Cleber Rosaefe30d52021-02-03 12:23:51 -050047 self.require_accelerator("tcg")
Cleber Rosa6fd52d62020-03-17 10:16:53 -040048 self.vm.add_args("-accel", "tcg")
Cleber Rosac6620c42021-04-12 00:46:40 -040049 self.launch_and_wait(set_up_ssh_connection=False)
Cleber Rosa6fd52d62020-03-17 10:16:53 -040050
51 def test_pc_q35_kvm(self):
52 """
53 :avocado: tags=machine:q35
54 :avocado: tags=accel:kvm
55 """
Cleber Rosaefe30d52021-02-03 12:23:51 -050056 self.require_accelerator("kvm")
Cleber Rosa6fd52d62020-03-17 10:16:53 -040057 self.vm.add_args("-accel", "kvm")
Cleber Rosac6620c42021-04-12 00:46:40 -040058 self.launch_and_wait(set_up_ssh_connection=False)
Cleber Rosa6fd52d62020-03-17 10:16:53 -040059
60
Alex Bennéedbba45e2023-02-03 18:16:32 +000061# For Aarch64 we only boot KVM tests in CI as booting the current
62# Fedora OS in TCG tests is very heavyweight. There are lighter weight
63# distros which we use in the machine_aarch64_virt.py tests.
Cleber Rosa6dd74572021-02-03 12:23:49 -050064class BootLinuxAarch64(LinuxTest):
Cleber Rosa6fd52d62020-03-17 10:16:53 -040065 """
66 :avocado: tags=arch:aarch64
67 :avocado: tags=machine:virt
Cleber Rosa6fd52d62020-03-17 10:16:53 -040068 """
Peter Maydellc4462522022-11-21 11:45:13 +000069 timeout = 720
Cleber Rosa6fd52d62020-03-17 10:16:53 -040070
Alex Bennéee8d61f72021-06-23 11:27:42 +010071 def test_virt_kvm(self):
Philippe Mathieu-Daudé99233752020-09-29 21:33:07 +020072 """
73 :avocado: tags=accel:kvm
74 :avocado: tags=cpu:host
Philippe Mathieu-Daudé99233752020-09-29 21:33:07 +020075 """
Cleber Rosaefe30d52021-02-03 12:23:51 -050076 self.require_accelerator("kvm")
Philippe Mathieu-Daudé99233752020-09-29 21:33:07 +020077 self.vm.add_args("-accel", "kvm")
Alex Bennéee8d61f72021-06-23 11:27:42 +010078 self.vm.add_args("-machine", "virt,gic-version=host")
Alex Bennéedbba45e2023-02-03 18:16:32 +000079 self.vm.add_args('-bios',
80 os.path.join(BUILD_DIR, 'pc-bios',
81 'edk2-aarch64-code.fd'))
82 self.vm.add_args('-device', 'virtio-rng-pci,rng=rng0')
83 self.vm.add_args('-object', 'rng-random,id=rng0,filename=/dev/urandom')
Cleber Rosac6620c42021-04-12 00:46:40 -040084 self.launch_and_wait(set_up_ssh_connection=False)
Philippe Mathieu-Daudé99233752020-09-29 21:33:07 +020085
Cleber Rosa6fd52d62020-03-17 10:16:53 -040086
Alex Bennéec0c86872023-02-28 19:06:53 +000087# See the tux_baseline.py tests for almost the same coverage in a lot
88# less time.
Cleber Rosa6dd74572021-02-03 12:23:49 -050089class BootLinuxPPC64(LinuxTest):
Cleber Rosa6fd52d62020-03-17 10:16:53 -040090 """
91 :avocado: tags=arch:ppc64
92 """
93
Peter Maydell5d25e1e2022-11-17 17:25:27 +000094 timeout = 360
Alex Bennéeb247dba2022-09-14 16:59:25 +010095
Nicholas Piggine5f15002023-12-29 22:24:14 +100096 @skipUnless(os.getenv('SPEED') == 'slow', 'runtime limited')
Cleber Rosa6fd52d62020-03-17 10:16:53 -040097 def test_pseries_tcg(self):
98 """
99 :avocado: tags=machine:pseries
100 :avocado: tags=accel:tcg
101 """
Cleber Rosaefe30d52021-02-03 12:23:51 -0500102 self.require_accelerator("tcg")
Cleber Rosa6fd52d62020-03-17 10:16:53 -0400103 self.vm.add_args("-accel", "tcg")
Cleber Rosac6620c42021-04-12 00:46:40 -0400104 self.launch_and_wait(set_up_ssh_connection=False)
Cleber Rosa6fd52d62020-03-17 10:16:53 -0400105
Nicholas Piggin9bf94792023-10-03 10:42:45 +1000106 def test_pseries_kvm(self):
107 """
108 :avocado: tags=machine:pseries
109 :avocado: tags=accel:kvm
110 """
111 self.require_accelerator("kvm")
112 self.vm.add_args("-accel", "kvm")
113 self.vm.add_args("-machine", "cap-ccf-assist=off")
114 self.launch_and_wait(set_up_ssh_connection=False)
Cleber Rosa6fd52d62020-03-17 10:16:53 -0400115
Cleber Rosa6dd74572021-02-03 12:23:49 -0500116class BootLinuxS390X(LinuxTest):
Cleber Rosa6fd52d62020-03-17 10:16:53 -0400117 """
118 :avocado: tags=arch:s390x
119 """
120
Alex Bennée06a4c9c2022-09-14 16:59:24 +0100121 timeout = 240
122
Nicholas Piggine5f15002023-12-29 22:24:14 +1000123 @skipUnless(os.getenv('SPEED') == 'slow', 'runtime limited')
Cleber Rosa6fd52d62020-03-17 10:16:53 -0400124 def test_s390_ccw_virtio_tcg(self):
125 """
126 :avocado: tags=machine:s390-ccw-virtio
127 :avocado: tags=accel:tcg
128 """
Cleber Rosaefe30d52021-02-03 12:23:51 -0500129 self.require_accelerator("tcg")
Cleber Rosa6fd52d62020-03-17 10:16:53 -0400130 self.vm.add_args("-accel", "tcg")
Cleber Rosac6620c42021-04-12 00:46:40 -0400131 self.launch_and_wait(set_up_ssh_connection=False)