----- "Lucas Meneghel Rodrigues" <[email protected]> wrote:
> 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 <[email protected]>
Why not just append ';' to each command?
For example:
pre_command = "scripts/unattended.py;"
...
pre_command += " scripts/hugepage.py;"
(the quotes can be omitted)
IMO this is simpler.
Also, by using "".split() you're not allowing commands that
contain spaces.
> ---
> 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
>
> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html