Skip to content

Commit

Permalink
tests/vm: allow wait_ssh() to specify command
Browse files Browse the repository at this point in the history
This allows for waiting for completion of arbitrary commands.

Signed-off-by: Robert Foley <robert.foley@linaro.org>
Reviewed-by: Peter Puhov <peter.puhov@linaro.org>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20200529203458.1038-7-robert.foley@linaro.org>
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
  • Loading branch information
Robert Foley authored and philmd committed May 31, 2020
1 parent e56c450 commit 6ee982c
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions tests/vm/basevm.py
Expand Up @@ -320,24 +320,24 @@ def console_sshd_config(self, prompt):
def print_step(self, text):
sys.stderr.write("### %s ...\n" % text)

def wait_ssh(self, wait_root=False, seconds=300):
def wait_ssh(self, wait_root=False, seconds=300, cmd="exit 0"):
# Allow more time for VM to boot under TCG.
if not kvm_available(self.arch):
seconds *= self.tcg_ssh_timeout_multiplier
starttime = datetime.datetime.now()
endtime = starttime + datetime.timedelta(seconds=seconds)
guest_up = False
cmd_success = False
while datetime.datetime.now() < endtime:
if wait_root and self.ssh_root("exit 0") == 0:
guest_up = True
if wait_root and self.ssh_root(cmd) == 0:
cmd_success = True
break
elif self.ssh("exit 0") == 0:
guest_up = True
elif self.ssh(cmd) == 0:
cmd_success = True
break
seconds = (endtime - datetime.datetime.now()).total_seconds()
logging.debug("%ds before timeout", seconds)
time.sleep(1)
if not guest_up:
if not cmd_success:
raise Exception("Timeout while waiting for guest ssh")

def shutdown(self):
Expand Down

0 comments on commit 6ee982c

Please sign in to comment.