From: Lucas Meneghel Rodrigues <lmr@redhat.com>
To: autotest@test.kernel.org
Cc: kvm@vger.kernel.org
Subject: [PATCH] KVM test: Ensure multiple pre/post commands can run
Date: Fri, 5 Feb 2010 09:16:43 -0200 [thread overview]
Message-ID: <1265368603-4156-1-git-send-email-lmr@redhat.com> (raw)
The way tests are currently defined, running unattended
install + hugepages will allways skip unattended install
setup step (coincidentally the tests on our test farm
were working because previous executions of the unattended
install script ran, leaving the environment prepared for
unattended install).
So, make sure pre_commands on default tests.cfg file are
additive, and the preprocessor splits the pre_command
string, and executes pre/post commands in sequence.
Signed-off-by: Lucas Meneghel Rodrigues <lmr@redhat.com>
---
client/tests/kvm/kvm_preprocessing.py | 29 ++++++++++++++++-------------
client/tests/kvm/tests_base.cfg.sample | 4 ++--
2 files changed, 18 insertions(+), 15 deletions(-)
diff --git a/client/tests/kvm/kvm_preprocessing.py b/client/tests/kvm/kvm_preprocessing.py
index 8a0c151..2e35d9f 100644
--- a/client/tests/kvm/kvm_preprocessing.py
+++ b/client/tests/kvm/kvm_preprocessing.py
@@ -126,7 +126,7 @@ def postprocess_vm(test, params, env, name):
vm.destroy(gracefully = params.get("kill_vm_gracefully") == "yes")
-def process_command(test, params, env, command, command_timeout,
+def process_command(test, params, env, commands, command_timeout,
command_noncritical):
"""
Pre- or post- custom commands to be executed before/after a test is run
@@ -134,22 +134,23 @@ def process_command(test, params, env, command, command_timeout,
@param test: An Autotest test object.
@param params: A dict containing all VM and image parameters.
@param env: The environment (a dict-like object).
- @param command: Command to be run.
+ @param commands: List of commands to be run.
@param command_timeout: Timeout for command execution.
@param command_noncritical: If True test will not fail if command fails.
"""
# Export environment vars
for k in params.keys():
os.putenv("KVM_TEST_%s" % k, str(params[k]))
- # Execute command
- try:
- utils.system("cd %s; %s" % (test.bindir, command))
- except error.CmdError, e:
- logging.warn("Custom processing command '%s' failed, output is: %s",
- command, str(e))
- if not command_noncritical:
- raise error.TestError("Custom processing command failed: %s" %
- str(e))
+ # Execute commands
+ for command in commands:
+ try:
+ utils.system("cd %s; %s" % (test.bindir, command))
+ except error.CmdError, e:
+ logging.warn("Custom processing command '%s' failed, output is: %s",
+ command, str(e))
+ if not command_noncritical:
+ raise error.TestError("Custom processing command failed: %s" %
+ str(e))
def process(test, params, env, image_func, vm_func):
@@ -220,7 +221,8 @@ def preprocess(test, params, env):
# Execute any pre_commands
if params.get("pre_command"):
- process_command(test, params, env, params.get("pre_command"),
+ pre_commands = params.get("pre_command").spit()
+ process_command(test, params, env, pre_commands,
int(params.get("pre_command_timeout", "600")),
params.get("pre_command_noncritical") == "yes")
@@ -296,7 +298,8 @@ def postprocess(test, params, env):
# Execute any post_commands
if params.get("post_command"):
- process_command(test, params, env, params.get("post_command"),
+ post_commands = params.get("post_command").split()
+ process_command(test, params, env, post_commands,
int(params.get("post_command_timeout", "600")),
params.get("post_command_noncritical") == "yes")
diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
index 91daf48..8f88f3b 100644
--- a/client/tests/kvm/tests_base.cfg.sample
+++ b/client/tests/kvm/tests_base.cfg.sample
@@ -66,7 +66,7 @@ variants:
kill_vm_gracefully = yes
kill_vm_on_error = yes
force_create_image = yes
- pre_command = scripts/unattended.py
+ pre_command += " scripts/unattended.py"
floppy = "images/floppy.img"
extra_params += " -boot d"
nic_mode = user
@@ -953,7 +953,7 @@ variants:
variants:
- @smallpages:
- hugepages:
- pre_command = "/usr/bin/python scripts/hugepage.py /mnt/kvm_hugepage"
+ pre_command += " scripts/hugepage.py"
extra_params += " -mem-path /mnt/kvm_hugepage"
--
1.6.6
next reply other threads:[~2010-02-05 11:16 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-05 11:16 Lucas Meneghel Rodrigues [this message]
[not found] <1712820999.1156341265565305970.JavaMail.root@zmail05.collab.prod.int.phx2.redhat.com>
2010-02-07 17:59 ` [PATCH] KVM test: Ensure multiple pre/post commands can run Michael Goldish
2010-02-08 1:11 ` Lucas Meneghel Rodrigues
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1265368603-4156-1-git-send-email-lmr@redhat.com \
--to=lmr@redhat.com \
--cc=autotest@test.kernel.org \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox