[i-g-t] tests/kms_cursor_legacy: Fix incomplete runs due to dynamic tests

Bhanuprakash Modem bhanuprakash.modem at intel.com
Mon Nov 7 10:40:12 UTC 2022


After introducing the dynamic subtests, few tests are failing with
the status "incomplete", as execution time is increased. This patch
will revert some dynamic tests those are causing incomplete runs.

Fixes: c02f0d48 (tests/kms_cursor_legacy: Convert tests to dynamic)
Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
---
 tests/kms_cursor_legacy.c | 128 +++++++++++++++-----------------------
 1 file changed, 49 insertions(+), 79 deletions(-)

diff --git a/tests/kms_cursor_legacy.c b/tests/kms_cursor_legacy.c
index 6b75e98c..91f5387c 100644
--- a/tests/kms_cursor_legacy.c
+++ b/tests/kms_cursor_legacy.c
@@ -1515,15 +1515,6 @@ igt_main
 	igt_display_t display = { .drm_fd = -1 };
 	bool intel_psr2_restore = false;
 	int i;
-	const char *modes[flip_test_last+1] = {
-		"legacy",
-		"varying-size",
-		"toggle",
-		"atomic",
-		"atomic-transitions",
-		"atomic-transitions-varying-size"
-	};
-	const char *prefix[2] = {"basic", "short"};
 
 	igt_fixture {
 		display.drm_fd = drm_open_driver_master(DRIVER_ANY);
@@ -1666,90 +1657,69 @@ igt_main
 			flip_vs_cursor_busy_crc(&display, true);
 	}
 
-	for (i = 0; i < ARRAY_SIZE(prefix); i++) {
-		int j;
+	igt_fixture
+		igt_display_require_output(&display);
+
+	for (i = 0; i <= flip_test_last; i++) {
+		const char *modes[flip_test_last+1] = {
+			"legacy",
+			"varying-size",
+			"toggle",
+			"atomic",
+			"atomic-transitions",
+			"atomic-transitions-varying-size"
+		};
+		const char *prefix = "short-";
 
-		igt_describe("Adds variety of tests:\n"
-			"* varying-size: change the size of cursor b/w 64*64 to maxw x maxh.\n"
-			"* atomic-transition: alternates between a full screen sprite plane "
-				"and full screen primary plane.\n"
-			"* toggle: which toggles cursor visibility and make sure cursor moves between updates.");
-		igt_subtest_group {
-			igt_fixture
-				igt_display_require_output(&display);
+		switch (i) {
+			case flip_test_legacy:
+			case flip_test_varying_size:
+			case flip_test_atomic:
+				prefix = "basic-";
+				break;
+			default: break;
+		}
 
-			igt_subtest_with_dynamic_f("%s-flip-before-cursor", prefix[i]) {
-				for (j = 0; j <= flip_test_last; j++) {
-					igt_dynamic_f("%s", modes[j])
-						basic_flip_cursor(&display, j, FLIP_BEFORE_CURSOR, 0);
-				}
-			}
+		igt_describe("Adds variety of tests: "
+			     "varying-size: change the size of cursor b/w 64*64 to maxw x maxh. "
+			     "atomic-transition: alternates between a full screen sprite plane. "
+						"and full screen primary plane. "
+			     "toggle: which toggles cursor visibility and make sure cursor moves between updates.");
+		igt_subtest_group {
+			igt_subtest_f("%sflip-before-cursor-%s", prefix, modes[i])
+				basic_flip_cursor(&display, i, FLIP_BEFORE_CURSOR, 0);
 
-			igt_subtest_with_dynamic_f("%s-busy-flip-before-cursor", prefix[i]) {
+			igt_subtest_f("%sbusy-flip-before-cursor-%s", prefix, modes[i]) {
 				igt_require(!cursor_slowpath(&display, i));
 				igt_require_gem(display.drm_fd);
-
-				for (j = 0; j <= flip_test_last; j++) {
-					igt_dynamic_f("%s", modes[j])
-						basic_flip_cursor(&display, j, FLIP_BEFORE_CURSOR, BASIC_BUSY);
-				}
-			}
-
-			igt_subtest_with_dynamic_f("%s-flip-after-cursor", prefix[i]) {
-				for (j = 0; j <= flip_test_last; j++) {
-					igt_dynamic_f("%s", modes[j])
-						basic_flip_cursor(&display, j, FLIP_AFTER_CURSOR, 0);
-				}
+				basic_flip_cursor(&display, i, FLIP_BEFORE_CURSOR,
+						  BASIC_BUSY);
 			}
 		}
-	}
 
-	igt_describe("The essence of the basic test is that neither the cursor nor the "
-		     "nonblocking flip stall the application of the next");
-	igt_subtest_group {
-		igt_fixture
-			igt_display_require_output(&display);
+		igt_describe("The essence of the basic test is that neither the cursor nor the "
+			     "nonblocking flip stall the application of the next");
+		igt_subtest_group {
+			igt_subtest_f("%sflip-after-cursor-%s", prefix, modes[i])
+				basic_flip_cursor(&display, i, FLIP_AFTER_CURSOR, 0);
 
-		igt_subtest_with_dynamic("flip-vs-cursor") {
-			for (i = 0; i <= flip_test_last; i++) {
-				igt_dynamic_f("%s", modes[i])
-					flip_vs_cursor(&display, i, 150);
-			}
-		}
+			igt_subtest_f("flip-vs-cursor-%s", modes[i])
+				flip_vs_cursor(&display, i, 150);
 
-		igt_subtest_with_dynamic("cursor-vs-flip") {
-			for (i = 0; i <= flip_test_last; i++) {
-				igt_dynamic_f("%s", modes[i])
-					cursor_vs_flip(&display, i, 50);
-			}
-		}
+			igt_subtest_f("cursor-vs-flip-%s", modes[i])
+				cursor_vs_flip(&display, i, 50);
 
-		igt_subtest_with_dynamic("cursorA-vs-flipA") {
-			for (i = 0; i <= flip_test_last; i++) {
-				igt_dynamic_f("%s", modes[i])
-					flip(&display, 0, 0, 10, i);
-			}
-		}
+			igt_subtest_f("cursorA-vs-flipA-%s", modes[i])
+				flip(&display, 0, 0, 10, i);
 
-		igt_subtest_with_dynamic("cursorA-vs-flipB") {
-			for (i = 0; i <= flip_test_last; i++) {
-				igt_dynamic_f("%s", modes[i])
-					flip(&display, 0, 1, 10, i);
-			}
-		}
+			igt_subtest_f("cursorA-vs-flipB-%s", modes[i])
+				flip(&display, 0, 1, 10, i);
 
-		igt_subtest_with_dynamic("cursorB-vs-flipA") {
-			for (i = 0; i <= flip_test_last; i++) {
-				igt_dynamic_f("%s", modes[i])
-					flip(&display, 1, 0, 10, i);
-			}
-		}
+			igt_subtest_f("cursorB-vs-flipA-%s", modes[i])
+				flip(&display, 1, 0, 10, i);
 
-		igt_subtest_with_dynamic("cursorB-vs-flipB") {
-			for (i = 0; i <= flip_test_last; i++) {
-				igt_dynamic_f("%s", modes[i])
-					flip(&display, 1, 1, 10, i);
-			}
+			igt_subtest_f("cursorB-vs-flipB-%s", modes[i])
+				flip(&display, 1, 1, 10, i);
 		}
 	}
 
-- 
2.38.0



More information about the Intel-gfx-trybot mailing list