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

Knop, Ryszard ryszard.knop at intel.com
Wed May 25 14:40:52 UTC 2022


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?

Thanks, Ryszard


More information about the igt-dev mailing list