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 ||