12
12
from qemu_test import QemuSystemTest , Asset
13
13
from qemu_test import wait_for_console_pattern , exec_command
14
14
from qemu_test import skipIfMissingCommands , skipBigDataTest
15
+ from qemu_test import exec_command_and_wait_for_pattern
15
16
import os
16
17
import time
17
18
import subprocess
@@ -73,31 +74,28 @@ def do_start_alpine(self):
73
74
"id=drive0,read-only=true" )
74
75
75
76
self .vm .launch ()
76
- wait_for_console_pattern (self , 'Welcome to Alpine Linux 3.18' )
77
- exec_command (self , 'root' )
77
+ ps1 = 'localhost:~#'
78
78
wait_for_console_pattern (self , 'localhost login:' )
79
- wait_for_console_pattern (self , 'You may change this message by editing /etc/motd.' )
79
+ exec_command_and_wait_for_pattern (self , 'root' , ps1 )
80
80
# If the time is wrong, SSL certificates can fail.
81
- exec_command (self , 'date -s "' + datetime .utcnow ().strftime ('%Y-%m-%d %H:%M:%S' + '"' ))
82
- exec_command ( self , 'setup- alpine -qe' )
83
- wait_for_console_pattern (self , 'Updating repository indexes... done.' )
81
+ exec_command_and_wait_for_pattern (self , 'date -s "' + datetime .utcnow ().strftime ('%Y-%m-%d %H:%M:%S' + '"' ), ps1 )
82
+ ps1 = ' alpine:~#'
83
+ exec_command_and_wait_for_pattern (self , 'setup-alpine -qe' , ps1 )
84
84
85
85
def do_stop_alpine (self ):
86
- exec_command (self , 'poweroff ' )
86
+ exec_command (self , 'echo "TEST ME" ' )
87
87
wait_for_console_pattern (self , 'alpine:~#' )
88
+ exec_command (self , 'poweroff' )
89
+ wait_for_console_pattern (self , 'reboot: Power down' )
88
90
self .vm .wait ()
89
91
90
92
def do_setup_kvm (self ):
91
- exec_command (self , 'echo http://dl-cdn.alpinelinux.org/alpine/v3.18/main > /etc/apk/repositories' )
92
- wait_for_console_pattern (self , 'alpine:~#' )
93
- exec_command (self , 'echo http://dl-cdn.alpinelinux.org/alpine/v3.18/community >> /etc/apk/repositories' )
94
- wait_for_console_pattern (self , 'alpine:~#' )
95
- exec_command (self , 'apk update' )
96
- wait_for_console_pattern (self , 'alpine:~#' )
97
- exec_command (self , 'apk add qemu-system-ppc64' )
98
- wait_for_console_pattern (self , 'alpine:~#' )
99
- exec_command (self , 'modprobe kvm-hv' )
100
- wait_for_console_pattern (self , 'alpine:~#' )
93
+ ps1 = 'alpine:~#'
94
+ exec_command_and_wait_for_pattern (self , 'echo http://dl-cdn.alpinelinux.org/alpine/v3.18/main > /etc/apk/repositories' , ps1 )
95
+ exec_command_and_wait_for_pattern (self , 'echo http://dl-cdn.alpinelinux.org/alpine/v3.18/community >> /etc/apk/repositories' , ps1 )
96
+ exec_command_and_wait_for_pattern (self , 'apk update' , ps1 )
97
+ exec_command_and_wait_for_pattern (self , 'apk add qemu-system-ppc64' , ps1 )
98
+ exec_command_and_wait_for_pattern (self , 'modprobe kvm-hv' , ps1 )
101
99
102
100
# This uses the host's block device as the source file for guest block
103
101
# device for install media. This is a bit hacky but allows reuse of the
@@ -116,15 +114,12 @@ def do_test_kvm(self, hpt=False):
116
114
'-kernel /media/nvme0n1/boot/vmlinuz-lts '
117
115
'-append \' usbcore.nousb ' + append + '\' ' )
118
116
# Alpine 3.18 kernel seems to crash in XHCI USB driver.
119
- wait_for_console_pattern (self , 'Welcome to Alpine Linux 3.18' )
120
- exec_command (self , 'root' )
117
+ ps1 = 'localhost:~#'
121
118
wait_for_console_pattern (self , 'localhost login:' )
122
- wait_for_console_pattern (self , 'You may change this message by editing /etc/motd.' )
123
- exec_command (self , 'poweroff >& /dev/null' )
124
- wait_for_console_pattern (self , 'localhost:~#' )
119
+ exec_command_and_wait_for_pattern (self , 'root' , ps1 )
120
+ exec_command (self , 'poweroff' )
125
121
wait_for_console_pattern (self , 'reboot: Power down' )
126
- time .sleep (1 )
127
- exec_command (self , '' )
122
+ # Now wait for the host's prompt to come back
128
123
wait_for_console_pattern (self , 'alpine:~#' )
129
124
130
125
def test_hv_pseries (self ):
0 commit comments