diff options
| author | Mohammed Thasleem <mohammed.thasleem@intel.com> | 2022-07-07 14:22:40 +0530 | 
|---|---|---|
| committer | Bhanuprakash Modem <bhanuprakash.modem@intel.com> | 2022-07-08 10:53:26 +0530 | 
| commit | c033b1519ee92d651d2dbf9807eed539c7d7dcf5 (patch) | |
| tree | 7073feadd209455264dfaa37cb9bedf81a671a4a | |
| parent | 40f6e44b76059527dec2978a25e868be49dc076a (diff) | |
tests/kms_rmfb: Create dynamic subtests
Modified kms_rmfb to include dynamic test cases.
v2: addressed indentation, test description moved into struct
    and added global description to test.
v3: minor changes.
v4: removed space.
v5: renamed flags with reopen and minor changes in igt_dynamic_f.
Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
Reviewed-by: Kamil Konieczny <kamil.konieczny@linux.intel.com>
| -rw-r--r-- | tests/kms_rmfb.c | 36 | 
1 files changed, 26 insertions, 10 deletions
diff --git a/tests/kms_rmfb.c b/tests/kms_rmfb.c index fcd5cdad..fb659054 100644 --- a/tests/kms_rmfb.c +++ b/tests/kms_rmfb.c @@ -36,6 +36,9 @@  #define DRM_CAP_CURSOR_HEIGHT 0x9  #endif +IGT_TEST_DESCRIPTION("This tests rmfb and close-fd behavior. In these cases" +		     "the framebuffers should be removed from the crtc."); +  struct rmfb_data {  	int drm_fd;  	igt_display_t display; @@ -151,13 +154,28 @@ run_rmfb_test(struct rmfb_data *data, bool reopen)  	igt_output_t *output;  	enum pipe pipe; -	for_each_pipe_with_single_output(&data->display, pipe, output) -		test_rmfb(data, output, pipe, reopen); +	for_each_pipe_with_single_output(&data->display, pipe, output) { +		igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(pipe), +			      igt_output_name(output)) +			test_rmfb(data, output, pipe, reopen); +	}  }  igt_main  { +	const struct { +		bool reopen; +		const char *name; +		const char *description; +	} tests[] = { +		{ false, "rmfb-ioctl", "RMFB is supposed to free the framebuffers from any and all " +				       "planes so test this and make sure it works."}, +		{ true, "close-fd", "RMFB is supposed to free the framebuffers from any and all " +				    "planes so test this and make sure it works with fd close " +				    "and reopen."}, +	};  	struct rmfb_data data = {}; +	int i;  	igt_fixture {  		data.drm_fd = drm_open_driver_master(DRIVER_ANY); @@ -168,15 +186,13 @@ igt_main  		igt_display_require_output(&data.display);  	} -	igt_describe("RMFB is supposed to free the framebuffers from any and all " -		     "planes so test this and make sure it works."); -	igt_subtest_f("rmfb-ioctl") -		run_rmfb_test(&data, false); +	for (i = 0; i < ARRAY_SIZE(tests); i++) { +		igt_describe(tests[i].description); +		igt_subtest_with_dynamic(tests[i].name) { +			run_rmfb_test(&data, tests[i].reopen); -	igt_describe("RMFB is supposed to free the framebuffers from any and all planes " -		     "so test this and make sure it works with fd close and reopen."); -	igt_subtest_f("close-fd") -		run_rmfb_test(&data, true); +		} +	}  	igt_fixture {  		igt_display_fini(&data.display);  | 
