----- "Lucas Meneghel Rodrigues" <lmr@xxxxxxxxxx> 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 <lmr@xxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx > 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 majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html