[igt-dev] [PATCH i-g-t v2] tests/kms_busy: Limit the execution to single connector

Karthik B S karthik.b.s at intel.com
Wed Aug 11 01:55:29 UTC 2021


On 8/10/2021 5:30 PM, Bhanuprakash Modem wrote:
> As part of reducing the CI time, we restricted the execution
> to two pipes (first & last), which also introduced running the
> tests on all connectors.
>
> 	commit 030c28d099a5c6793c92e2b22c8e9abd3d340fdc
> 	tests/kms_busy: Limit the execution to two pipes
>
> With that change in multi-display configuration, we run the test
> multiple times on the same pipe with different connectors, which
> increases the CI time.
>
> This patch will fix the logic to run the tests on a single
> connector only.
>
> V2:
> * Fix the crash in no-display configs
>
> Cc: Karthik B S <karthik.b.s at intel.com>
> Signed-off-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>

Looks good to me.

Reviewed-by: Karthik B S <karthik.b.s at intel.com>

> ---
>   tests/kms_busy.c | 14 ++++++--------
>   1 file changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/tests/kms_busy.c b/tests/kms_busy.c
> index a60ff6b05..19ac36b40 100644
> --- a/tests/kms_busy.c
> +++ b/tests/kms_busy.c
> @@ -40,6 +40,7 @@ set_fb_on_crtc(igt_display_t *dpy, int pipe, struct igt_fb *fb)
>   	igt_output_t *output;
>
>   	output = igt_get_single_output_for_pipe(dpy, pipe);
> +	igt_require(output);
>
>   	igt_output_set_pipe(output, pipe);
>   	mode = igt_output_get_mode(output);
> @@ -336,6 +337,7 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
>
>   		kmstest_set_vt_graphics_mode();
>   		igt_display_require(&display, fd);
> +		igt_display_require_output(&display);
>
>   		/* Get active pipes. */
>   		for_each_pipe(&display, pipe)
> @@ -348,9 +350,8 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
>   	igt_describe("Test for basic check of KMS ABI with busy framebuffers.");
>   	igt_subtest_with_dynamic("basic") { /* just run on the first pipe */
>   		enum pipe pipe;
> -		igt_output_t *output;
>
> -		for_each_pipe_with_valid_output(&display, pipe, output) {
> +		for_each_pipe(&display, pipe) {
>   			igt_dynamic("flip")
>   				test_flip(&display, pipe, false);
>   			igt_dynamic("modeset")
> @@ -361,11 +362,10 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
>
>   	igt_subtest_with_dynamic("basic-hang") {
>   		enum pipe pipe;
> -		igt_output_t *output;
>   		igt_hang_t hang = igt_allow_hang(display.drm_fd, 0, 0);
>   		errno = 0;
>
> -		for_each_pipe_with_valid_output(&display, pipe, output) {
> +		for_each_pipe(&display, pipe) {
>   			if (!all_pipes && pipe != active_pipes[0] &&
>   					  pipe != active_pipes[last_pipe])
>   				continue;
> @@ -381,11 +381,10 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
>
>   	igt_subtest_with_dynamic("extended-pageflip-modeset-hang-oldfb") {
>   		enum pipe pipe;
> -		igt_output_t *output;
>   		igt_hang_t hang = igt_allow_hang(display.drm_fd, 0, 0);
>   		errno = 0;
>
> -		for_each_pipe_with_valid_output(&display, pipe, output) {
> +		for_each_pipe(&display, pipe) {
>   			if (!all_pipes && pipe != active_pipes[0] &&
>   					  pipe != active_pipes[last_pipe])
>   				continue;
> @@ -400,14 +399,13 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
>   	for (i = 0; i < sizeof(tests) / sizeof (tests[0]); i++) {
>   		igt_subtest_with_dynamic(tests[i].name) {
>   			enum pipe pipe;
> -			igt_output_t *output;
>   			igt_hang_t hang;
>   			errno = 0;
>
>   			igt_require(display.is_atomic);
>   			hang = igt_allow_hang(display.drm_fd, 0, 0);
>
> -			for_each_pipe_with_valid_output(&display, pipe, output) {
> +			for_each_pipe(&display, pipe) {
>   				if (!all_pipes && pipe != active_pipes[0] &&
>   						  pipe != active_pipes[last_pipe])
>   					continue;
> --
> 2.32.0
>



More information about the igt-dev mailing list