This parameter multiplies the timeout values of all the barriers in a step file
test.
It is useful for slower hosts, under load (e.g. when executing multiple tests
in parallel) and for testing QEMU without KVM.  In any of these cases, the
multiplier should be greater than 1 in order to give the test more time to
complete.

In addition to modifying tests/steps.py, this patch adds a usage example to
control and control.parallel.

Signed-off-by: Michael Goldish <mgold...@redhat.com>
---
 client/tests/kvm/control          |    1 +
 client/tests/kvm/control.parallel |    1 +
 client/tests/kvm/tests/steps.py   |   22 +++++++++++++++-------
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/client/tests/kvm/control b/client/tests/kvm/control
index 72658f1..491870a 100644
--- a/client/tests/kvm/control
+++ b/client/tests/kvm/control
@@ -140,6 +140,7 @@ filename = os.path.join(pwd, "kvm_tests.cfg")
 cfg = kvm_config.config(filename)
 
 # If desirable, make changes to the test configuration here.  For example:
+# cfg.parse_string("install|setup: timeout_multiplier = 2")
 # cfg.parse_string("only fc8_quick")
 # cfg.parse_string("display = sdl")
 
diff --git a/client/tests/kvm/control.parallel 
b/client/tests/kvm/control.parallel
index cf268ea..fac0176 100644
--- a/client/tests/kvm/control.parallel
+++ b/client/tests/kvm/control.parallel
@@ -136,6 +136,7 @@ filename = os.path.join(pwd, "kvm_tests.cfg")
 cfg = kvm_config.config(filename)
 
 # If desirable, make changes to the test configuration here.  For example:
+# cfg.parse_string("install|setup: timeout_multiplier = 2")
 # cfg.parse_string("only fc8_quick")
 # cfg.parse_string("display = sdl")
 
diff --git a/client/tests/kvm/tests/steps.py b/client/tests/kvm/tests/steps.py
index 8bc85f2..d0b7dbd 100644
--- a/client/tests/kvm/tests/steps.py
+++ b/client/tests/kvm/tests/steps.py
@@ -33,6 +33,21 @@ def barrier_2(vm, words, params, debug_dir, 
data_scrdump_filename,
     cmd, dx, dy, x1, y1, md5sum, timeout = words[:7]
     dx, dy, x1, y1, timeout = map(int, [dx, dy, x1, y1, timeout])
 
+    scrdump_filename = os.path.join(debug_dir, "scrdump.ppm")
+    cropped_scrdump_filename = os.path.join(debug_dir, "cropped_scrdump.ppm")
+    expected_scrdump_filename = os.path.join(debug_dir, "scrdump_expected.ppm")
+    expected_cropped_scrdump_filename = os.path.join(debug_dir,
+                                                 
"cropped_scrdump_expected.ppm")
+    comparison_filename = os.path.join(debug_dir, "comparison.ppm")
+
+    # Multiply timeout by the timeout multiplier
+    timeout_multiplier = params.get("timeout_multiplier")
+    if timeout_multiplier:
+        timeout_multiplier = float(timeout_multiplier)
+    else:
+        timeout_multiplier = 1.0
+    timeout *= timeout_multiplier
+
     # Timeout/5 is the time it took stepmaker to complete this step.
     # Divide that number by 10 to poll 10 times, just in case
     # current machine is stronger then the "stepmaker machine".
@@ -41,13 +56,6 @@ def barrier_2(vm, words, params, debug_dir, 
data_scrdump_filename,
     if sleep_duration < 1.0: sleep_duration = 1.0
     if sleep_duration > 10.0: sleep_duration = 10.0
 
-    scrdump_filename = os.path.join(debug_dir, "scrdump.ppm")
-    cropped_scrdump_filename = os.path.join(debug_dir, "cropped_scrdump.ppm")
-    expected_scrdump_filename = os.path.join(debug_dir, "scrdump_expected.ppm")
-    expected_cropped_scrdump_filename = os.path.join(debug_dir,
-                                                 
"cropped_scrdump_expected.ppm")
-    comparison_filename = os.path.join(debug_dir, "comparison.ppm")
-
     fail_if_stuck_for = params.get("fail_if_stuck_for")
     if fail_if_stuck_for:
         fail_if_stuck_for = float(fail_if_stuck_for)
-- 
1.5.4.1

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to