Currently, every pair of ({pipe1, pipe2}, {output1, output2}) is being
tested in 2x-* subtests. Since suspend shouldn't be tested per pipe, it
causes unnecessary overhead: with 4 pipes & 4 displays it runs in total
36 tests. Given that each suspend's dynamic subtest can take up to tens
of seconds, total duration of the test easily exceeds timeout.

When testing suspend, for each pair of outputs test only first and last
pipe unless it is said to run on all pipes.

Signed-off-by: Michał Grzelak <[email protected]>
---
 tests/kms_flip.c | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/tests/kms_flip.c b/tests/kms_flip.c
index a74e69c6f..dd110aecf 100755
--- a/tests/kms_flip.c
+++ b/tests/kms_flip.c
@@ -1841,8 +1841,8 @@ static void run_test(int duration, int flags)
        /* Count output configurations to scale test runtime. */
        for (i = 0; i < resources->count_connectors; i++) {
                for (n = 0; n < resources->count_crtcs; n++) {
-                       /* Limit the execution to 2 CRTCs (first & last) for 
hang tests */
-                       if ((flags & TEST_HANG) && !all_pipes &&
+                       /* Limit the execution to 2 CRTCs (first & last) for 
hang and suspend tests */
+                       if (((flags & TEST_HANG) || (flags & TEST_SUSPEND)) && 
!all_pipes &&
                            n != 0 && n != (resources->count_crtcs - 1))
                                continue;
 
@@ -1873,8 +1873,8 @@ static void run_test(int duration, int flags)
                for (n = 0; n < resources->count_crtcs; n++) {
                        int crtc_idx;
 
-                       /* Limit the execution to 2 CRTCs (first & last) for 
hang tests */
-                       if ((flags & TEST_HANG) && !all_pipes &&
+                       /* Limit the execution to 2 CRTCs (first & last) for 
hang and suspend tests */
+                       if (((flags & TEST_HANG) || (flags & TEST_SUSPEND)) && 
!all_pipes &&
                            n != 0 && n != (resources->count_crtcs - 1))
                                continue;
 
@@ -1920,6 +1920,12 @@ static void run_pair(int duration, int flags)
                for (n = 0; n < resources->count_crtcs; n++) {
                        for (j = i + 1; j < resources->count_connectors; j++) {
                                for (m = n + 1; m < resources->count_crtcs; 
m++) {
+                                       /* Limit the execution to 2 CRTCs 
(first & last) for hang and suspend tests */
+                                       if (((flags & TEST_HANG) || (flags & 
TEST_SUSPEND)) && !all_pipes &&
+                                           ((n != 0 && n != 
resources->count_crtcs) ||
+                                           m != resources->count_crtcs - 1))
+                                               continue;
+
                                        memset(&o, 0, sizeof(o));
                                        o.count = 2;
                                        o._connector[0] = 
resources->connectors[i];
@@ -1965,8 +1971,8 @@ static void run_pair(int duration, int flags)
                                        crtc_idxs[0] = n;
                                        crtc_idxs[1] = m;
 
-                                       /* Limit the execution to 2 CRTCs 
(first & last) for hang tests */
-                                       if ((flags & TEST_HANG) && !all_pipes &&
+                                       /* Limit the execution to 2 CRTCs 
(first & last) for hang and suspend tests */
+                                       if (((flags & TEST_HANG) || (flags & 
TEST_SUSPEND)) && !all_pipes &&
                                            ((n != 0 && n != 
resources->count_crtcs) ||
                                            m != resources->count_crtcs - 1))
                                                continue;
-- 
2.45.2

Reply via email to