On Fri, Apr 22, 2016 at 04:16:16PM +0100, Tvrtko Ursulin wrote:
> From: Tvrtko Ursulin <tvrtko.ursu...@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.ursu...@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@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gfx

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to