[igt-dev] [i-g-t 2/2] tests/kms_cursor_edge_walk: Limit the execution to two pipes

Bhanuprakash Modem bhanuprakash.modem at intel.com
Fri Feb 10 04:24:19 UTC 2023


To optimize the test execution time, limit the execution to
two (first & last) pipes. This patch will also provide an
option (command line flag '--extended') to execute on all
pipes.

Example:
./kms_cursor_edge_walk --extended --run-subtest 64x64-left-edge

Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>
Signed-off-by: Nidhi Gupta <nidhi1.gupta at intel.com>
---
 tests/kms_cursor_edge_walk.c | 22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

diff --git a/tests/kms_cursor_edge_walk.c b/tests/kms_cursor_edge_walk.c
index 96812776c..304c0ea8f 100644
--- a/tests/kms_cursor_edge_walk.c
+++ b/tests/kms_cursor_edge_walk.c
@@ -60,6 +60,10 @@ enum {
 	EDGE_BOTTOM = 0x8,
 };
 
+static bool extended;
+static enum pipe active_pipes[IGT_MAX_PIPES];
+static uint32_t last_pipe;
+
 static void create_cursor_fb(data_t *data, int cur_w, int cur_h)
 {
 	cairo_t *cr;
@@ -284,6 +288,9 @@ static int opt_handler(int opt, int opt_index, void *_data)
 	case 'd':
 		data->disable = true;
 		break;
+	case 'e':
+		extended = true;
+		break;
 	case 'j':
 		data->jump = true;
 		break;
@@ -300,12 +307,14 @@ static const struct option long_opts[] = {
 	{ .name = "colored", .val = 'c' },
 	{ .name = "disable", .val = 'd'},
 	{ .name = "jump", .val = 'j' },
+	{ .name = "extended", .val = 'e'},
 	{}
 };
 static const char *help_str =
 	"  --colored\t\tUse a colored cursor (disables CRC checks)\n"
 	"  --disable\t\tDisable the cursor between each step\n"
-	"  --jump\t\tJump the cursor to middle of the screen between each step)\n";
+	"  --jump\t\tJump the cursor to middle of the screen between each step)\n"
+	"  --extended\t\tRun on all pipes.(Default it will Run only two pipes)\n";
 
 igt_main_args("", long_opts, help_str, opt_handler, &data)
 {
@@ -322,6 +331,7 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 
 	igt_fixture {
 		int ret;
+		enum pipe pipe;
 
 		data.drm_fd = drm_open_driver_master(DRIVER_ANY);
 
@@ -340,6 +350,12 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 
 		igt_display_require(&data.display, data.drm_fd);
 		igt_display_require_output(&data.display);
+
+		/* Get active pipes. */
+		last_pipe = 0;
+		for_each_pipe(&data.display, pipe)
+			active_pipes[last_pipe++] = pipe;
+		last_pipe--;
 	}
 
 	for (i = 0; i < ARRAY_SIZE(tests); i++) {
@@ -353,6 +369,10 @@ igt_main_args("", long_opts, help_str, opt_handler, &data)
 			igt_subtest_with_dynamic_f("%dx%d-%s", data.curw,
 						   data.curh, tests[i].name) {
 				for_each_pipe_with_single_output(&data.display, data.pipe, data.output) {
+					if (!extended && data.pipe != active_pipes[0] &&
+					    data.pipe != active_pipes[last_pipe])
+						continue;
+
 					igt_dynamic_f("pipe-%s-%s",
 						      kmstest_pipe_name(data.pipe),
 						      data.output->name)
-- 
2.39.0



More information about the igt-dev mailing list