diff mbox series

[v1,03/10] tests/vm: increased max timeout for vm boot.

Message ID 20200302181907.32110-4-alex.bennee@linaro.org
State Superseded
Headers show
Series testing/next updates (tweaks and re-greening) | expand

Commit Message

Alex Bennée March 2, 2020, 6:19 p.m. UTC
From: Robert Foley <robert.foley@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.foley@linaro.org>

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

Reviewed-by: Peter Puhov <peter.puhov@linaro.org>

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

Message-Id: <20200219163537.22098-4-robert.foley@linaro.org>
---
 tests/vm/basevm.py | 7 +++++++
 1 file changed, 7 insertions(+)

-- 
2.20.1

Comments

Philippe Mathieu-Daudé March 2, 2020, 6:32 p.m. UTC | #1
On 3/2/20 7:19 PM, Alex Bennée wrote:
> From: Robert Foley <robert.foley@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.foley@linaro.org>

> Reviewed-by: Alex Bennée <alex.bennee@linaro.org>

> Reviewed-by: Peter Puhov <peter.puhov@linaro.org>

> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>

> Message-Id: <20200219163537.22098-4-robert.foley@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.
diff mbox series

Patch

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