Hello!

So after some consideration I think I prefer your first approach
(explicitly calling the enumeration function) after all.

First of all: Sorry for the back and forth on my part and the excess
work you put into this series because of it. Please don't hate me! 🙇

However, I think this approach will be more DRY and less WET.
In particular when used with the existing struct piglit_subtest and
piglit_run_selected_subtests.

I updated the series accordingly (and fixed a type-o in a docstring in
5/15 and the commit message of 6/15 and a small arithmetical error in
11/15).

The result can be found here:
https://github.com/fabianbieler/piglit/tree/enumerate_subtests
If this isn't acceptable for intermediate review, I'll post to the list,
too.

Note that I leveraged piglit_run_selected_subtests for gl-2.1-pbo,
fbo-incomplete, degenerate-prims and linestipple and used
piglit_register_subtests in fbo-storage-formats.

Regards (and sorry again)
Fabian

On 2018-01-23 02:22, Dylan Baker wrote:
> This adds a new member to the GL config struct for informing the python
> framework the number and order of subtests that will be run (if any). If
> this value is unset then no subtests are expected.
> ---
>  tests/util/piglit-framework-gl.c | 13 +++++++++++++
>  tests/util/piglit-framework-gl.h | 11 +++++++++++
>  2 files changed, 24 insertions(+)
> 
> diff --git a/tests/util/piglit-framework-gl.c 
> b/tests/util/piglit-framework-gl.c
> index 1b2078d..1ce5474 100644
> --- a/tests/util/piglit-framework-gl.c
> +++ b/tests/util/piglit-framework-gl.c
> @@ -318,3 +318,16 @@ piglit_get_selected_tests(const char 
> ***selected_subtests)
>       *selected_subtests = gl_fw->test_config->selected_subtests;
>       return gl_fw->test_config->num_selected_subtests;
>  }
> +
> +void
> +piglit_gl_enumerate_subtests(const struct piglit_gl_test_config *config)
> +{
> +     if (config->all_subtests) {
> +             printf("PIGLIT: {\"enumerate subtests\": [\"%s\"", 
> config->all_subtests[0]);
> +             for (int i = 1; config->all_subtests[i]; i++) {
> +                     printf(", \"%s\"", config->all_subtests[i]);
> +             }
> +             printf("]}\n");
> +             fflush(stdout);
> +     }
> +}
> diff --git a/tests/util/piglit-framework-gl.h 
> b/tests/util/piglit-framework-gl.h
> index 970fd55..d36c4f0 100644
> --- a/tests/util/piglit-framework-gl.h
> +++ b/tests/util/piglit-framework-gl.h
> @@ -213,6 +213,13 @@ struct piglit_gl_test_config {
>        * enum used for markin test as supporting KHR_no_error or not.
>        */
>       enum piglit_khr_no_error_support khr_no_error_support;
> +
> +     /**
> +      * Null terminated list of subtests to be enumerated.
> +      *
> +      * Each subtest *must* be run in the order reported by this list.
> +      */
> +     const char **all_subtests;
>  };
>  
>  /**
> @@ -246,6 +253,9 @@ void
>  piglit_gl_test_run(int argc, char *argv[],
>                  const struct piglit_gl_test_config *config);
>  
> +void
> +piglit_gl_enumerate_subtests(const struct piglit_gl_test_config *config);
> +
>  #ifdef __cplusplus
>  #  define PIGLIT_EXTERN_C_BEGIN extern "C" {
>  #  define PIGLIT_EXTERN_C_END   }
> @@ -287,6 +297,7 @@ piglit_gl_test_run(int argc, char *argv[],
>                  }                                                            
> \
>                                                                               
> \
>                  piglit_gl_process_args(&argc, argv, &config);                
> \
> +                piglit_gl_enumerate_subtests(&config);                       
> \
>                  piglit_gl_test_run(argc, argv, &config);                     
> \
>                                                                               
> \
>                  assert(false);                                               
> \
> 
> base-commit: 736496667329bf73a706aebec6f8287078df79ae
> 
_______________________________________________
Piglit mailing list
Piglit@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/piglit

Reply via email to