[Piglit] [PATCH v2] framework: Add mustpass option for the Vulkan CTS test runner

Dylan Baker dylan at pnwbakers.com
Thu Nov 10 18:05:30 UTC 2016


Quoting Alejandro PiƱeiro (2016-11-10 07:01:03)
> This option was added mostly to being able to run the mustpass
> case list included on Vulkan CTS repository. As that file is in
> txt format, we assume that the case list will be in txt format.
> 
> That is not the case for the other deqp-xxx profiles, that uses
> a xml format. In any case, it is properly documented on the
> piglit.conf.example
> 
> v2: allow to receive a txt file with just the name of the test,
>     without any formatting
> ---
> 
> This new version is somewhat more intrusive. It allows to receive
> a txt file with just the name of the tests. But doing that
> it removed the ill-format-line check on deqp.make_profile.
> 
> The advantage of this is that we don't need to transform the
> mustpass file that cames with the vulkan cts repository.
> 
> FWIW, deqp-vk also accepts that format. So with this change,
> piglit just allows to receive the testcase list in both txt formats.
> 
>  framework/test/deqp.py | 14 ++++++++++----
>  piglit.conf.example    |  7 +++++++
>  tests/deqp_vk.py       | 10 +++++++---
>  3 files changed, 24 insertions(+), 7 deletions(-)
> 
> diff --git a/framework/test/deqp.py b/framework/test/deqp.py
> index 5b53efd..a63bea7 100644
> --- a/framework/test/deqp.py
> +++ b/framework/test/deqp.py
> @@ -78,6 +78,14 @@ def select_source(bin_, filename, mustpass, extra_args):
>          return iter_deqp_test_cases(
>              gen_caselist_txt(bin_, filename, extra_args))
>  

You're missing a newline, it should be two for top level functions.

> +def select_source_txt(bin_, filename, mustpass, extra_args):
> +    """Return either the mustpass list in txt format or the generated list."""
> +    if options.OPTIONS.deqp_mustpass:
> +        return iter_deqp_test_cases(mustpass)
> +    else:
> +        return iter_deqp_test_cases(
> +            gen_caselist_txt(bin_, filename, extra_args))
> +

I'm not sure how to do it, but I'm also not thrilled with the near duplication
of select_source function. I think I'd rather see either a keyword argument that
passes the function to use for deqp_mustpass or do file extension detection or
something that reduces the need for another function.

>  
>  def make_profile(test_list, test_class):
>      """Create a TestProfile instance."""
> @@ -146,10 +154,8 @@ def iter_deqp_test_cases(case_file):
>                  continue
>              elif line.startswith('TEST:'):
>                  yield line[len('TEST:'):].strip()
> -            else:
> -                raise exceptions.PiglitFatalError(
> -                    'deqp: {}:{}: ill-formed line'.format(case_file, i))
> -

Don't remove this newline, it was correct.

> +            else: # We assume that the line is just the name of the test
> +                yield line

I'm not sure I like this approach, it conflates two different files formats, and
it creates two functions that are nearly identical. I'll give you that this is
all kind of a mess, but I think you should create a new generator function for
the vulkan mustpass list, it's a different format.

Dylan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 455 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/piglit/attachments/20161110/64648f63/attachment-0001.sig>


More information about the Piglit mailing list