1bbbd9b6eSWillian Rampazzo# Functional test that boots a complete Linux system via a cloud image 2bbbd9b6eSWillian Rampazzo# 3bbbd9b6eSWillian Rampazzo# Copyright (c) 2018-2020 Red Hat, Inc. 4bbbd9b6eSWillian Rampazzo# 5bbbd9b6eSWillian Rampazzo# Author: 6bbbd9b6eSWillian Rampazzo# Cleber Rosa <crosa@redhat.com> 7bbbd9b6eSWillian Rampazzo# 8bbbd9b6eSWillian Rampazzo# This work is licensed under the terms of the GNU GPL, version 2 or 9bbbd9b6eSWillian Rampazzo# later. See the COPYING file in the top-level directory. 10bbbd9b6eSWillian Rampazzo 11bbbd9b6eSWillian Rampazzoimport os 12bbbd9b6eSWillian Rampazzo 13*816d4201SThomas Huthfrom avocado_qemu.linuxtest import LinuxTest 14*816d4201SThomas Huthfrom avocado_qemu import BUILD_DIR 15bbbd9b6eSWillian Rampazzo 169b45cc99SAlex Bennéefrom avocado import skipUnless 17bbbd9b6eSWillian Rampazzo 18bbbd9b6eSWillian Rampazzo 19bbbd9b6eSWillian Rampazzoclass BootLinuxX8664(LinuxTest): 20bbbd9b6eSWillian Rampazzo """ 21bbbd9b6eSWillian Rampazzo :avocado: tags=arch:x86_64 22bbbd9b6eSWillian Rampazzo """ 23e6025635SAlex Bennée timeout = 480 24bbbd9b6eSWillian Rampazzo 25bbbd9b6eSWillian Rampazzo def test_pc_i440fx_tcg(self): 26bbbd9b6eSWillian Rampazzo """ 27bbbd9b6eSWillian Rampazzo :avocado: tags=machine:pc 28bbbd9b6eSWillian Rampazzo :avocado: tags=accel:tcg 29bbbd9b6eSWillian Rampazzo """ 30bbbd9b6eSWillian Rampazzo self.require_accelerator("tcg") 31bbbd9b6eSWillian Rampazzo self.vm.add_args("-accel", "tcg") 32bbbd9b6eSWillian Rampazzo self.launch_and_wait(set_up_ssh_connection=False) 33bbbd9b6eSWillian Rampazzo 34bbbd9b6eSWillian Rampazzo def test_pc_i440fx_kvm(self): 35bbbd9b6eSWillian Rampazzo """ 36bbbd9b6eSWillian Rampazzo :avocado: tags=machine:pc 37bbbd9b6eSWillian Rampazzo :avocado: tags=accel:kvm 38bbbd9b6eSWillian Rampazzo """ 39bbbd9b6eSWillian Rampazzo self.require_accelerator("kvm") 40bbbd9b6eSWillian Rampazzo self.vm.add_args("-accel", "kvm") 41bbbd9b6eSWillian Rampazzo self.launch_and_wait(set_up_ssh_connection=False) 42bbbd9b6eSWillian Rampazzo 43bbbd9b6eSWillian Rampazzo def test_pc_q35_tcg(self): 44bbbd9b6eSWillian Rampazzo """ 45bbbd9b6eSWillian Rampazzo :avocado: tags=machine:q35 46bbbd9b6eSWillian Rampazzo :avocado: tags=accel:tcg 47bbbd9b6eSWillian Rampazzo """ 48bbbd9b6eSWillian Rampazzo self.require_accelerator("tcg") 49bbbd9b6eSWillian Rampazzo self.vm.add_args("-accel", "tcg") 50bbbd9b6eSWillian Rampazzo self.launch_and_wait(set_up_ssh_connection=False) 51bbbd9b6eSWillian Rampazzo 52bbbd9b6eSWillian Rampazzo def test_pc_q35_kvm(self): 53bbbd9b6eSWillian Rampazzo """ 54bbbd9b6eSWillian Rampazzo :avocado: tags=machine:q35 55bbbd9b6eSWillian Rampazzo :avocado: tags=accel:kvm 56bbbd9b6eSWillian Rampazzo """ 57bbbd9b6eSWillian Rampazzo self.require_accelerator("kvm") 58bbbd9b6eSWillian Rampazzo self.vm.add_args("-accel", "kvm") 59bbbd9b6eSWillian Rampazzo self.launch_and_wait(set_up_ssh_connection=False) 60bbbd9b6eSWillian Rampazzo 61bbbd9b6eSWillian Rampazzo 62dbba45e6SAlex Bennée# For Aarch64 we only boot KVM tests in CI as booting the current 63dbba45e6SAlex Bennée# Fedora OS in TCG tests is very heavyweight. There are lighter weight 64dbba45e6SAlex Bennée# distros which we use in the machine_aarch64_virt.py tests. 65bbbd9b6eSWillian Rampazzoclass BootLinuxAarch64(LinuxTest): 66bbbd9b6eSWillian Rampazzo """ 67bbbd9b6eSWillian Rampazzo :avocado: tags=arch:aarch64 68bbbd9b6eSWillian Rampazzo :avocado: tags=machine:virt 69bbbd9b6eSWillian Rampazzo """ 70c4462523SPeter Maydell timeout = 720 71bbbd9b6eSWillian Rampazzo 72bbbd9b6eSWillian Rampazzo def test_virt_kvm(self): 73bbbd9b6eSWillian Rampazzo """ 74bbbd9b6eSWillian Rampazzo :avocado: tags=accel:kvm 75bbbd9b6eSWillian Rampazzo :avocado: tags=cpu:host 76bbbd9b6eSWillian Rampazzo """ 77bbbd9b6eSWillian Rampazzo self.require_accelerator("kvm") 78bbbd9b6eSWillian Rampazzo self.vm.add_args("-accel", "kvm") 79bbbd9b6eSWillian Rampazzo self.vm.add_args("-machine", "virt,gic-version=host") 80dbba45e6SAlex Bennée self.vm.add_args('-bios', 81dbba45e6SAlex Bennée os.path.join(BUILD_DIR, 'pc-bios', 82dbba45e6SAlex Bennée 'edk2-aarch64-code.fd')) 83dbba45e6SAlex Bennée self.vm.add_args('-device', 'virtio-rng-pci,rng=rng0') 84dbba45e6SAlex Bennée self.vm.add_args('-object', 'rng-random,id=rng0,filename=/dev/urandom') 85bbbd9b6eSWillian Rampazzo self.launch_and_wait(set_up_ssh_connection=False) 86bbbd9b6eSWillian Rampazzo 87bbbd9b6eSWillian Rampazzo 88c0c8687eSAlex Bennée# See the tux_baseline.py tests for almost the same coverage in a lot 89c0c8687eSAlex Bennée# less time. 90bbbd9b6eSWillian Rampazzoclass BootLinuxPPC64(LinuxTest): 91bbbd9b6eSWillian Rampazzo """ 92bbbd9b6eSWillian Rampazzo :avocado: tags=arch:ppc64 93bbbd9b6eSWillian Rampazzo """ 94bbbd9b6eSWillian Rampazzo 955d25e1e0SPeter Maydell timeout = 360 96b247dba0SAlex Bennée 97e5f15001SNicholas Piggin @skipUnless(os.getenv('SPEED') == 'slow', 'runtime limited') 98bbbd9b6eSWillian Rampazzo def test_pseries_tcg(self): 99bbbd9b6eSWillian Rampazzo """ 100bbbd9b6eSWillian Rampazzo :avocado: tags=machine:pseries 101bbbd9b6eSWillian Rampazzo :avocado: tags=accel:tcg 102bbbd9b6eSWillian Rampazzo """ 103bbbd9b6eSWillian Rampazzo self.require_accelerator("tcg") 104bbbd9b6eSWillian Rampazzo self.vm.add_args("-accel", "tcg") 105bbbd9b6eSWillian Rampazzo self.launch_and_wait(set_up_ssh_connection=False) 106bbbd9b6eSWillian Rampazzo 1079bf94793SNicholas Piggin def test_pseries_kvm(self): 1089bf94793SNicholas Piggin """ 1099bf94793SNicholas Piggin :avocado: tags=machine:pseries 1109bf94793SNicholas Piggin :avocado: tags=accel:kvm 1119bf94793SNicholas Piggin """ 1129bf94793SNicholas Piggin self.require_accelerator("kvm") 1139bf94793SNicholas Piggin self.vm.add_args("-accel", "kvm") 1149bf94793SNicholas Piggin self.vm.add_args("-machine", "cap-ccf-assist=off") 1159bf94793SNicholas Piggin self.launch_and_wait(set_up_ssh_connection=False) 116bbbd9b6eSWillian Rampazzo 117bbbd9b6eSWillian Rampazzoclass BootLinuxS390X(LinuxTest): 118bbbd9b6eSWillian Rampazzo """ 119bbbd9b6eSWillian Rampazzo :avocado: tags=arch:s390x 120bbbd9b6eSWillian Rampazzo """ 121bbbd9b6eSWillian Rampazzo 12206a4c9cfSAlex Bennée timeout = 240 12306a4c9cfSAlex Bennée 124e5f15001SNicholas Piggin @skipUnless(os.getenv('SPEED') == 'slow', 'runtime limited') 125bbbd9b6eSWillian Rampazzo def test_s390_ccw_virtio_tcg(self): 126bbbd9b6eSWillian Rampazzo """ 127bbbd9b6eSWillian Rampazzo :avocado: tags=machine:s390-ccw-virtio 128bbbd9b6eSWillian Rampazzo :avocado: tags=accel:tcg 129bbbd9b6eSWillian Rampazzo """ 130bbbd9b6eSWillian Rampazzo self.require_accelerator("tcg") 131bbbd9b6eSWillian Rampazzo self.vm.add_args("-accel", "tcg") 132bbbd9b6eSWillian Rampazzo self.launch_and_wait(set_up_ssh_connection=False) 133