[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] runner: Add an argument for test duration
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] runner: Add an argument for test duration |
Date: |
Mon, 18 Aug 2014 13:30:54 +0800 |
User-agent: |
Mutt/1.5.23 (2014-03-12) |
On Fri, 08/15 17:55, Maria Kustova wrote:
> Signed-off-by: Maria Kustova <address@hidden>
> ---
> tests/image-fuzzer/runner.py | 23 ++++++++++++++++++-----
> 1 file changed, 18 insertions(+), 5 deletions(-)
>
> diff --git a/tests/image-fuzzer/runner.py b/tests/image-fuzzer/runner.py
> index 3fa7fca..688d470 100755
> --- a/tests/image-fuzzer/runner.py
> +++ b/tests/image-fuzzer/runner.py
> @@ -25,6 +25,7 @@ import subprocess
> import random
> import shutil
> from itertools import count
> +import time
> import getopt
> import StringIO
> import resource
> @@ -206,7 +207,7 @@ class TestEnv(object):
> elif item[0] == 'qemu-io':
> current_cmd = list(self.qemu_io)
> else:
> - multilog("Warning: test command '%s' is not defined.\n" \
> + multilog("Warning: test command '%s' is not defined.\n"
The change seems irrelevant.
> % item[0], sys.stderr, self.log, self.parent_log)
> continue
> # Replace all placeholders with their real values
> @@ -269,6 +270,7 @@ if __name__ == '__main__':
>
> Optional arguments:
> -h, --help display this help and exit
> + -d, --duration=NUMBER finish tests after NUMBER of seconds
> -c, --command=JSON run tests for all commands specified
> in
> the JSON array
> -s, --seed=STRING seed for a test image generation,
> @@ -325,10 +327,15 @@ if __name__ == '__main__':
> finally:
> test.finish()
>
> + def is_continue(duration, start_time):
Maybe "should_continue" ?
> + """Return True if a new test can be started and False otherwise."""
> + current_time = int(time.time())
> + return (duration is None) or (current_time - start_time < duration)
> +
> try:
> - opts, args = getopt.gnu_getopt(sys.argv[1:], 'c:hs:kv',
> + opts, args = getopt.gnu_getopt(sys.argv[1:], 'c:hs:kvd:',
> ['command=', 'help', 'seed=',
> 'config=',
> - 'keep_passed', 'verbose'])
> + 'keep_passed', 'verbose',
> 'duration='])
> except getopt.error, e:
> print >>sys.stderr, \
> "Error: %s\n\nTry 'runner.py --help' for more information" % e
> @@ -339,6 +346,8 @@ if __name__ == '__main__':
> log_all = False
> seed = None
> config = None
> + duration = None
> +
> for opt, arg in opts:
> if opt in ('-h', '--help'):
> usage()
> @@ -357,6 +366,8 @@ if __name__ == '__main__':
> log_all = True
> elif opt in ('-s', '--seed'):
> seed = arg
> + elif opt in ('-d', '--duration'):
> + duration = int(arg)
> elif opt == '--config':
> try:
> config = json.loads(arg)
> @@ -394,9 +405,11 @@ if __name__ == '__main__':
> resource.setrlimit(resource.RLIMIT_CORE, (-1, -1))
> # If a seed is specified, only one test will be executed.
> # Otherwise runner will terminate after a keyboard interruption
> - for test_id in count(1):
> + start_time = int(time.time())
> + test_id = count(1)
> + while is_continue(duration, start_time):
> try:
> - run_test(str(test_id), seed, work_dir, run_log, cleanup,
> + run_test(str(test_id.next()), seed, work_dir, run_log, cleanup,
> log_all, command, config)
> except (KeyboardInterrupt, SystemExit):
> sys.exit(1)
> --
> 1.9.3
>
Modulus the above two minor issues,
Reviewed-by: Fam Zheng <address@hidden>