[igt-dev] [PATCH v6 1/2] tests/i915/kms_mmap_write_crc: Create dynamic subtests

Modem, Bhanuprakash bhanuprakash.modem at intel.com
Fri Jul 15 05:03:12 UTC 2022


On Fri-15-07-2022 03:03 am, Mohammed Thasleem wrote:
> Modified kms_mmap_write_crc to include dynamic test cases.
> 
> v2: Moved for loop to after igt_subtest_with_dynamic.
> v3: Added break and moved for loop back in igt_dynamic_f.
> v4: Removed run_test and moved igt_info in to igt_dynamic_f.
> v5: Minor changes.
> 
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem at intel.com>

Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem at intel.com>

> ---
>   tests/i915/kms_mmap_write_crc.c | 46 +++++++++++++++------------------
>   1 file changed, 21 insertions(+), 25 deletions(-)
> 
> diff --git a/tests/i915/kms_mmap_write_crc.c b/tests/i915/kms_mmap_write_crc.c
> index b17e5fdb..4e5b8146 100644
> --- a/tests/i915/kms_mmap_write_crc.c
> +++ b/tests/i915/kms_mmap_write_crc.c
> @@ -211,27 +211,6 @@ static void cleanup_crtc(data_t *data)
>   	igt_remove_fb(data->drm_fd, &data->fb[1]);
>   }
>   
> -static void run_test(data_t *data)
> -{
> -	igt_display_t *display = &data->display;
> -	igt_output_t *output;
> -	enum pipe pipe;
> -
> -	for_each_pipe_with_valid_output(display, pipe, output) {
> -		data->output = output;
> -		data->pipe = pipe;
> -
> -		prepare_crtc(data);
> -		test(data);
> -		cleanup_crtc(data);
> -
> -		/* once is enough */
> -		return;
> -	}
> -
> -	igt_skip("no valid crtc/connector combinations found\n");
> -}
> -
>   struct igt_helper_process hog;
>   
>   /**
> @@ -270,6 +249,8 @@ static data_t data;
>   igt_main_args("n", NULL, NULL, opt_handler, NULL)
>   {
>   	int i;
> +	igt_output_t *output;
> +	enum pipe pipe;
>   
>   	igt_fixture {
>   		data.drm_fd = drm_open_driver_master(DRIVER_INTEL);
> @@ -286,10 +267,25 @@ igt_main_args("n", NULL, NULL, opt_handler, NULL)
>   	}
>   
>   	igt_describe("Tests that caching mode has become UC/WT and flushed using mmap write");
> -	igt_subtest("main") {
> -		igt_info("Using %d rounds for the test\n", ROUNDS);
> -		for (i = 0; i < ROUNDS; i++)
> -			run_test(&data);
> +
> +	igt_subtest_with_dynamic("main") {
> +		for_each_pipe_with_valid_output(&data.display, pipe, output) {
> +			igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe),
> +				      igt_output_name(output)) {
> +				data.output = output;
> +				data.pipe = pipe;
> +
> +				igt_info("Using %d rounds for each pipe in the test\n", ROUNDS);
> +				prepare_crtc(&data);
> +
> +				for (i = 0; i < ROUNDS; i++)
> +					test(&data);
> +
> +				cleanup_crtc(&data);
> +			}
> +			/* once is enough */
> +			break;
> +		}
>   	}
>   
>   	igt_fixture {



More information about the igt-dev mailing list