On 3/2/20 7:19 PM, Alex Bennée wrote:
From: Robert Foley <robert.fo...@linaro.org>

Add change to increase timeout waiting for VM to boot.
Needed for some emulation cases where it can take longer
than 5 minutes to boot.

Signed-off-by: Robert Foley <robert.fo...@linaro.org>
Reviewed-by: Alex Bennée <alex.ben...@linaro.org>
Reviewed-by: Peter Puhov <peter.pu...@linaro.org>
Signed-off-by: Alex Bennée <alex.ben...@linaro.org>
Message-Id: <20200219163537.22098-4-robert.fo...@linaro.org>
---
  tests/vm/basevm.py | 7 +++++++
  1 file changed, 7 insertions(+)

diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index c99725b8c0d..5ca445e29af 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -57,6 +57,10 @@ class BaseVM(object):
      poweroff = "poweroff"
      # enable IPv6 networking
      ipv6 = True
+    # Scale up some timeouts under TCG.
+    # 4 is arbitrary, but greater than 2,
+    # since we found we need to wait more than twice as long.
+    tcg_ssh_timeout_multiplier = 4
      def __init__(self, debug=False, vcpus=None):
          self._guest = None
          self._tmpdir = os.path.realpath(tempfile.mkdtemp(prefix="vm-test-",
@@ -309,6 +313,9 @@ class BaseVM(object):
          sys.stderr.write("### %s ...\n" % text)
def wait_ssh(self, seconds=300):
+        # 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


A clean way might be to use a QMP socket and poll for networking events, then start counting when the network is up.


Reply via email to