[Intel-gfx] [PATCH i-g-t 2/2] kms_flip: Run basic tests only on one pipe
Daniel Vetter
daniel at ffwll.ch
Mon Apr 25 08:54:17 UTC 2016
On Fri, Apr 22, 2016 at 04:16:16PM +0100, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
>
> It brings enough value for the basic test set to check
> one connector with one pipe only, rather every connector
> with all possible pipes.
>
> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Unfortuantely we've broken this a few too many times. I kid you not, but
before this testcase page_flip tended to indeed only work on pipe A. Also
vlv/chv have hilarious "this output only works on pipe C" restrictions.
I think at least one pageflip+vblank ts testcase must run on all pipes to
have full coverage. The others we could reduce indeed.
> ---
> tests/kms_flip.c | 18 ++++++++++++++----
> 1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/tests/kms_flip.c b/tests/kms_flip.c
> index 1e7336e1ba95..992c59b53fb9 100644
> --- a/tests/kms_flip.c
> +++ b/tests/kms_flip.c
> @@ -1283,7 +1283,7 @@ static void free_test_output(struct test_output *o)
> }
> }
>
> -static void run_test_on_crtc_set(struct test_output *o, int *crtc_idxs,
> +static bool run_test_on_crtc_set(struct test_output *o, int *crtc_idxs,
> int crtc_count, int duration_ms)
> {
> char test_name[128];
> @@ -1296,7 +1296,7 @@ static void run_test_on_crtc_set(struct test_output *o, int *crtc_idxs,
> case 1:
> connector_find_preferred_mode(o->_connector[0], crtc_idxs[0], o);
> if (!o->mode_valid)
> - return;
> + return false;
> snprintf(test_name, sizeof(test_name),
> "%s on pipe %s, connector %s-%d",
> igt_subtest_name(),
> @@ -1307,7 +1307,7 @@ static void run_test_on_crtc_set(struct test_output *o, int *crtc_idxs,
> case 2:
> connector_find_compatible_mode(crtc_idxs[0], crtc_idxs[1], o);
> if (!o->mode_valid)
> - return;
> + return false;
> snprintf(test_name, sizeof(test_name),
> "%s on pipe %s:%s, connector %s-%d:%s-%d",
> igt_subtest_name(),
> @@ -1422,6 +1422,8 @@ out:
> last_connector = NULL;
>
> free_test_output(o);
> +
> + return true;
> }
>
> static int run_test(int duration, int flags)
> @@ -1454,6 +1456,9 @@ static int run_test(int duration, int flags)
> modes++;
>
> free_test_output(&o);
> +
> + if ((flags & TEST_BASIC) && modes > 0)
> + break;
> }
> }
>
> @@ -1462,6 +1467,7 @@ static int run_test(int duration, int flags)
> duration = max(500, duration);
>
> /* Find any connected displays */
> + modes = 0;
> for (i = 0; i < resources->count_connectors; i++) {
> for (n = 0; n < resources->count_crtcs; n++) {
> int crtc_idx;
> @@ -1476,7 +1482,11 @@ static int run_test(int duration, int flags)
> o.depth = 24;
>
> crtc_idx = n;
> - run_test_on_crtc_set(&o, &crtc_idx, 1, duration);
> + if (run_test_on_crtc_set(&o, &crtc_idx, 1, duration))
> + modes++;
> +
> + if ((flags & TEST_BASIC) && modes > 0)
> + break;
> }
> }
>
> --
> 1.9.1
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
More information about the Intel-gfx
mailing list