test-shutdown: apply "ruff format"

This commit is contained in:
Yu Watanabe
2026-05-18 02:44:46 +09:00
parent 1b94d7d7ec
commit 6e4c7f91f9
+54 -27
View File
@@ -13,27 +13,34 @@ import pexpect
def run(args):
ret = 1
logger = logging.getLogger("test-shutdown")
logger = logging.getLogger('test-shutdown')
logfile = None
if args.logfile:
logger.debug("Logging pexpect IOs to %s", args.logfile)
logger.debug('Logging pexpect IOs to %s', args.logfile)
logfile = open(args.logfile, 'w')
elif args.verbose:
logfile = sys.stdout
logger.info("spawning test")
console = pexpect.spawn(args.command, args.arg, logfile=logfile, env={
"TERM": "dumb",
}, encoding='utf-8', timeout=60)
logger.info('spawning test')
console = pexpect.spawn(
args.command,
args.arg,
logfile=logfile,
env={
'TERM': 'dumb',
},
encoding='utf-8',
timeout=60,
)
logger.debug("child pid %d", console.pid)
logger.debug('child pid %d', console.pid)
try:
logger.info("waiting for login prompt")
logger.info('waiting for login prompt')
console.expect('H login: ', 10)
logger.info("log in and start screen")
logger.info('log in and start screen')
console.sendline('root')
console.expect('bash.*# ', 10)
console.sendline('screen')
@@ -46,42 +53,42 @@ def run(args):
console.sendline('systemctl is-system-running --wait')
console.expect(r'\b(running|degraded)\b', 60)
# console.interact()
# console.interact()
console.sendline('tty')
console.expect(r'/dev/(pts/\d+)')
pty = console.match.group(1)
logger.info("window 1 at tty %s", pty)
logger.info('window 1 at tty %s', pty)
logger.info("schedule reboot")
logger.info('schedule reboot')
console.sendline('shutdown -r')
console.expect("Reboot scheduled for (?P<date>.*), use 'shutdown -c' to cancel", 2)
date = console.match.group('date')
logger.info("reboot scheduled for %s", date)
logger.info('reboot scheduled for %s', date)
console.sendcontrol('a')
console.send('0')
logger.info("verify broadcast message")
logger.info('verify broadcast message')
console.expect(f'Broadcast message from root@H on {pty}', 2)
console.expect(f'The system will reboot at {date}', 2)
logger.info("check show output")
logger.info('check show output')
console.sendline('shutdown --show')
console.expect(f"Reboot scheduled for {date}, use 'shutdown -c' to cancel", 2)
logger.info("cancel shutdown")
logger.info('cancel shutdown')
console.sendline('shutdown -c')
console.sendcontrol('a')
console.send('1')
console.expect('System shutdown has been cancelled', 2)
logger.info("call for reboot")
logger.info('call for reboot')
console.sendline('sleep 10; shutdown -r now')
console.sendcontrol('a')
console.send('0')
console.expect("The system will reboot now!", 12)
console.expect('The system will reboot now!', 12)
logger.info("waiting for reboot")
logger.info('waiting for reboot')
console.expect('H login: ', 60)
console.sendline('root')
@@ -89,16 +96,16 @@ def run(args):
console.sendline('> /testok')
logger.info("power off")
logger.info('power off')
console.sendline('poweroff')
logger.info("expect termination now")
logger.info('expect termination now')
console.expect(pexpect.EOF)
ret = 0
except Exception as e:
logger.error(e)
logger.info("killing child pid %d", console.pid)
logger.info('killing child pid %d', console.pid)
# Ask systemd-nspawn to stop and release the container's resources properly.
console.kill(signal.SIGTERM)
@@ -116,12 +123,31 @@ def run(args):
return ret
def main():
parser = argparse.ArgumentParser(description='test logind shutdown feature')
parser.add_argument("-v", "--verbose", action="store_true", help="verbose")
parser.add_argument("--logfile", metavar='FILE', help="Save all test input/output to the given path")
parser.add_argument("command", help="command to run")
parser.add_argument("arg", nargs='*', help="args for command")
parser = argparse.ArgumentParser(
description='test logind shutdown feature',
)
parser.add_argument(
'-v',
'--verbose',
action='store_true',
help='verbose',
)
parser.add_argument(
'--logfile',
metavar='FILE',
help='Save all test input/output to the given path',
)
parser.add_argument(
'command',
help='command to run',
)
parser.add_argument(
'arg',
nargs='*',
help='args for command',
)
args = parser.parse_args()
@@ -134,6 +160,7 @@ def main():
return run(args)
if __name__ == '__main__':
sys.exit(main())