[Piglit] [PATCH 08/20] fbo: Split out a function for selecting an fbo test set by name.
Anuj Phogat
anuj.phogat at gmail.com
Wed Jun 6 11:41:48 PDT 2012
On Tue, Jun 5, 2012 at 5:03 PM, Paul Berry <stereotype441 at gmail.com> wrote:
> This patch extracts code from fbo_formats_init() into a separate
> function, fbo_lookup_test_set(), whose only purpose is to find an FBO
> test set given its name. This will make it easier for future tests to
> make use of fbo-formats.h even if they have to use different
> command-line parsing than what is implemented in fbo_formats_init().
>
> This is also one behavioural change: previously, if multiple
> command-line arguments were specified to fbo_formats_init(), it would
> ignore all but the last. This was clearly an unintended and
> unnecessary behaviour, so I've replaced it with an error message.
> ---
> tests/fbo/fbo-formats.h | 45 ++++++++++++++++++++++++++-------------------
> 1 files changed, 26 insertions(+), 19 deletions(-)
>
> diff --git a/tests/fbo/fbo-formats.h b/tests/fbo/fbo-formats.h
> index 9ae4a97..8275c39 100644
> --- a/tests/fbo/fbo-formats.h
> +++ b/tests/fbo/fbo-formats.h
> @@ -547,33 +547,40 @@ static void fbo_formats_key_func(unsigned char key, int x, int y)
> piglit_escape_exit_key(key, x, y);
> }
>
> -static void fbo_formats_init(int argc, char **argv, GLboolean print_options)
> +static int
> +fbo_lookup_test_set(const char *test_set_name)
> {
> - int i, j, k;
> + int i, j;
> +
> + for (i = 1; i < (int) ARRAY_SIZE(test_sets); i++) {
> + if (!strcmp(test_set_name, test_sets[i].param)) {
> + for (j = 0; j < 3; j++) {
> + if (test_sets[i].ext[j]) {
> + piglit_require_extension(test_sets[i].ext[j]);
> + }
> + }
> +
> + return i;
> + }
> + }
> +
> + fprintf(stderr, "Unknown test set: %s\n", test_set_name);
> + exit(1);
> +}
>
> +static void fbo_formats_init(int argc, char **argv, GLboolean print_options)
> +{
> if (!piglit_automatic)
> glutKeyboardFunc(fbo_formats_key_func);
>
> piglit_require_extension("GL_EXT_framebuffer_object");
> piglit_require_extension("GL_ARB_texture_env_combine");
>
> - for (i = 1; i < argc; i++) {
> - for (j = 1; j < (int) ARRAY_SIZE(test_sets); j++) {
> - if (!strcmp(argv[i], test_sets[j].param)) {
> - for (k = 0; k < 3; k++) {
> - if (test_sets[j].ext[k]) {
> - piglit_require_extension(test_sets[j].ext[k]);
> - }
> - }
> -
> - test_index = j;
> - break;
> - }
> - }
> - if (j == ARRAY_SIZE(test_sets)) {
> - fprintf(stderr, "Unknown argument: %s\n", argv[i]);
> - exit(1);
> - }
> + if (argc == 2) {
> + test_index = fbo_lookup_test_set(argv[1]);
> + } else if (argc > 2) {
> + printf("More than 1 test set specified\n");
> + exit(1);
> }
>
> if (!piglit_automatic && print_options) {
> --
> 1.7.7.6
>
> _______________________________________________
> Piglit mailing list
> Piglit at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/piglit
Reviewed-by: Anuj Phogat <anuj.phogat at gmail.com>
More information about the Piglit
mailing list