Message ID | 1461338176-17711-2-git-send-email-tvrtko.ursulin@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Apr 22, 2016 at 04:16:16PM +0100, Tvrtko Ursulin wrote: > From: Tvrtko Ursulin <tvrtko.ursulin@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@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
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; } }