[Intel-gfx] [PATCH i-g-t 14/15] lib/igt_core: introduce --loop.

Thomas Wood thomas.wood at intel.com
Wed Jan 21 09:18:21 PST 2015


On 12 January 2015 at 18:22, Rodrigo Vivi <rodrigo.vivi at intel.com> wrote:
> This loop option can help intensive tests everywhere.
> The only caveat is that tests reimplementing main function has to implement his own loop.

Could you also add a short description of the new command line options
to the test program documentation?


>
> Signed-off-by: Rodrigo Vivi <rodrigo.vivi at intel.com>
> ---
>  lib/igt_core.c | 11 +++++++++++
>  lib/igt_core.h | 18 ++++++++++++------
>  2 files changed, 23 insertions(+), 6 deletions(-)
>
> diff --git a/lib/igt_core.c b/lib/igt_core.c
> index bd655be..3724348 100644
> --- a/lib/igt_core.c
> +++ b/lib/igt_core.c
> @@ -234,6 +234,7 @@ enum {
>   OPT_DESCRIPTION,
>   OPT_DEBUG,
>   OPT_INTERACTIVE_DEBUG,
> + OPT_LOOP,
>   OPT_HELP = 'h'
>  };
>
> @@ -405,6 +406,7 @@ static void print_usage(const char *help_str, bool output_on_stderr)
>                    "  --run-subtest <pattern>\n"
>                    "  --debug[=log-domain]\n"
>                    "  --interactive-debug[=domain]\n"
> +                  "  --loop[=times]\n"
>                    "  --help-description\n"
>                    "  --help\n");
>         if (help_str)
> @@ -438,6 +440,7 @@ static int common_init(int argc, char **argv,
>                 {"help-description", 0, 0, OPT_DESCRIPTION},
>                 {"debug", optional_argument, 0, OPT_DEBUG},
>                 {"interactive-debug", optional_argument, 0, OPT_INTERACTIVE_DEBUG},
> +               {"loop", optional_argument, 0, OPT_LOOP},
>                 {"help", 0, 0, OPT_HELP},
>                 {0, 0, 0, 0}
>         };
> @@ -520,9 +523,17 @@ static int common_init(int argc, char **argv,
>                        std_short_opts);
>         assert(ret >= 0);
>
> +       igt_loop = 0;
> +
>         while ((c = getopt_long(argc, argv, short_opts, combined_opts,
>                                &option_index)) != -1) {
>                 switch(c) {
> +               case OPT_LOOP:
> +                       if (optarg && strlen(optarg) > 0)
> +                               igt_loop = atoi(optarg);
> +                       else
> +                               igt_loop = -1;
> +                       break;
>                 case OPT_INTERACTIVE_DEBUG:
>                         if (optarg && strlen(optarg) > 0)
>                                 igt_interactive_debug = strdup(optarg);
> diff --git a/lib/igt_core.h b/lib/igt_core.h
> index 32041f6..4dbe893 100644
> --- a/lib/igt_core.h
> +++ b/lib/igt_core.h
> @@ -175,9 +175,11 @@ bool igt_only_list_subtests(void);
>  #define igt_main \
>         static void igt_tokencat(__real_main, __LINE__)(void); \
>         int main(int argc, char **argv) { \
> -               igt_subtest_init(argc, argv); \
> -               igt_tokencat(__real_main, __LINE__)(); \
> -               igt_exit(); \
> +               do { \
> +                       igt_subtest_init(argc, argv);  \
> +                       igt_tokencat(__real_main, __LINE__)();  \
> +                       igt_exit();                             \
> +               } while (igt_loop == -1 || --igt_loop);         \
>         } \
>         static void igt_tokencat(__real_main, __LINE__)(void) \
>
> @@ -198,9 +200,11 @@ void igt_simple_init_parse_opts(int argc, char **argv,
>  #define igt_simple_main \
>         static void igt_tokencat(__real_main, __LINE__)(void); \
>         int main(int argc, char **argv) { \
> -               igt_simple_init(argc, argv); \
> -               igt_tokencat(__real_main, __LINE__)(); \
> -               igt_exit(); \
> +               do { \
> +                       igt_simple_init(argc, argv);   \
> +                       igt_tokencat(__real_main, __LINE__)();  \
> +                       igt_exit();                                     \
> +               } while (igt_loop == -1 || --igt_loop);                 \
>         } \
>         static void igt_tokencat(__real_main, __LINE__)(void) \
>
> @@ -511,6 +515,8 @@ bool igt_run_in_simulation(void);
>
>  void igt_skip_on_simulation(void);
>
> +int igt_loop;
> +
>  const char *igt_interactive_debug;
>
>  /* structured logging */
> --
> 2.1.0
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx


More information about the Intel-gfx mailing list