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
next prev 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).