def run(args):
-
ret = 1
logger = logging.getLogger("test-shutdown")
+ logfile = None
+
+ if 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, env={
- "TERM": "linux",
+ 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.info("waiting for login prompt")
console.expect('H login: ', 10)
- if args.logfile:
- logger.debug("Logging pexpect IOs to %s", args.logfile)
- console.logfile = open(args.logfile, 'w')
- elif args.verbose:
- console.logfile = sys.stdout
-
logger.info("log in and start screen")
console.sendline('root')
console.expect('bash.*# ', 10)
console.send('c')
console.expect('screen1 ', 10)
+ logger.info('wait for the machine to fully boot')
+ console.sendline('systemctl is-system-running --wait')
+ console.expect(r'\b(running|degraded)\b', 60)
+
# console.interact()
console.sendline('tty')