diff mbox series

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

Message ID 20200302181907.32110-4-alex.bennee@linaro.org
State New
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(+)

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