summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMohammed Thasleem <mohammed.thasleem@intel.com>2022-07-07 14:22:40 +0530
committerBhanuprakash Modem <bhanuprakash.modem@intel.com>2022-07-08 10:53:26 +0530
commitc033b1519ee92d651d2dbf9807eed539c7d7dcf5 (patch)
tree7073feadd209455264dfaa37cb9bedf81a671a4a
parent40f6e44b76059527dec2978a25e868be49dc076a (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.c36
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);