[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