Reviewed-by: Dylan Baker <[email protected]>

Quoting Martin Peres (2017-01-11 07:45:48)
> Previously, the test-list was not saved when running and resuming a run
> would ignore the test-list and execute the entire test set.
> 
> This patch tries to follow Dylan's proposal[0].
> 
> [0] https://patchwork.freedesktop.org/patch/122189/
> 
> Cc: Rami Ben Hassine <[email protected]>
> Cc: Olivier Berthier <[email protected]>
> Cc: Julian Dumez <[email protected]>
> Cc: Dylan Baker <[email protected]>
> Reported-by: Rami Ben Hassine <[email protected]>
> Signed-off-by: Martin Peres <[email protected]>
> ---
>  framework/programs/run.py | 31 ++++++++++++++++++++-----------
>  1 file changed, 20 insertions(+), 11 deletions(-)
> 
> diff --git a/framework/programs/run.py b/framework/programs/run.py
> index e5d55837a..177bd535c 100644
> --- a/framework/programs/run.py
> +++ b/framework/programs/run.py
> @@ -220,7 +220,7 @@ def _run_parser(input_):
>      return parser.parse_args(unparsed)
>  
>  
> -def _create_metadata(args, name):
> +def _create_metadata(args, name, forced_test_list):
>      """Create and return a metadata dict for Backend.initialize()."""
>      opts = dict(options.OPTIONS)
>      opts['profile'] = args.test_profile
> @@ -232,6 +232,7 @@ def _create_metadata(args, name):
>      opts['monitoring'] = args.monitored
>      if args.platform:
>          opts['platform'] = args.platform
> +    opts['forced_test_list'] = forced_test_list
>  
>      metadata = {'options': opts}
>      metadata['name'] = name
> @@ -308,26 +309,31 @@ def run(input_):
>              'Cannot overwrite existing folder without the -o/--overwrite '
>              'option being set.')
>  
> +    # If a test list is provided then set the forced_test_list value.
> +    forced_test_list = None
> +    if args.test_list:
> +        if len(args.test_profile) != 1:
> +            raise exceptions.PiglitFatalError(
> +                'Unable to force a test list with more than one profile')
> +
> +        with open(args.test_list) as test_list:
> +            # Strip newlines
> +            forced_test_list = [t.strip() for t in test_list]
> +
>      backend = backends.get_backend(args.backend)(
>          args.results_path,
>          junit_suffix=args.junit_suffix,
>          junit_subtests=args.junit_subtests)
>      backend.initialize(_create_metadata(
> -        args, args.name or path.basename(args.results_path)))
> +        args, args.name or path.basename(args.results_path), 
> forced_test_list))
>  
>      profiles = [profile.load_test_profile(p) for p in args.test_profile]
>      for p in profiles:
>          p.results_dir = args.results_path
>  
> -    # If a test list is provided then set the forced_test_list value.
> -    if args.test_list:
> -        if len(args.test_profile) != 1:
> -            raise exceptions.PiglitFatalError(
> -                'Unable to force a test list with more than one profile')
> -
> -        with open(args.test_list) as test_list:
> -            # Strip newlines
> -            profiles[0].forced_test_list = [t.strip() for t in test_list]
> +    # Set the forced_test_list, if applicable
> +    if forced_test_list:
> +        profiles[0].forced_test_list = forced_test_list
>  
>      # Set the dmesg type
>      if args.dmesg:
> @@ -424,6 +430,9 @@ def resume(input_):
>              p.filters.append(
>                  profile.RegexFilter(results.options['include_filter']))
>  
> +        if results.options['forced_test_list']:
> +            p.forced_test_list = results.options['forced_test_list']
> +
>      # This is resumed, don't bother with time since it won't be accurate 
> anyway
>      profile.run(
>          profiles,
> -- 
> 2.11.0
> 

Attachment: signature.asc
Description: signature

_______________________________________________
Piglit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to