[igt-dev] [PATCH i-g-t] tests/i915_module_load: Add the "load" test

Petri Latvala petri.latvala at intel.com
Wed May 25 15:09:45 UTC 2022


On Wed, May 25, 2022 at 05:40:52PM +0300, Knop, Ryszard wrote:
> On Wed, 2022-05-25 at 17:29 +0300, Petri Latvala wrote:
> > On Wed, May 25, 2022 at 04:21:34PM +0200, Ryszard Knop wrote:
> > > Add a fake test that:
> > > - Asserts i915 and associated drivers are not yet loaded;
> > > - Loads the i915 driver if that's not the case yet;
> > > - Performs a small set of sanity tests to make sure the GPU is
> > > there.
> > >
> > > The reload test now also performs the same checks.
> > >
> > > Signed-off-by: Ryszard Knop <ryszard.knop at intel.com>
> > > ---
> > >  tests/i915/i915_module_load.c | 52 +++++++++++++++++++++++++++++--
> > > ----
> > >  1 file changed, 43 insertions(+), 9 deletions(-)
> > >
> > > diff --git a/tests/i915/i915_module_load.c
> > > b/tests/i915/i915_module_load.c
> > > index f5f98acc..46608aa8 100644
> > > --- a/tests/i915/i915_module_load.c
> > > +++ b/tests/i915/i915_module_load.c
> > > @@ -30,6 +30,7 @@
> > >  #include <sys/ioctl.h>
> > >  #include <fcntl.h>
> > >
> > > +#include "i915/gem.h"
> > >  #include "i915/gem_create.h"
> > >  #include "igt_debugfs.h"
> > >  #include "igt_aux.h"
> > > @@ -236,21 +237,54 @@ hda_dynamic_debug(bool enable)
> > >         fclose(fp);
> > >  }
> > >
> > > +static void load_and_check_i915(void)
> > > +{
> > > +       int error;
> > > +       int drm_fd;
> > > +
> > > +       hda_dynamic_debug(true);
> > > +       error = igt_i915_driver_load(NULL);
> > > +       hda_dynamic_debug(false);
> > > +
> > > +       igt_assert_eq(error, 0);
> > > +
> > > +       /* driver is ready, check if it's bound */
> > > +       drm_fd = __drm_open_driver(DRIVER_INTEL);
> > > +       igt_fail_on_f(drm_fd < 0, "Cannot open the i915 DRM driver
> > > after modprobing i915.\n");
> > > +
> > > +       /* make sure the GPU is idle */
> > > +       gem_quiescent_gpu(drm_fd);
> > > +       close(drm_fd);
> > > +
> > > +       /* make sure we can do basic memory ops */
> > > +       gem_sanitycheck();
> > > +}
> > > +
> > >  igt_main
> > >  {
> > > +       igt_describe("Assert that i915 and friends are not yet
> > > loaded, then load them.");
> > > +       igt_subtest("load") {
> > > +               const char * unwanted_drivers[] = {
> > > +                       "i915",
> > > +                       "intel-gtt",
> > > +                       "snd_hda_intel",
> > > +                       "snd_hdmi_lpe_audio",
> > > +                       NULL
> > > +               };
> > > +
> > > +               for (int i = 0; unwanted_drivers[i] != NULL; i++) {
> > > +                       igt_abort_on_f(igt_kmod_is_loaded(unwanted_
> > > drivers[i]),
> > > +                                      "%s is already loaded!\n",
> > > unwanted_drivers[i]);
> > > +               }
> >
> > Don't abort here, a skip is enough.
> 
> Tomi mentioned he would prefer this to be a hard failure if the module
> is already loaded - @reload test does not fail if it's loaded already.
> Should I swap it to a skip anyways?


For the record, discussed offline: Skip is the correct result for this
if i915 is already loaded.


-- 
Petri Latvala


More information about the igt-dev mailing list