Skip to content

Commit 81b0ee6

Browse files
committed
qemu: Convert qemu-44x to use qemu_main()
1 parent 12bc2af commit 81b0ee6

2 files changed

Lines changed: 22 additions & 40 deletions

File tree

lib/qemu.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@ def apply_defaults(self):
7575
self.cpuinfo = 'PowerMac3,1 MacRISC MacRISC2 Power Macintosh'
7676
elif self.machine == 'g3beige':
7777
self.cpuinfo = 'AAPL,PowerMac G3 MacRISC'
78+
elif self.machine == 'bamboo':
79+
self.cpuinfo = 'PowerPC 44x Platform'
7880

7981
if self.qemu_path is None:
8082
if self.machine_is('pseries') or self.machine_is('powernv'):
@@ -197,6 +199,12 @@ def cmd(self):
197199
return ' '.join(l)
198200

199201

202+
def qemu_monitor_shutdown(p):
203+
p.send('\x01c') # invoke qemu monitor
204+
p.expect('\(qemu\)')
205+
p.send('quit')
206+
207+
200208
def get_qemu(name='qemu-system-ppc64'):
201209
qemu = get_env_var(name.upper().replace('-', '_'))
202210
if qemu is None:

scripts/boot/qemu-44x

Lines changed: 14 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -18,55 +18,29 @@ import logging
1818
import os, sys
1919
sys.path.append(f'{os.path.dirname(sys.argv[0])}/../../lib')
2020

21-
from qemu import qemu_command, qemu_net_setup
22-
from pexpect_utils import *
23-
from utils import *
21+
from qemu import QemuConfig, qemu_main, qemu_monitor_shutdown
22+
from utils import setup_logging
2423

2524

2625
def main():
2726
setup_logging()
28-
setup_timeout(60)
2927

30-
expected_release = get_expected_release()
31-
if expected_release is None:
32-
return False
28+
qconf = QemuConfig('bamboo')
29+
qconf.configure_from_env()
30+
qconf.configure_from_args(sys.argv[1:])
31+
qconf.net_tests = False
32+
qconf.smp = 1
3333

34-
vmlinux = get_vmlinux()
35-
if vmlinux is None:
36-
return False
34+
def shutdown(p):
35+
p.send('poweroff')
36+
p.expect('System Halted, OK to turn off power')
37+
qemu_monitor_shutdown(p)
3738

38-
p = PexpectHelper()
39-
cmd = qemu_command(qemu='qemu-system-ppc', machine='bamboo', vmlinux=vmlinux,
40-
cmdline='noreboot')
41-
p.spawn(cmd, logfile=open('console.log', 'w'))
39+
qconf.shutdown = shutdown
4240

43-
standard_boot(p)
41+
qconf.apply_defaults()
4442

45-
p.send("echo -n 'booted-revision: '; uname -r")
46-
p.expect(f'booted-revision: {expected_release}')
47-
p.expect_prompt()
48-
49-
p.send('cat /proc/cpuinfo')
50-
p.expect("PowerPC 44x Platform")
51-
p.expect_prompt()
52-
53-
if os.environ.get('QEMU_NET_TESTS', True) != '0':
54-
qemu_net_setup(p)
55-
ping_test(p, check=False)
56-
wget_test(p)
57-
58-
p.send('echo o > /proc/sysrq-trigger')
59-
p.expect('System Halted, OK to turn off power')
60-
61-
p.terminate()
62-
63-
if filter_log_warnings(open('console.log'), open('warnings.txt', 'w')):
64-
logging.error('Errors/warnings seen in console.log')
65-
return False
66-
67-
logging.info('Test completed OK')
68-
69-
return True
43+
return qemu_main(qconf)
7044

7145

7246
sys.exit(0 if main() else 1)

0 commit comments

Comments
 (0)