Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 1 | # 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 | |
| 11 | import os |
| 12 | |
Cleber Rosa | 6dd7457 | 2021-02-03 12:23:49 -0500 | [diff] [blame] | 13 | from avocado_qemu import LinuxTest, BUILD_DIR |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 14 | |
Alex Bennée | 9b45cc9 | 2023-12-01 09:36:28 +0000 | [diff] [blame] | 15 | from avocado import skipUnless |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 16 | |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 17 | |
Cleber Rosa | 6dd7457 | 2021-02-03 12:23:49 -0500 | [diff] [blame] | 18 | class BootLinuxX8664(LinuxTest): |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 19 | """ |
| 20 | :avocado: tags=arch:x86_64 |
| 21 | """ |
Alex Bennée | e602563 | 2022-10-27 19:36:12 +0100 | [diff] [blame] | 22 | timeout = 480 |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 23 | |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 24 | def test_pc_i440fx_tcg(self): |
| 25 | """ |
| 26 | :avocado: tags=machine:pc |
| 27 | :avocado: tags=accel:tcg |
| 28 | """ |
Cleber Rosa | efe30d5 | 2021-02-03 12:23:51 -0500 | [diff] [blame] | 29 | self.require_accelerator("tcg") |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 30 | self.vm.add_args("-accel", "tcg") |
Cleber Rosa | c6620c4 | 2021-04-12 00:46:40 -0400 | [diff] [blame] | 31 | self.launch_and_wait(set_up_ssh_connection=False) |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 32 | |
| 33 | def test_pc_i440fx_kvm(self): |
| 34 | """ |
| 35 | :avocado: tags=machine:pc |
| 36 | :avocado: tags=accel:kvm |
| 37 | """ |
Cleber Rosa | efe30d5 | 2021-02-03 12:23:51 -0500 | [diff] [blame] | 38 | self.require_accelerator("kvm") |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 39 | self.vm.add_args("-accel", "kvm") |
Cleber Rosa | c6620c4 | 2021-04-12 00:46:40 -0400 | [diff] [blame] | 40 | self.launch_and_wait(set_up_ssh_connection=False) |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 41 | |
| 42 | def test_pc_q35_tcg(self): |
| 43 | """ |
| 44 | :avocado: tags=machine:q35 |
| 45 | :avocado: tags=accel:tcg |
| 46 | """ |
Cleber Rosa | efe30d5 | 2021-02-03 12:23:51 -0500 | [diff] [blame] | 47 | self.require_accelerator("tcg") |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 48 | self.vm.add_args("-accel", "tcg") |
Cleber Rosa | c6620c4 | 2021-04-12 00:46:40 -0400 | [diff] [blame] | 49 | self.launch_and_wait(set_up_ssh_connection=False) |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 50 | |
| 51 | def test_pc_q35_kvm(self): |
| 52 | """ |
| 53 | :avocado: tags=machine:q35 |
| 54 | :avocado: tags=accel:kvm |
| 55 | """ |
Cleber Rosa | efe30d5 | 2021-02-03 12:23:51 -0500 | [diff] [blame] | 56 | self.require_accelerator("kvm") |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 57 | self.vm.add_args("-accel", "kvm") |
Cleber Rosa | c6620c4 | 2021-04-12 00:46:40 -0400 | [diff] [blame] | 58 | self.launch_and_wait(set_up_ssh_connection=False) |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 59 | |
| 60 | |
Alex Bennée | dbba45e | 2023-02-03 18:16:32 +0000 | [diff] [blame] | 61 | # 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 Rosa | 6dd7457 | 2021-02-03 12:23:49 -0500 | [diff] [blame] | 64 | class BootLinuxAarch64(LinuxTest): |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 65 | """ |
| 66 | :avocado: tags=arch:aarch64 |
| 67 | :avocado: tags=machine:virt |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 68 | """ |
Peter Maydell | c446252 | 2022-11-21 11:45:13 +0000 | [diff] [blame] | 69 | timeout = 720 |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 70 | |
Alex Bennée | e8d61f7 | 2021-06-23 11:27:42 +0100 | [diff] [blame] | 71 | def test_virt_kvm(self): |
Philippe Mathieu-Daudé | 9923375 | 2020-09-29 21:33:07 +0200 | [diff] [blame] | 72 | """ |
| 73 | :avocado: tags=accel:kvm |
| 74 | :avocado: tags=cpu:host |
Philippe Mathieu-Daudé | 9923375 | 2020-09-29 21:33:07 +0200 | [diff] [blame] | 75 | """ |
Cleber Rosa | efe30d5 | 2021-02-03 12:23:51 -0500 | [diff] [blame] | 76 | self.require_accelerator("kvm") |
Philippe Mathieu-Daudé | 9923375 | 2020-09-29 21:33:07 +0200 | [diff] [blame] | 77 | self.vm.add_args("-accel", "kvm") |
Alex Bennée | e8d61f7 | 2021-06-23 11:27:42 +0100 | [diff] [blame] | 78 | self.vm.add_args("-machine", "virt,gic-version=host") |
Alex Bennée | dbba45e | 2023-02-03 18:16:32 +0000 | [diff] [blame] | 79 | 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 Rosa | c6620c4 | 2021-04-12 00:46:40 -0400 | [diff] [blame] | 84 | self.launch_and_wait(set_up_ssh_connection=False) |
Philippe Mathieu-Daudé | 9923375 | 2020-09-29 21:33:07 +0200 | [diff] [blame] | 85 | |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 86 | |
Alex Bennée | c0c8687 | 2023-02-28 19:06:53 +0000 | [diff] [blame] | 87 | # See the tux_baseline.py tests for almost the same coverage in a lot |
| 88 | # less time. |
Cleber Rosa | 6dd7457 | 2021-02-03 12:23:49 -0500 | [diff] [blame] | 89 | class BootLinuxPPC64(LinuxTest): |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 90 | """ |
| 91 | :avocado: tags=arch:ppc64 |
| 92 | """ |
| 93 | |
Peter Maydell | 5d25e1e | 2022-11-17 17:25:27 +0000 | [diff] [blame] | 94 | timeout = 360 |
Alex Bennée | b247dba | 2022-09-14 16:59:25 +0100 | [diff] [blame] | 95 | |
Nicholas Piggin | e5f1500 | 2023-12-29 22:24:14 +1000 | [diff] [blame] | 96 | @skipUnless(os.getenv('SPEED') == 'slow', 'runtime limited') |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 97 | def test_pseries_tcg(self): |
| 98 | """ |
| 99 | :avocado: tags=machine:pseries |
| 100 | :avocado: tags=accel:tcg |
| 101 | """ |
Cleber Rosa | efe30d5 | 2021-02-03 12:23:51 -0500 | [diff] [blame] | 102 | self.require_accelerator("tcg") |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 103 | self.vm.add_args("-accel", "tcg") |
Cleber Rosa | c6620c4 | 2021-04-12 00:46:40 -0400 | [diff] [blame] | 104 | self.launch_and_wait(set_up_ssh_connection=False) |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 105 | |
Nicholas Piggin | 9bf9479 | 2023-10-03 10:42:45 +1000 | [diff] [blame] | 106 | 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 Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 115 | |
Cleber Rosa | 6dd7457 | 2021-02-03 12:23:49 -0500 | [diff] [blame] | 116 | class BootLinuxS390X(LinuxTest): |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 117 | """ |
| 118 | :avocado: tags=arch:s390x |
| 119 | """ |
| 120 | |
Alex Bennée | 06a4c9c | 2022-09-14 16:59:24 +0100 | [diff] [blame] | 121 | timeout = 240 |
| 122 | |
Nicholas Piggin | e5f1500 | 2023-12-29 22:24:14 +1000 | [diff] [blame] | 123 | @skipUnless(os.getenv('SPEED') == 'slow', 'runtime limited') |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 124 | def test_s390_ccw_virtio_tcg(self): |
| 125 | """ |
| 126 | :avocado: tags=machine:s390-ccw-virtio |
| 127 | :avocado: tags=accel:tcg |
| 128 | """ |
Cleber Rosa | efe30d5 | 2021-02-03 12:23:51 -0500 | [diff] [blame] | 129 | self.require_accelerator("tcg") |
Cleber Rosa | 6fd52d6 | 2020-03-17 10:16:53 -0400 | [diff] [blame] | 130 | self.vm.add_args("-accel", "tcg") |
Cleber Rosa | c6620c4 | 2021-04-12 00:46:40 -0400 | [diff] [blame] | 131 | self.launch_and_wait(set_up_ssh_connection=False) |