public inbox for igt-dev@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Imre Deak <imre.deak@intel.com>
To: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
Cc: igt-dev@lists.freedesktop.org
Subject: Re: [igt-dev] [PATCH i-g-t 1/7] tests/kms_vblank: Make sure that we have a mode set
Date: Wed, 8 Apr 2020 17:15:39 +0300	[thread overview]
Message-ID: <20200408141539.GA28695@ideak-desk.fi.intel.com> (raw)
In-Reply-To: <20200407131633.1350311-1-arkadiusz.hiler@intel.com>

On Tue, Apr 07, 2020 at 04:16:27PM +0300, Arkadiusz Hiler wrote:
> Subtest 'invalid' was depending on a "leftover" mode set by something
> external (usually fbcon) in order to work.
> 
> Let's make the test more robust by setting the mode explicitly.
> 
> v2: set flag for the pipe we are using (Imre)
> 
> Cc: Imre Deak <imre.deak@intel.com>
> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
> ---
>  tests/kms_vblank.c | 27 ++++++++++++++++++++++-----
>  1 file changed, 22 insertions(+), 5 deletions(-)
> 
> diff --git a/tests/kms_vblank.c b/tests/kms_vblank.c
> index a895ab80..7b5f3426 100644
> --- a/tests/kms_vblank.c
> +++ b/tests/kms_vblank.c
> @@ -472,12 +472,26 @@ static void invalid_subtest(data_t *data, int fd)
>  {
>  	union drm_wait_vblank vbl;
>  	unsigned long valid_flags;
> +	enum pipe pipe;
> +	igt_output_t* output;
> +	bool found = false;
> +	int base_flags;
> +
> +	/* we need to have a mode set, otherwise we will get EINVAL no matter what */
> +	for_each_pipe_with_single_output(&data->display, pipe, output) {
> +		data->pipe = pipe;
> +		found = true;
> +		break;
> +	}
> +
> +	igt_require_f(found, "No outputs connected = no vblanks\n");
> +	prepare_crtc(data, fd, output);
>  
> -	igt_display_require_output_on_pipe(&data->display, 0);
> +	base_flags = _DRM_VBLANK_RELATIVE | kmstest_get_vbl_flag(data->pipe);
>  
>  	/* First check all is well with a simple query */
>  	memset(&vbl, 0, sizeof(vbl));
> -	vbl.request.type = DRM_VBLANK_RELATIVE;
> +	vbl.request.type = base_flags;
>  	igt_assert_eq(wait_vblank(fd, &vbl), 0);
>  
>  	valid_flags = (_DRM_VBLANK_TYPES_MASK |
> @@ -486,7 +500,9 @@ static void invalid_subtest(data_t *data, int fd)
>  
>  	/* pick some interesting invalid permutations */
>  	memset(&vbl, 0, sizeof(vbl));
> -	vbl.request.type = _DRM_VBLANK_RELATIVE | ~valid_flags;
> +	vbl.request.type = base_flags;
> +	vbl.request.type |= kmstest_get_vbl_flag(data->pipe);
> +	vbl.request.type |= ~valid_flags;

Or just vbl.request.type = base_flags | ~valid_flags; ?

>  	igt_assert_eq(wait_vblank(fd, &vbl), -EINVAL);
>  	for (int bit = 0; bit < 32; bit++) {
>  		int err;
> @@ -495,7 +511,7 @@ static void invalid_subtest(data_t *data, int fd)
>  			continue;
>  
>  		memset(&vbl, 0, sizeof(vbl));
> -		vbl.request.type = _DRM_VBLANK_RELATIVE | (1 << bit);
> +		vbl.request.type = base_flags | (1 << bit);
>  		err = wait_vblank(fd, &vbl);
>  		igt_assert_f(err == -EINVAL,
>  			     "vblank wait with invalid request.type bit %d [0x%08x] did not report -EINVAL, got %d\n",
> @@ -504,10 +520,11 @@ static void invalid_subtest(data_t *data, int fd)
>  
>  	/* check the maximum pipe, nobody should have that many pipes! */
>  	memset(&vbl, 0, sizeof(vbl));
> -	vbl.request.type = _DRM_VBLANK_RELATIVE;
> +	vbl.request.type = base_flags;
>  	vbl.request.type |= _DRM_VBLANK_SECONDARY;
>  	vbl.request.type |= _DRM_VBLANK_FLAGS_MASK;
>  	igt_assert_eq(wait_vblank(fd, &vbl), -EINVAL);

Semi-unrelated, but not sure what the 'maximum pipe' means, or how this
will pass now if it's not pipe A we use. I think it wants to test a
non-existing or disabled pipe, which needs to be fixed. (as a follow-up)

Reviewed-by: Imre Deak <imre.deak@intel.com>

> +	cleanup_crtc(data, fd, output);
>  }
>  
>  igt_main
> -- 
> 2.24.1
> 
_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  parent reply	other threads:[~2020-04-08 14:16 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-07 13:16 [igt-dev] [PATCH i-g-t 1/7] tests/kms_vblank: Make sure that we have a mode set Arkadiusz Hiler
2020-04-07 13:16 ` [igt-dev] [PATCH i-g-t 2/7] tests/kms_dp_dsc: Explicitly enable mode before DSC checks Arkadiusz Hiler
2020-04-07 13:16 ` [igt-dev] [PATCH i-g-t 3/7] lib/igt_psr: Set mode before checking if PSR is supported Arkadiusz Hiler
2020-04-07 13:16 ` [igt-dev] [PATCH i-g-t 4/7] lib/kms: Commit reasonable defaults on display init Arkadiusz Hiler
2020-04-07 13:16 ` [igt-dev] [PATCH i-g-t 5/7] lib/kms: Reprobe connector state after disabling modest Arkadiusz Hiler
2020-04-07 13:19 ` [igt-dev] [PATCH i-g-t 6/7] tests/kms_chamelium: Issue disabling modeset when resetting state Arkadiusz Hiler
2020-04-07 13:19 ` [igt-dev] [PATCH i-g-t 7/7] tests/kms_chamelium: Test HPD for different mode handling scenarios Arkadiusz Hiler
2020-04-07 13:44 ` [igt-dev] ✗ GitLab.Pipeline: warning for series starting with [i-g-t,1/7] tests/kms_vblank: Make sure that we have a mode set Patchwork
2020-04-07 14:08 ` [igt-dev] ✗ Fi.CI.BAT: failure " Patchwork
2020-04-08 14:15 ` Imre Deak [this message]
2020-04-08 14:23   ` [igt-dev] [PATCH i-g-t 1/7] " Imre Deak

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=20200408141539.GA28695@ideak-desk.fi.intel.com \
    --to=imre.deak@intel.com \
    --cc=arkadiusz.hiler@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    /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