Re: [PATCH i-g-t v2 06/16] tests/kms_frontbuffer_tracking: remove TEST_MODE_ITER_BEGIN() from `fliptrack`

"Thasleem, Mohammed" <[email protected]>
Newsgroups org.freedesktop.lists.igt-dev
Message-ID <[email protected]>
On 08-08-2026 04:17 am, Michał Grzelak wrote:
> igt@kms_frontbuffer_tracking uses TEST_MODE_ITER_BEGIN(t) which consists
> of nested for loops. However many loops can be omitted due to continue
> statements. This obfuscates following the execution of any given
> codepath. Replace TEST_MODE_ITER_BEGIN(t) for fliptrack tests with macro
> definition and remove loops that are skipped.
>
> v1->v2
> - indent for-loops (Mohammed)
>
> Signed-off-by: Michał Grzelak<[email protected]>
> ---
>   tests/intel/kms_frontbuffer_tracking.c | 44 ++++++++++++++++----------
>   1 file changed, 28 insertions(+), 16 deletions(-)
>
> diff --git a/tests/intel/kms_frontbuffer_tracking.c b/tests/intel/kms_frontbuffer_tracking.c
> index 406018c88a..6266297553 100644
> --- a/tests/intel/kms_frontbuffer_tracking.c
> +++ b/tests/intel/kms_frontbuffer_tracking.c
> @@ -4482,23 +4482,35 @@ int igt_main_args("", long_options, help_str, opt_handler, NULL)
>   			}
>   	TEST_MODE_ITER_END
>   
> -	TEST_MODE_ITER_BEGIN(t)
> -		if (t.plane != PLANE_PRI ||
> -		    t.screen != SCREEN_PRIM ||
> -		    t.method != IGT_DRAW_MMAP_GTT ||
> -		    (t.feature & FEATURE_FBC) == 0)
> -			continue;
> +	t.format = FORMAT_DEFAULT;
> +	t.flip = FLIP_PAGEFLIP;
> +	t.tiling = opt.tiling;
> +	t.plane = PLANE_PRI;
> +	t.screen = SCREEN_PRIM;
> +	t.method = IGT_DRAW_MMAP_GTT;
>   
> -		igt_subtest_f("%s-%s-%s-fliptrack-%s",
> -			      feature_str(t.feature),
> -			      pipes_str(t.pipes),
> -			      fbs_str(t.fbs),
> -			      igt_draw_get_method_name(t.method))
> -		{
> -			igt_require(igt_draw_supports_method(drm.fd, t.method));
> -			fliptrack_subtest(&t, FLIP_PAGEFLIP);
> -		}
> -	TEST_MODE_ITER_END
> +	for (t.feature = 0; t.feature < FEATURE_COUNT; t.feature++) {
> +		for (t.pipes = 0; t.pipes < PIPE_COUNT; t.pipes++) {
> +			for (t.fbs = 0; t.fbs < FBS_COUNT; t.fbs++) {
> +				if (!opt.show_hidden && t.feature == FEATURE_NONE)
> +					continue;
> +				if ((t.feature & FEATURE_PSR) && (t.feature & FEATURE_DRRS))
> +					continue;
> +				if ((t.feature & FEATURE_FBC) == 0)
> +					continue;
-->can't we pull above "if" conditions to after first for loop? for 
(t.feature = 0; t.feature < FEATURE_COUNT; t.feature++) as we are 
checking the feature count, check once
> +
> +				igt_subtest_f("%s-%s-%s-fliptrack-%s",
> +					      feature_str(t.feature),
> +					      pipes_str(t.pipes),
> +					      fbs_str(t.fbs),
> +					      igt_draw_get_method_name(t.method))
> +				{
> +					igt_require(igt_draw_supports_method(drm.fd, t.method));
> +					fliptrack_subtest(&t, FLIP_PAGEFLIP);
> +				}
> +					}
--> indentation needed here... plz check
> +			}
> +	}
>   
>   	TEST_MODE_ITER_BEGIN(t)
>   		if (t.screen == SCREEN_OFFSCREEN ||
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.