@ -1,3 +1,5 @@
#!/usr/bin/env python3
#
# Test that Linux kernel boots on ppc machines and check the console
#
# Copyright (c) 2018, 2020 Red Hat, Inc.
@ -5,9 +7,8 @@
# 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 . utils import archive
from avocado_qemu import QemuSystemTest
from avocado_qemu import wait_for_console_pattern
from qemu_test import QemuSystemTest , Asset
from qemu_test import wait_for_console_pattern
class pseriesMachine ( QemuSystemTest ) :
@ -16,12 +17,13 @@ class pseriesMachine(QemuSystemTest):
panic_message = ' Kernel panic - not syncing '
good_message = ' VFS: Cannot open root device '
ASSET_KERNEL = Asset (
( ' https://archives.fedoraproject.org/pub/archive/fedora-secondary/ '
' releases/29/Everything/ppc64le/os/ppc/ppc64/vmlinuz ' ) ,
' 383c2f5c23bc0d9d32680c3924d3fd7ee25cc5ef97091ac1aa5e1d853422fc5f ' )
def do_test_ppc64_linux_boot ( self , kernel_command_line = KERNEL_COMMON_COMMAND_LINE ) :
kernel_url = ( ' https://archives.fedoraproject.org/pub/archive '
' /fedora-secondary/releases/29/Everything/ppc64le/os '
' /ppc/ppc64/vmlinuz ' )
kernel_hash = ' 3fe04abfc852b66653b8c3c897a59a689270bc77 '
kernel_path = self . fetch_asset ( kernel_url , asset_hash = kernel_hash )
kernel_path = self . ASSET_KERNEL . fetch ( )
self . vm . set_console ( )
self . vm . add_args ( ' -kernel ' , kernel_path ,
@ -29,32 +31,20 @@ class pseriesMachine(QemuSystemTest):
self . vm . launch ( )
def test_ppc64_vof_linux_boot ( self ) :
"""
: avocado : tags = arch : ppc64
: avocado : tags = machine : pseries
"""
self . set_machine ( ' pseries ' )
self . vm . add_args ( ' -machine ' , ' x-vof=on ' )
self . do_test_ppc64_linux_boot ( )
console_pattern = ' VFS: Cannot open root device '
wait_for_console_pattern ( self , console_pattern , self . panic_message )
def test_ppc64_linux_boot ( self ) :
"""
: avocado : tags = arch : ppc64
: avocado : tags = machine : pseries
"""
self . set_machine ( ' pseries ' )
self . do_test_ppc64_linux_boot ( )
console_pattern = ' VFS: Cannot open root device '
wait_for_console_pattern ( self , console_pattern , self . panic_message )
def test_ppc64_linux_smp_boot ( self ) :
"""
: avocado : tags = arch : ppc64
: avocado : tags = machine : pseries
"""
self . set_machine ( ' pseries ' )
self . vm . add_args ( ' -smp ' , ' 4 ' )
self . do_test_ppc64_linux_boot ( )
console_pattern = ' smp: Brought up 1 node, 4 CPUs '
@ -62,11 +52,7 @@ class pseriesMachine(QemuSystemTest):
wait_for_console_pattern ( self , self . good_message , self . panic_message )
def test_ppc64_linux_hpt_smp_boot ( self ) :
"""
: avocado : tags = arch : ppc64
: avocado : tags = machine : pseries
"""
self . set_machine ( ' pseries ' )
self . vm . add_args ( ' -smp ' , ' 4 ' )
self . do_test_ppc64_linux_boot ( self . KERNEL_COMMON_COMMAND_LINE +
' disable_radix ' )
@ -77,11 +63,6 @@ class pseriesMachine(QemuSystemTest):
wait_for_console_pattern ( self , self . good_message , self . panic_message )
def test_ppc64_linux_smt_boot ( self ) :
"""
: avocado : tags = arch : ppc64
: avocado : tags = machine : pseries
"""
self . vm . add_args ( ' -smp ' , ' 4,threads=4 ' )
self . do_test_ppc64_linux_boot ( )
console_pattern = ' CPU maps initialized for 4 threads per core '
@ -91,11 +72,7 @@ class pseriesMachine(QemuSystemTest):
wait_for_console_pattern ( self , self . good_message , self . panic_message )
def test_ppc64_linux_big_boot ( self ) :
"""
: avocado : tags = arch : ppc64
: avocado : tags = machine : pseries
"""
self . set_machine ( ' pseries ' )
self . vm . add_args ( ' -smp ' , ' 16,threads=4,cores=2,sockets=2 ' )
self . vm . add_args ( ' -m ' , ' 512M ' ,
' -object ' , ' memory-backend-ram,size=256M,id=m0 ' ,
@ -108,3 +85,6 @@ class pseriesMachine(QemuSystemTest):
console_pattern = ' smp: Brought up 2 nodes, 16 CPUs '
wait_for_console_pattern ( self , console_pattern , self . panic_message )
wait_for_console_pattern ( self , self . good_message , self . panic_message )
if __name__ == ' __main__ ' :
QemuSystemTest . main ( )