All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: "José Roberto de Souza" <jose.souza@intel.com>
Cc: igt-dev@lists.freedesktop.org, Jani Nikula <jani.nikula@intel.com>
Subject: Re: [igt-dev] [PATCH i-g-t] tests: Check and skip tests when driver don't have display enabled
Date: Fri, 7 Sep 2018 17:48:28 +0300	[thread overview]
Message-ID: <20180907144828.GH5565@intel.com> (raw)
In-Reply-To: <20180907004454.15916-1-jose.souza@intel.com>

On Thu, Sep 06, 2018 at 05:44:54PM -0700, José Roberto de Souza wrote:
> Right now i915 is not doing the full job to complete disable display
> when i915.disable_display parameters is set, when that is completed
> it will cause several tests to fail, so here skiping all the tests
> that depends on modeset or display block when those are not
> available.
> 
> Cc: Jani Nikula <jani.nikula@intel.com>
> Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
> ---
>  lib/igt_kms.c                     | 20 ++++++++++++++++++++
>  lib/igt_kms.h                     |  1 +
>  tests/debugfs_test.c              |  1 +
>  tests/gem_exec_nop.c              |  1 +
>  tests/kms_3d.c                    |  1 +
>  tests/kms_addfb_basic.c           |  4 +++-
>  tests/kms_atomic.c                |  1 +
>  tests/kms_atomic_interruptible.c  |  1 +
>  tests/kms_available_modes_crc.c   |  1 +
>  tests/kms_busy.c                  |  1 +
>  tests/kms_ccs.c                   |  1 +
>  tests/kms_chamelium.c             |  1 +
>  tests/kms_chv_cursor_fail.c       |  1 +
>  tests/kms_color.c                 |  1 +
>  tests/kms_concurrent.c            |  1 +
>  tests/kms_crtc_background_color.c |  1 +
>  tests/kms_cursor_crc.c            |  1 +
>  tests/kms_cursor_legacy.c         |  1 +
>  tests/kms_draw_crc.c              |  1 +
>  tests/kms_fbcon_fbt.c             |  1 +
>  tests/kms_fence_pin_leak.c        |  1 +
>  tests/kms_flip.c                  |  1 +
>  tests/kms_flip_event_leak.c       |  1 +
>  tests/kms_flip_tiling.c           |  1 +
>  tests/kms_force_connector_basic.c |  1 +
>  tests/kms_frontbuffer_tracking.c  |  1 +
>  tests/kms_getfb.c                 |  4 +++-
>  tests/kms_hdmi_inject.c           |  1 +
>  tests/kms_invalid_dotclock.c      |  1 +
>  tests/kms_legacy_colorkey.c       |  1 +
>  tests/kms_mmap_write_crc.c        |  1 +
>  tests/kms_panel_fitting.c         |  1 +
>  tests/kms_pipe_b_c_ivb.c          |  1 +
>  tests/kms_pipe_crc_basic.c        |  1 +
>  tests/kms_plane.c                 |  1 +
>  tests/kms_plane_lowres.c          |  1 +
>  tests/kms_plane_multiple.c        |  1 +
>  tests/kms_plane_scaling.c         |  1 +
>  tests/kms_properties.c            |  1 +
>  tests/kms_psr.c                   |  1 +
>  tests/kms_pwrite_crc.c            |  1 +
>  tests/kms_rmfb.c                  |  1 +
>  tests/kms_rotation_crc.c          |  1 +
>  tests/kms_setmode.c               |  1 +
>  tests/kms_sysfs_edid_timing.c     |  5 +++++
>  tests/kms_tv_load_detect.c        |  1 +
>  tests/kms_universal_plane.c       |  1 +
>  tests/kms_vblank.c                |  1 +
>  tests/perf_pmu.c                  |  1 +
>  tests/pm_backlight.c              |  5 ++++-
>  tests/pm_lpsp.c                   |  1 +
>  tests/pm_rpm.c                    |  1 +
>  tests/prime_vgem.c                |  2 ++
>  tests/testdisplay.c               |  1 +
>  54 files changed, 85 insertions(+), 3 deletions(-)
> 
> diff --git a/lib/igt_kms.c b/lib/igt_kms.c
> index 62d84684..7578a10b 100644
> --- a/lib/igt_kms.c
> +++ b/lib/igt_kms.c
> @@ -2018,6 +2018,26 @@ int igt_display_get_n_pipes(igt_display_t *display)
>  	return display->n_pipes;
>  }
>  
> +/**
> + * igt_display_require_output:
> + * @drm_fd: a drm file descriptor
> + *
> + * Checks if driver supports modeset and have display enabled.
> + */
> +void igt_require_display(int fd)
> +{
> +	drmModeRes *resources;
> +	int pipes;
> +
> +	resources = drmModeGetResources(fd);
> +	igt_require_f(resources, "drm driver do not support modeset\n");
> +
> +	pipes = resources->count_crtcs;
> +	drmModeFreeResources(resources);
> +
> +	igt_require_f(pipes > 0, "drm driver without display hardware\n");
> +}
> +
>  /**
>   * igt_display_require_output:
>   * @display: A pointer to an #igt_display_t structure
> diff --git a/lib/igt_kms.h b/lib/igt_kms.h
> index 3a12f278..037bcb23 100644
> --- a/lib/igt_kms.h
> +++ b/lib/igt_kms.h
> @@ -388,6 +388,7 @@ void igt_display_commit_atomic(igt_display_t *display, uint32_t flags, void *use
>  int  igt_display_try_commit2(igt_display_t *display, enum igt_commit_style s);
>  int  igt_display_drop_events(igt_display_t *display);
>  int  igt_display_get_n_pipes(igt_display_t *display);
> +void igt_require_display(int fd);
>  void igt_display_require_output(igt_display_t *display);
>  void igt_display_require_output_on_pipe(igt_display_t *display, enum pipe pipe);
>  
> diff --git a/tests/debugfs_test.c b/tests/debugfs_test.c
> index 2e87e442..6d77ee72 100644
> --- a/tests/debugfs_test.c
> +++ b/tests/debugfs_test.c
> @@ -99,6 +99,7 @@ igt_main
>  	igt_fixture {
>  		fd = drm_open_driver_master(DRIVER_INTEL);
>  		igt_require_gem(fd);
> +		igt_require_display(fd);
>  		debugfs = igt_debugfs_dir(fd);
>  
>  		kmstest_set_vt_graphics_mode();

I guess we lose the emon subtest here. But that's ilk only so meh.

<snip>
> diff --git a/tests/perf_pmu.c b/tests/perf_pmu.c
> index 6ab2595b..6c347acc 100644
> --- a/tests/perf_pmu.c
> +++ b/tests/perf_pmu.c
> @@ -1397,6 +1397,7 @@ test_rc6(int gem_fd, unsigned int flags)
>  	if (flags & TEST_RUNTIME_PM) {
>  		drmModeRes *res;
>  
> +		igt_require_display(gem_fd);

Might we want to just skip the display interaction here but still
execute the rest of the subtest? Or is that redundant when there is no
display anyway?

>  		res = drmModeGetResources(gem_fd);
>  		igt_assert(res);
>  
<snip> 
> diff --git a/tests/pm_rpm.c b/tests/pm_rpm.c
> index c24fd95b..627b1a1a 100644
> --- a/tests/pm_rpm.c
> +++ b/tests/pm_rpm.c
> @@ -719,6 +719,7 @@ static bool setup_environment(void)
>  
>  	debugfs = igt_debugfs_dir(drm_fd);
>  	igt_require(debugfs != -1);
> +	igt_require_display(drm_fd);

Somewhat the same question here. Although this test looks like it's
expecting display stuff all over, so probably can't easily exclude it.

The perf_pmu thing is I guess the only real
concern I have, but I guess someone can think of that later so
Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>

>  
>  	init_mode_set_data(&ms_data);
>  
> diff --git a/tests/prime_vgem.c b/tests/prime_vgem.c
> index b821fbb8..a99cd8a9 100644
> --- a/tests/prime_vgem.c
> +++ b/tests/prime_vgem.c
> @@ -747,6 +747,8 @@ static void test_flip(int i915, int vgem, unsigned hang)
>  	struct vgem_bo bo[2];
>  	uint32_t fb_id[2], handle[2], crtc_id;
>  
> +	igt_require_display(i915);
> +
>  	signal(SIGHUP, sighandler);
>  
>  	for (int i = 0; i < 2; i++) {
> diff --git a/tests/testdisplay.c b/tests/testdisplay.c
> index 0ff98a2b..a770b29f 100644
> --- a/tests/testdisplay.c
> +++ b/tests/testdisplay.c
> @@ -716,6 +716,7 @@ int main(int argc, char **argv)
>  		test_all_modes = 1;
>  
>  	drm_fd = drm_open_driver(DRIVER_ANY);
> +	igt_require_display(drm_fd);
>  
>  	if (test_stereo_modes &&
>  	    drmSetClientCap(drm_fd, DRM_CLIENT_CAP_STEREO_3D, 1) < 0) {
> -- 
> 2.18.0
> 
> _______________________________________________
> igt-dev mailing list
> igt-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/igt-dev

-- 
Ville Syrjälä
Intel
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  parent reply	other threads:[~2018-09-07 14:48 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-07  0:44 [igt-dev] [PATCH i-g-t] tests: Check and skip tests when driver don't have display enabled José Roberto de Souza
2018-09-07  1:53 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2018-09-07 13:59 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2018-09-07 14:48 ` Ville Syrjälä [this message]
2018-09-07 14:57   ` [igt-dev] [PATCH i-g-t] " Chris Wilson
2018-09-07 23:31     ` Souza, Jose
  -- strict thread matches above, loose matches on Subject: below --
2018-09-11 23:42 José Roberto de Souza
2018-09-12  8:06 ` Chris Wilson
2018-09-12 21:28   ` Souza, Jose

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180907144828.GH5565@intel.com \
    --to=ville.syrjala@linux.intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=jani.nikula@intel.com \
    --cc=jose.souza@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.