[PATCH i-g-t 1/2] tests/intel/xe_drm_fdinfo: Group utilization tests and skip when no utilization data
Kamil Konieczny
kamil.konieczny at linux.intel.com
Thu Mar 6 10:56:06 UTC 2025
Hi Bernatowicz,,
On 2025-03-05 at 17:31:43 +0100, Bernatowicz, Marcin wrote:
>
>
> On 3/5/2025 1:15 PM, Kamil Konieczny wrote:
> > Hi Marcin,
> > On 2025-03-04 at 19:56:39 +0100, Marcin Bernatowicz wrote:
> > > Wrap all utilization-related subtests in an igt_subtest_group and add
> > > a fixture that ensures utilization data is available before running
> > > them.
> > >
> > > Link: https://lore.kernel.org/r/20250205191644.2550879-1-marcin.bernatowicz@linux.intel.com
> > >
> > > Signed-off-by: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
> > > Cc: Jakub Kolakowski <jakub1.kolakowski at intel.com>
> > > Cc: Lucas De Marchi <lucas.demarchi at intel.com>
> > > Cc: Lukasz Laguna <lukasz.laguna at intel.com>
> > > Cc: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>
> > > ---
> > > tests/intel/xe_drm_fdinfo.c | 122 ++++++++++++++++++++----------------
> > > 1 file changed, 67 insertions(+), 55 deletions(-)
> > >
> > > diff --git a/tests/intel/xe_drm_fdinfo.c b/tests/intel/xe_drm_fdinfo.c
> > > index 7330b4330..d18fe10d8 100644
> > > --- a/tests/intel/xe_drm_fdinfo.c
> > > +++ b/tests/intel/xe_drm_fdinfo.c
> > > @@ -735,10 +735,6 @@ igt_main
> > > igt_subtest("basic-mem")
> > > basic_memory(xe);
> > > - igt_describe("Check if basic fdinfo content is present for engine utilization");
> > > - igt_subtest("basic-utilization")
> > > - basic_engine_utilization(xe);
> > > -
> > > igt_describe("Create and compare total and resident memory consumption by client");
> > > igt_subtest("mem-total-resident")
> > > mem_total_resident(xe);
> > > @@ -751,57 +747,73 @@ igt_main
> > [...]
> >
> > > + igt_subtest_group {
> > > + igt_fixture {
> > > + struct drm_client_fdinfo info = { };
> > > +
> > > + igt_require(igt_parse_drm_fdinfo(xe, &info, engine_map,
> > > + ARRAY_SIZE(engine_map),
> > > + NULL, 0));
> >
> > Problem with require placed here is that it will trigger also
> > for all other test outside of group. That will clobber output.
>
> Does it mean the igt_subtest_group is deprecated and the description
> no more valid ?
>
> "
> /**
> * igt_subtest_group:
>
> ...
>
> * This macro allows to group together a set of #igt_fixture and #igt_subtest
> * clauses. If any common setup in a fixture fails, only the subtests in
> this
> * group will fail or skip. Subtest groups can be arbitrarily nested.
> "
>
Well, you could group it to show logical part, use fixtures in them
for opening/closing files, just do not use igt_require as it should
be used only in first global fixture in igt_main, not in following
ones.
> >
> > > + igt_require(info.num_engines);
> >
> > Both these should be placed in each subtest wrapped in function
> > (see below) but imho this looks like a global requires at begin
> > of a test? Or am I missing something?
> >
> > > + }
> > > +
> >
> > Create function like:
> >
> > void require_utilization(int xe, ... engine_map)
> > {
> > struct drm_client_fdinfo info = { };
> >
> > igt_require(igt_parse_drm_fdinfo(xe, &info, engine_map,
> > ARRAY_SIZE(engine_map),
> > NULL, 0));
> > igt_require(info.num_engines);
> > }
> >
> > and use it in each utulization subtest like:
> >
> > igt_describe("Check if basic fdinfo content is present for engine utilization");
> > igt_subtest("basic-utilization") {
> > require_utilization(xe);
> > basic_engine_utilization(xe);
> > }
>
> That is the repetition I wanted to avoid ;)
I agree it looks like repetition but it is better to have it.
With require in fixture you could ancounter failure logs with
unrelated message like 'require X fails'.
Other solution would be to create a speparate test for these
tests.
Regards,
Kamil
>
> ---
> marcin
>
> >
> > Regards,
> > Kamil
> >
> > > + igt_describe("Check if basic fdinfo content is present for engine utilization");
> > > + igt_subtest("basic-utilization")
> > > + basic_engine_utilization(xe);
> > > +
> >
> > [...]
> >
>
More information about the igt-dev
mailing list