* [igt-dev] [PATCH v8 0/2] tests/kms_lease: IGT test Cleanup
2022-08-29 17:33 [igt-dev] [PATCH v7 0/2] tests/kms_lease: IGT test Cleanup Mohammed Thasleem
@ 2022-04-21 12:57 ` Mohammed Thasleem
2022-04-21 12:57 ` [igt-dev] [PATCH v8 1/2] tests/kms_lease: Create dynamic subtests Mohammed Thasleem
2022-04-21 12:57 ` [igt-dev] [PATCH v8 2/2] tests/kms_lease: Test Cleanup Mohammed Thasleem
2022-08-29 17:33 ` [igt-dev] [PATCH v7 1/2] tests/kms_lease: Create dynamic subtests Mohammed Thasleem
` (3 subsequent siblings)
4 siblings, 2 replies; 11+ messages in thread
From: Mohammed Thasleem @ 2022-04-21 12:57 UTC (permalink / raw)
To: igt-dev
Convert all possible subtests to dynamic and sanitize the system
state before starting/exiting the subtest.
Mohammed Thasleem (2):
tests/kms_lease: Create dynamic subtests
tests/kms_lease: Test Cleanup
tests/kms_lease.c | 234 +++++++++++++++++++++-------------------------
1 file changed, 106 insertions(+), 128 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] [PATCH v8 1/2] tests/kms_lease: Create dynamic subtests
2022-04-21 12:57 ` [igt-dev] [PATCH v8 " Mohammed Thasleem
@ 2022-04-21 12:57 ` Mohammed Thasleem
2022-04-21 12:57 ` [igt-dev] [PATCH v8 2/2] tests/kms_lease: Test Cleanup Mohammed Thasleem
1 sibling, 0 replies; 11+ messages in thread
From: Mohammed Thasleem @ 2022-04-21 12:57 UTC (permalink / raw)
To: igt-dev
Modified tests/kms_lease to include dynamic test cases.
v2: Updated dynamic test cases to all test cases.
v3: Removed dynamic test for which it's not required.
v4: Moved content of for loop in to igt_dynamic.
v5: Minor changes.
v6: Removed run_test which is not required.
v7: Minor changes.
Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
tests/kms_lease.c | 55 ++++++++++++++---------------------------------
1 file changed, 16 insertions(+), 39 deletions(-)
diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index 0bf102a6..bd713343 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -808,42 +808,6 @@ static void lease_invalid_plane(data_t *data)
assert_unleased(ret);
}
-
-static void run_test(data_t *data, void (*testfunc)(data_t *))
-{
- lease_t *master = &data->master;
- igt_display_t *display = &master->display;
- igt_output_t *output;
- enum pipe p;
- unsigned int valid_tests = 0;
-
- for_each_pipe_with_valid_output(display, p, output) {
- igt_info("Beginning %s on pipe %s, connector %s\n",
- igt_subtest_name(),
- kmstest_pipe_name(p),
- igt_output_name(output));
-
- data->pipe = p;
- data->crtc_id = pipe_to_crtc_id(display, p);
- data->connector_id = output->id;
- data->plane_id =
- igt_pipe_get_plane_type(&data->master.display.pipes[data->pipe],
- DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
-
- testfunc(data);
-
- igt_info("\n%s on pipe %s, connector %s: PASSED\n\n",
- igt_subtest_name(),
- kmstest_pipe_name(p),
- igt_output_name(output));
-
- valid_tests++;
- }
-
- igt_require_f(valid_tests,
- "no valid crtc/connector combinations found\n");
-}
-
#define assert_double_id_err(ret) \
igt_assert_f((ret) == -EBUSY || (ret) == -ENOSPC, \
"wrong return code %i, %s\n", ret, \
@@ -1218,6 +1182,9 @@ static void lease_uevent(data_t *data)
igt_main
{
data_t data;
+ igt_output_t *output;
+ igt_display_t *display = &data.master.display;
+
const struct {
const char *name;
void (*func)(data_t *);
@@ -1249,14 +1216,24 @@ igt_main
igt_fixture {
data.master.fd = drm_open_driver_master(DRIVER_ANY);
kmstest_set_vt_graphics_mode();
- igt_display_require(&data.master.display, data.master.fd);
+ igt_display_require(display, data.master.fd);
}
for (f = funcs; f->name; f++) {
igt_describe(f->desc);
- igt_subtest_f("%s", f->name) {
- run_test(&data, f->func);
+ igt_subtest_with_dynamic_f("%s", f->name) {
+ for_each_pipe_with_valid_output(display, data.pipe, output) {
+ igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
+ igt_output_name(output)) {
+ data.crtc_id = pipe_to_crtc_id(display, data.pipe);
+ data.connector_id = output->id;
+ data.plane_id =
+ igt_pipe_get_plane_type(&data.master.display.pipes[data.pipe],
+ DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
+ f->func(&data);
+ }
+ }
}
}
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [igt-dev] [PATCH v8 2/2] tests/kms_lease: Test Cleanup
2022-04-21 12:57 ` [igt-dev] [PATCH v8 " Mohammed Thasleem
2022-04-21 12:57 ` [igt-dev] [PATCH v8 1/2] tests/kms_lease: Create dynamic subtests Mohammed Thasleem
@ 2022-04-21 12:57 ` Mohammed Thasleem
1 sibling, 0 replies; 11+ messages in thread
From: Mohammed Thasleem @ 2022-04-21 12:57 UTC (permalink / raw)
To: igt-dev
Sanitize the system state before starting the subtest.
v2: Minor changes.
v3: Moved display reset and commit in to igt_subtest_with_dynamic_f.
v4: Separated display and non-display subsets.
v5: Removed pipe_to_crtc_id and crtc_id_to_pipe.
v6: Minor changes.
Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
tests/kms_lease.c | 201 +++++++++++++++++++++++-----------------------
1 file changed, 101 insertions(+), 100 deletions(-)
diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index bd713343..67e8d3be 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -64,22 +64,6 @@ typedef struct {
uint32_t plane_id;
} data_t;
-static uint32_t pipe_to_crtc_id(igt_display_t *display, enum pipe pipe)
-{
- return display->pipes[pipe].crtc_id;
-}
-
-static enum pipe crtc_id_to_pipe(igt_display_t *display, uint32_t crtc_id)
-{
- enum pipe pipe;
-
- for_each_pipe(display, pipe) {
- if(display->pipes[pipe].crtc_id == crtc_id)
- return pipe;
- }
- return -1;
-}
-
static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t connector_id)
{
drmModeConnector connector;
@@ -88,12 +72,12 @@ static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t con
return igt_output_from_connector(display, &connector);
}
-static int prepare_crtc(lease_t *lease, uint32_t connector_id, uint32_t crtc_id)
+static int prepare_crtc(lease_t *lease, data_t *data)
{
drmModeModeInfo *mode;
igt_display_t *display = &lease->display;
- igt_output_t *output = connector_id_to_output(display, connector_id);
- enum pipe pipe = crtc_id_to_pipe(display, crtc_id);
+ igt_output_t *output = connector_id_to_output(display, data->connector_id);
+ enum pipe pipe = data->pipe;
igt_plane_t *primary;
int ret;
@@ -136,7 +120,7 @@ static void cleanup_crtc(lease_t *lease, igt_output_t *output)
primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
igt_plane_set_fb(primary, NULL);
- igt_output_set_pipe(output, PIPE_ANY);
+ igt_output_set_pipe(output, PIPE_NONE);
igt_display_commit(display);
}
@@ -230,6 +214,8 @@ static int paint_fb(int drm_fd, struct igt_fb *fb, const char *test_name,
static void simple_lease(data_t *data)
{
+ enum pipe pipe = data->pipe;
+
lease_t lease;
/* Create a valid lease */
@@ -238,11 +224,11 @@ static void simple_lease(data_t *data)
igt_display_require(&lease.display, lease.fd);
/* Set a mode on the leased output */
- igt_assert_eq(0, prepare_crtc(&lease, data->connector_id, data->crtc_id));
+ igt_assert_eq(0, prepare_crtc(&lease, data));
/* Paint something attractive */
paint_fb(lease.fd, &lease.primary_fb, "simple_lease",
- lease.mode->name, igt_output_name(lease.output), kmstest_pipe_name(data->pipe));
+ lease.mode->name, igt_output_name(lease.output), kmstest_pipe_name(pipe));
igt_debug_wait_for_keypress("lease");
cleanup_crtc(&lease,
connector_id_to_output(&lease.display, data->connector_id));
@@ -266,8 +252,8 @@ static void page_flip_implicit_plane(data_t *data)
drmModePlaneRes *plane_resources;
uint32_t wrong_plane_id = 0;
int i;
- enum pipe pipe;
igt_display_t *display;
+ enum pipe pipe = data->pipe;
/* find a plane which isn't the primary one for us */
plane_resources = drmModeGetPlaneResources(data->master.fd);
@@ -292,7 +278,7 @@ static void page_flip_implicit_plane(data_t *data)
drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
/* Set a mode on the leased output */
- igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
+ igt_assert_eq(0, prepare_crtc(&data->master, data));
/* sanity check */
do_or_die(drmModePageFlip(data->master.fd, data->crtc_id,
@@ -300,7 +286,6 @@ static void page_flip_implicit_plane(data_t *data)
0, NULL));
display = &data->master.display;
- pipe = crtc_id_to_pipe(display, data->crtc_id);
igt_wait_for_vblank(data->master.fd,
display->pipes[pipe].crtc_offset);
@@ -313,8 +298,6 @@ static void page_flip_implicit_plane(data_t *data)
object_ids[mcl.object_count++] = wrong_plane_id;
do_or_die(create_lease(data->master.fd, &mcl));
- pipe = crtc_id_to_pipe(display, data->crtc_id);
-
igt_wait_for_vblank(data->master.fd,
display->pipes[pipe].crtc_offset);
@@ -363,7 +346,7 @@ static void setcrtc_implicit_plane(data_t *data)
drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
/* Set a mode on the leased output */
- igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
+ igt_assert_eq(0, prepare_crtc(&data->master, data));
/* sanity check */
do_or_die(drmModeSetCrtc(data->master.fd, data->crtc_id, -1,
@@ -404,7 +387,7 @@ static void cursor_implicit_plane(data_t *data)
drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
/* Set a mode on the leased output */
- igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
+ igt_assert_eq(0, prepare_crtc(&data->master, data));
/* sanity check */
do_or_die(drmModeSetCursor(data->master.fd, data->crtc_id, 0, 0, 0));
@@ -642,8 +625,8 @@ static void lease_unleased_crtc(data_t *data)
for_each_pipe(&data->master.display, p) {
if (bad_crtc_id != 0)
break;
- if (pipe_to_crtc_id(&data->master.display, p) != data->crtc_id)
- bad_crtc_id = pipe_to_crtc_id(&data->master.display, p);
+ if (data->master.display.pipes[p].crtc_id != data->crtc_id)
+ bad_crtc_id = data->master.display.pipes[p].crtc_id;
}
/* Give up if there isn't another crtc */
@@ -729,7 +712,7 @@ static void lease_revoke(data_t *data)
igt_assert_eq(revoke_lease(data->master.fd, &mrl), 0);
/* Try to use the leased objects */
- ret = prepare_crtc(&lease, data->connector_id, data->crtc_id);
+ ret = prepare_crtc(&lease, data);
/* Ensure that the expected error is returned */
igt_assert_eq(ret, -ENOENT);
@@ -1185,83 +1168,101 @@ igt_main
igt_output_t *output;
igt_display_t *display = &data.master.display;
- const struct {
- const char *name;
- void (*func)(data_t *);
- const char *desc;
- } funcs[] = {
- { "simple_lease", simple_lease, "Check if create lease ioctl call works" },
- { "empty_lease", empty_lease, "Check that creating an empty lease works" },
- { "lessee_list", lessee_list, "Check if listed lease is same as created one" },
- { "lease_get", lease_get, "Tests getting the required contents of a lease" },
- { "lease_unleased_connector", lease_unleased_connector, "Negative test by trying to"
- " use an unleased connector " },
- { "lease_unleased_crtc", lease_unleased_crtc, "Negative test by trying to use an unleased crtc" },
- { "lease_revoke", lease_revoke, "Tests revocation of lease" },
- { "lease_again", lease_again, "Tests leasing objects more than once" },
- { "lease_invalid_connector", lease_invalid_connector, "Tests leasing an invalid connector" },
- { "lease_invalid_crtc", lease_invalid_crtc, "Tests leasing an invalid crtc" },
- { "lease_invalid_plane", lease_invalid_plane, "Tests leasing an invalid plane" },
- { "page_flip_implicit_plane", page_flip_implicit_plane, "Negative test by using a "
- "non-primary plane with the page flip ioctl" },
- { "setcrtc_implicit_plane", setcrtc_implicit_plane, "Negative test by using a "
- "non-primary plane with the setcrtc ioctl" },
- { "cursor_implicit_plane", cursor_implicit_plane, "Negative test by using a non-primary"
- " plane with setcursor ioctl" },
- { "atomic_implicit_crtc", atomic_implicit_crtc, "Negative test by using a different"
- " crtc with atomic ioctl" },
- { }
- }, *f;
-
igt_fixture {
data.master.fd = drm_open_driver_master(DRIVER_ANY);
kmstest_set_vt_graphics_mode();
igt_display_require(display, data.master.fd);
}
- for (f = funcs; f->name; f++) {
-
- igt_describe(f->desc);
- igt_subtest_with_dynamic_f("%s", f->name) {
- for_each_pipe_with_valid_output(display, data.pipe, output) {
- igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
- igt_output_name(output)) {
- data.crtc_id = pipe_to_crtc_id(display, data.pipe);
- data.connector_id = output->id;
- data.plane_id =
- igt_pipe_get_plane_type(&data.master.display.pipes[data.pipe],
- DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
- f->func(&data);
+ //Display dependent subtests
+ igt_subtest_group {
+
+ const struct {
+ const char *name;
+ void (*func)(data_t *);
+ const char *desc;
+ } funcs[] = {
+ { "simple_lease", simple_lease, "Check if create lease ioctl call works" },
+ { "empty_lease", empty_lease, "Check that creating an empty lease works" },
+ { "lessee_list", lessee_list, "Check if listed lease is same as created one" },
+ { "lease_get", lease_get, "Tests getting the required contents of a lease" },
+ { "lease_unleased_connector", lease_unleased_connector, "Negative test by trying to"
+ " use an unleased connector " },
+ { "lease_unleased_crtc", lease_unleased_crtc, "Negative test by trying to use an unleased crtc" },
+ { "lease_revoke", lease_revoke, "Tests revocation of lease" },
+ { "lease_again", lease_again, "Tests leasing objects more than once" },
+ { "lease_invalid_connector", lease_invalid_connector, "Tests leasing an invalid connector" },
+ { "lease_invalid_crtc", lease_invalid_crtc, "Tests leasing an invalid crtc" },
+ { "lease_invalid_plane", lease_invalid_plane, "Tests leasing an invalid plane" },
+ { "page_flip_implicit_plane", page_flip_implicit_plane, "Negative test by using a "
+ "non-primary plane with the page flip ioctl" },
+ { "setcrtc_implicit_plane", setcrtc_implicit_plane, "Negative test by using a "
+ "non-primary plane with the setcrtc ioctl" },
+ { "cursor_implicit_plane", cursor_implicit_plane, "Negative test by using a non-primary"
+ " plane with setcursor ioctl" },
+ { "atomic_implicit_crtc", atomic_implicit_crtc, "Negative test by using a different"
+ " crtc with atomic ioctl" },
+ { }
+ }, *f;
+
+ igt_fixture
+ igt_display_require_output(display);
+
+ for (f = funcs; f->name; f++) {
+
+ igt_describe(f->desc);
+ igt_subtest_with_dynamic_f("%s", f->name) {
+ for_each_pipe_with_valid_output(display, data.pipe, output) {
+ igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
+ igt_output_name(output)) {
+ igt_display_reset(display);
+ igt_display_commit(display);
+ data.crtc_id = display->pipes[data.pipe].crtc_id;
+ data.connector_id = output->id;
+ data.plane_id =
+ igt_pipe_get_plane_type(&data.master.display.pipes[data.pipe],
+ DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
+ f->func(&data);
+ }
}
}
}
}
- igt_describe("Tests error handling while creating invalid corner-cases for "
- "create-lease ioctl");
- igt_subtest("invalid-create-leases")
- invalid_create_leases(&data);
-
- igt_describe("Tests that possible_crtcs logically match between master and "
- "lease, and that the values are correctly renumbered on the lease side.");
- igt_subtest("possible-crtcs-filtering")
- possible_crtcs_filtering(&data);
-
- igt_describe("Tests the drop/set_master interactions.");
- igt_subtest("master-vs-lease")
- master_vs_lease(&data);
-
- igt_describe("Tests that the 2nd master can only create leases while being active "
- "master, and that leases on the first master don't prevent lease creation "
- "for the 2nd master.");
- igt_subtest("multimaster-lease")
- multimaster_lease(&data);
-
- igt_describe("Tests the implicitly added planes.");
- igt_subtest("implicit-plane-lease")
- implicit_plane_lease(&data);
-
- igt_describe("Tests all the uevent cases");
- igt_subtest("lease-uevent")
- lease_uevent(&data);
+ //Display independent subtests
+ igt_subtest_group {
+
+ igt_describe("Tests error handling while creating invalid corner-cases for "
+ "create-lease ioctl");
+ igt_subtest("invalid-create-leases")
+ invalid_create_leases(&data);
+
+ igt_describe("Tests that possible_crtcs logically match between master and "
+ "lease, and that the values are correctly renumbered on the lease side.");
+ igt_subtest("possible-crtcs-filtering")
+ possible_crtcs_filtering(&data);
+
+ igt_describe("Tests the drop/set_master interactions.");
+ igt_subtest("master-vs-lease")
+ master_vs_lease(&data);
+
+ igt_describe("Tests that the 2nd master can only create leases while being active "
+ "master, and that leases on the first master don't prevent lease creation "
+ "for the 2nd master.");
+ igt_subtest("multimaster-lease")
+ multimaster_lease(&data);
+
+ igt_describe("Tests the implicitly added planes.");
+ igt_subtest("implicit-plane-lease")
+ implicit_plane_lease(&data);
+
+ igt_describe("Tests all the uevent cases");
+ igt_subtest("lease-uevent")
+ lease_uevent(&data);
+ }
+
+ igt_fixture {
+ igt_display_fini(display);
+ close(data.master.fd);
+ }
}
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [igt-dev] [PATCH v7 0/2] tests/kms_lease: IGT test Cleanup
@ 2022-08-29 17:33 Mohammed Thasleem
2022-04-21 12:57 ` [igt-dev] [PATCH v8 " Mohammed Thasleem
` (4 more replies)
0 siblings, 5 replies; 11+ messages in thread
From: Mohammed Thasleem @ 2022-08-29 17:33 UTC (permalink / raw)
To: igt-dev
Convert all possible subtests to dynamic and sanitize the system
state before starting/exiting the subtest.
Mohammed Thasleem (2):
tests/kms_lease: Create dynamic subtests
tests/kms_lease: Test Cleanup
tests/kms_lease.c | 233 +++++++++++++++++++++-------------------------
1 file changed, 104 insertions(+), 129 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] [PATCH v7 1/2] tests/kms_lease: Create dynamic subtests
2022-08-29 17:33 [igt-dev] [PATCH v7 0/2] tests/kms_lease: IGT test Cleanup Mohammed Thasleem
2022-04-21 12:57 ` [igt-dev] [PATCH v8 " Mohammed Thasleem
@ 2022-08-29 17:33 ` Mohammed Thasleem
2022-08-29 17:33 ` [igt-dev] [PATCH v7 2/2] tests/kms_lease: Test Cleanup Mohammed Thasleem
` (2 subsequent siblings)
4 siblings, 0 replies; 11+ messages in thread
From: Mohammed Thasleem @ 2022-08-29 17:33 UTC (permalink / raw)
To: igt-dev
Modified tests/kms_lease to include dynamic test cases.
v2: Updated dynamic test cases to all test cases.
v3: Removed dynamic test for which it's not required.
v4: Moved content of for loop in to igt_dynamic.
v5: Minor changes.
v6: Removed run_test which is not required.
v7: Minor changes.
Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
tests/kms_lease.c | 55 ++++++++++++++---------------------------------
1 file changed, 16 insertions(+), 39 deletions(-)
diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index 0bf102a6..bd713343 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -808,42 +808,6 @@ static void lease_invalid_plane(data_t *data)
assert_unleased(ret);
}
-
-static void run_test(data_t *data, void (*testfunc)(data_t *))
-{
- lease_t *master = &data->master;
- igt_display_t *display = &master->display;
- igt_output_t *output;
- enum pipe p;
- unsigned int valid_tests = 0;
-
- for_each_pipe_with_valid_output(display, p, output) {
- igt_info("Beginning %s on pipe %s, connector %s\n",
- igt_subtest_name(),
- kmstest_pipe_name(p),
- igt_output_name(output));
-
- data->pipe = p;
- data->crtc_id = pipe_to_crtc_id(display, p);
- data->connector_id = output->id;
- data->plane_id =
- igt_pipe_get_plane_type(&data->master.display.pipes[data->pipe],
- DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
-
- testfunc(data);
-
- igt_info("\n%s on pipe %s, connector %s: PASSED\n\n",
- igt_subtest_name(),
- kmstest_pipe_name(p),
- igt_output_name(output));
-
- valid_tests++;
- }
-
- igt_require_f(valid_tests,
- "no valid crtc/connector combinations found\n");
-}
-
#define assert_double_id_err(ret) \
igt_assert_f((ret) == -EBUSY || (ret) == -ENOSPC, \
"wrong return code %i, %s\n", ret, \
@@ -1218,6 +1182,9 @@ static void lease_uevent(data_t *data)
igt_main
{
data_t data;
+ igt_output_t *output;
+ igt_display_t *display = &data.master.display;
+
const struct {
const char *name;
void (*func)(data_t *);
@@ -1249,14 +1216,24 @@ igt_main
igt_fixture {
data.master.fd = drm_open_driver_master(DRIVER_ANY);
kmstest_set_vt_graphics_mode();
- igt_display_require(&data.master.display, data.master.fd);
+ igt_display_require(display, data.master.fd);
}
for (f = funcs; f->name; f++) {
igt_describe(f->desc);
- igt_subtest_f("%s", f->name) {
- run_test(&data, f->func);
+ igt_subtest_with_dynamic_f("%s", f->name) {
+ for_each_pipe_with_valid_output(display, data.pipe, output) {
+ igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
+ igt_output_name(output)) {
+ data.crtc_id = pipe_to_crtc_id(display, data.pipe);
+ data.connector_id = output->id;
+ data.plane_id =
+ igt_pipe_get_plane_type(&data.master.display.pipes[data.pipe],
+ DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
+ f->func(&data);
+ }
+ }
}
}
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [igt-dev] [PATCH v7 2/2] tests/kms_lease: Test Cleanup
2022-08-29 17:33 [igt-dev] [PATCH v7 0/2] tests/kms_lease: IGT test Cleanup Mohammed Thasleem
2022-04-21 12:57 ` [igt-dev] [PATCH v8 " Mohammed Thasleem
2022-08-29 17:33 ` [igt-dev] [PATCH v7 1/2] tests/kms_lease: Create dynamic subtests Mohammed Thasleem
@ 2022-08-29 17:33 ` Mohammed Thasleem
2022-09-12 7:59 ` Modem, Bhanuprakash
2022-08-29 19:07 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_lease: IGT test Cleanup Patchwork
2022-08-31 9:42 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 1 reply; 11+ messages in thread
From: Mohammed Thasleem @ 2022-08-29 17:33 UTC (permalink / raw)
To: igt-dev
Sanitize the system state before starting the subtest.
v2: Minor changes.
v3: Moved display reset and commit in to igt_subtest_with_dynamic_f.
v4: Separated display and non-display subsets.
v5: Removed pipe_to_crtc_id and crtc_id_to_pipe.
Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
tests/kms_lease.c | 200 +++++++++++++++++++++++-----------------------
1 file changed, 99 insertions(+), 101 deletions(-)
diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index bd713343..5d303a16 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -64,22 +64,6 @@ typedef struct {
uint32_t plane_id;
} data_t;
-static uint32_t pipe_to_crtc_id(igt_display_t *display, enum pipe pipe)
-{
- return display->pipes[pipe].crtc_id;
-}
-
-static enum pipe crtc_id_to_pipe(igt_display_t *display, uint32_t crtc_id)
-{
- enum pipe pipe;
-
- for_each_pipe(display, pipe) {
- if(display->pipes[pipe].crtc_id == crtc_id)
- return pipe;
- }
- return -1;
-}
-
static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t connector_id)
{
drmModeConnector connector;
@@ -88,12 +72,12 @@ static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t con
return igt_output_from_connector(display, &connector);
}
-static int prepare_crtc(lease_t *lease, uint32_t connector_id, uint32_t crtc_id)
+static int prepare_crtc(lease_t *lease, data_t *data)
{
drmModeModeInfo *mode;
igt_display_t *display = &lease->display;
- igt_output_t *output = connector_id_to_output(display, connector_id);
- enum pipe pipe = crtc_id_to_pipe(display, crtc_id);
+ igt_output_t *output = connector_id_to_output(display, data->connector_id);
+ enum pipe pipe = data->pipe;
igt_plane_t *primary;
int ret;
@@ -136,7 +120,7 @@ static void cleanup_crtc(lease_t *lease, igt_output_t *output)
primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
igt_plane_set_fb(primary, NULL);
- igt_output_set_pipe(output, PIPE_ANY);
+ igt_output_set_pipe(output, PIPE_NONE);
igt_display_commit(display);
}
@@ -238,7 +222,7 @@ static void simple_lease(data_t *data)
igt_display_require(&lease.display, lease.fd);
/* Set a mode on the leased output */
- igt_assert_eq(0, prepare_crtc(&lease, data->connector_id, data->crtc_id));
+ igt_assert_eq(0, prepare_crtc(&lease, data));
/* Paint something attractive */
paint_fb(lease.fd, &lease.primary_fb, "simple_lease",
@@ -266,7 +250,6 @@ static void page_flip_implicit_plane(data_t *data)
drmModePlaneRes *plane_resources;
uint32_t wrong_plane_id = 0;
int i;
- enum pipe pipe;
igt_display_t *display;
/* find a plane which isn't the primary one for us */
@@ -292,7 +275,7 @@ static void page_flip_implicit_plane(data_t *data)
drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
/* Set a mode on the leased output */
- igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
+ igt_assert_eq(0, prepare_crtc(&data->master, data));
/* sanity check */
do_or_die(drmModePageFlip(data->master.fd, data->crtc_id,
@@ -300,10 +283,9 @@ static void page_flip_implicit_plane(data_t *data)
0, NULL));
display = &data->master.display;
- pipe = crtc_id_to_pipe(display, data->crtc_id);
igt_wait_for_vblank(data->master.fd,
- display->pipes[pipe].crtc_offset);
+ display->pipes[data->pipe].crtc_offset);
do_or_die(drmModePageFlip(mcl.fd, data->crtc_id,
data->master.primary_fb.fb_id,
@@ -313,10 +295,8 @@ static void page_flip_implicit_plane(data_t *data)
object_ids[mcl.object_count++] = wrong_plane_id;
do_or_die(create_lease(data->master.fd, &mcl));
- pipe = crtc_id_to_pipe(display, data->crtc_id);
-
igt_wait_for_vblank(data->master.fd,
- display->pipes[pipe].crtc_offset);
+ display->pipes[data->pipe].crtc_offset);
igt_assert_eq(drmModePageFlip(mcl.fd, data->crtc_id,
data->master.primary_fb.fb_id,
@@ -363,7 +343,7 @@ static void setcrtc_implicit_plane(data_t *data)
drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
/* Set a mode on the leased output */
- igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
+ igt_assert_eq(0, prepare_crtc(&data->master, data));
/* sanity check */
do_or_die(drmModeSetCrtc(data->master.fd, data->crtc_id, -1,
@@ -404,7 +384,7 @@ static void cursor_implicit_plane(data_t *data)
drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
/* Set a mode on the leased output */
- igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
+ igt_assert_eq(0, prepare_crtc(&data->master, data));
/* sanity check */
do_or_die(drmModeSetCursor(data->master.fd, data->crtc_id, 0, 0, 0));
@@ -642,8 +622,8 @@ static void lease_unleased_crtc(data_t *data)
for_each_pipe(&data->master.display, p) {
if (bad_crtc_id != 0)
break;
- if (pipe_to_crtc_id(&data->master.display, p) != data->crtc_id)
- bad_crtc_id = pipe_to_crtc_id(&data->master.display, p);
+ if (data->master.display.pipes[p].crtc_id != data->crtc_id)
+ bad_crtc_id = data->master.display.pipes[p].crtc_id;
}
/* Give up if there isn't another crtc */
@@ -729,7 +709,7 @@ static void lease_revoke(data_t *data)
igt_assert_eq(revoke_lease(data->master.fd, &mrl), 0);
/* Try to use the leased objects */
- ret = prepare_crtc(&lease, data->connector_id, data->crtc_id);
+ ret = prepare_crtc(&lease, data);
/* Ensure that the expected error is returned */
igt_assert_eq(ret, -ENOENT);
@@ -1185,83 +1165,101 @@ igt_main
igt_output_t *output;
igt_display_t *display = &data.master.display;
- const struct {
- const char *name;
- void (*func)(data_t *);
- const char *desc;
- } funcs[] = {
- { "simple_lease", simple_lease, "Check if create lease ioctl call works" },
- { "empty_lease", empty_lease, "Check that creating an empty lease works" },
- { "lessee_list", lessee_list, "Check if listed lease is same as created one" },
- { "lease_get", lease_get, "Tests getting the required contents of a lease" },
- { "lease_unleased_connector", lease_unleased_connector, "Negative test by trying to"
- " use an unleased connector " },
- { "lease_unleased_crtc", lease_unleased_crtc, "Negative test by trying to use an unleased crtc" },
- { "lease_revoke", lease_revoke, "Tests revocation of lease" },
- { "lease_again", lease_again, "Tests leasing objects more than once" },
- { "lease_invalid_connector", lease_invalid_connector, "Tests leasing an invalid connector" },
- { "lease_invalid_crtc", lease_invalid_crtc, "Tests leasing an invalid crtc" },
- { "lease_invalid_plane", lease_invalid_plane, "Tests leasing an invalid plane" },
- { "page_flip_implicit_plane", page_flip_implicit_plane, "Negative test by using a "
- "non-primary plane with the page flip ioctl" },
- { "setcrtc_implicit_plane", setcrtc_implicit_plane, "Negative test by using a "
- "non-primary plane with the setcrtc ioctl" },
- { "cursor_implicit_plane", cursor_implicit_plane, "Negative test by using a non-primary"
- " plane with setcursor ioctl" },
- { "atomic_implicit_crtc", atomic_implicit_crtc, "Negative test by using a different"
- " crtc with atomic ioctl" },
- { }
- }, *f;
-
igt_fixture {
data.master.fd = drm_open_driver_master(DRIVER_ANY);
kmstest_set_vt_graphics_mode();
igt_display_require(display, data.master.fd);
}
- for (f = funcs; f->name; f++) {
-
- igt_describe(f->desc);
- igt_subtest_with_dynamic_f("%s", f->name) {
- for_each_pipe_with_valid_output(display, data.pipe, output) {
- igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
- igt_output_name(output)) {
- data.crtc_id = pipe_to_crtc_id(display, data.pipe);
- data.connector_id = output->id;
- data.plane_id =
- igt_pipe_get_plane_type(&data.master.display.pipes[data.pipe],
- DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
- f->func(&data);
+ /*Display dependent subtests*/
+ igt_subtest_group {
+
+ const struct {
+ const char *name;
+ void (*func)(data_t *);
+ const char *desc;
+ } funcs[] = {
+ { "simple_lease", simple_lease, "Check if create lease ioctl call works" },
+ { "empty_lease", empty_lease, "Check that creating an empty lease works" },
+ { "lessee_list", lessee_list, "Check if listed lease is same as created one" },
+ { "lease_get", lease_get, "Tests getting the required contents of a lease" },
+ { "lease_unleased_connector", lease_unleased_connector, "Negative test by trying to"
+ " use an unleased connector " },
+ { "lease_unleased_crtc", lease_unleased_crtc, "Negative test by trying to use an unleased crtc" },
+ { "lease_revoke", lease_revoke, "Tests revocation of lease" },
+ { "lease_again", lease_again, "Tests leasing objects more than once" },
+ { "lease_invalid_connector", lease_invalid_connector, "Tests leasing an invalid connector" },
+ { "lease_invalid_crtc", lease_invalid_crtc, "Tests leasing an invalid crtc" },
+ { "lease_invalid_plane", lease_invalid_plane, "Tests leasing an invalid plane" },
+ { "page_flip_implicit_plane", page_flip_implicit_plane, "Negative test by using a "
+ "non-primary plane with the page flip ioctl" },
+ { "setcrtc_implicit_plane", setcrtc_implicit_plane, "Negative test by using a "
+ "non-primary plane with the setcrtc ioctl" },
+ { "cursor_implicit_plane", cursor_implicit_plane, "Negative test by using a non-primary"
+ " plane with setcursor ioctl" },
+ { "atomic_implicit_crtc", atomic_implicit_crtc, "Negative test by using a different"
+ " crtc with atomic ioctl" },
+ { }
+ }, *f;
+
+ igt_fixture
+ igt_display_require_output(display);
+
+ for (f = funcs; f->name; f++) {
+
+ igt_describe(f->desc);
+ igt_subtest_with_dynamic_f("%s", f->name) {
+ for_each_pipe_with_valid_output(display, data.pipe, output) {
+ igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
+ igt_output_name(output)) {
+ igt_display_reset(display);
+ igt_display_commit(display);
+ data.crtc_id = display->pipes[data.pipe].crtc_id;
+ data.connector_id = output->id;
+ data.plane_id =
+ igt_pipe_get_plane_type(&data.master.display.pipes[data.pipe],
+ DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
+ f->func(&data);
+ }
}
}
}
}
- igt_describe("Tests error handling while creating invalid corner-cases for "
- "create-lease ioctl");
- igt_subtest("invalid-create-leases")
- invalid_create_leases(&data);
-
- igt_describe("Tests that possible_crtcs logically match between master and "
- "lease, and that the values are correctly renumbered on the lease side.");
- igt_subtest("possible-crtcs-filtering")
- possible_crtcs_filtering(&data);
-
- igt_describe("Tests the drop/set_master interactions.");
- igt_subtest("master-vs-lease")
- master_vs_lease(&data);
-
- igt_describe("Tests that the 2nd master can only create leases while being active "
- "master, and that leases on the first master don't prevent lease creation "
- "for the 2nd master.");
- igt_subtest("multimaster-lease")
- multimaster_lease(&data);
-
- igt_describe("Tests the implicitly added planes.");
- igt_subtest("implicit-plane-lease")
- implicit_plane_lease(&data);
-
- igt_describe("Tests all the uevent cases");
- igt_subtest("lease-uevent")
- lease_uevent(&data);
+ /*Non-Display dependent subtests*/
+ igt_subtest_group {
+
+ igt_describe("Tests error handling while creating invalid corner-cases for "
+ "create-lease ioctl");
+ igt_subtest("invalid-create-leases")
+ invalid_create_leases(&data);
+
+ igt_describe("Tests that possible_crtcs logically match between master and "
+ "lease, and that the values are correctly renumbered on the lease side.");
+ igt_subtest("possible-crtcs-filtering")
+ possible_crtcs_filtering(&data);
+
+ igt_describe("Tests the drop/set_master interactions.");
+ igt_subtest("master-vs-lease")
+ master_vs_lease(&data);
+
+ igt_describe("Tests that the 2nd master can only create leases while being active "
+ "master, and that leases on the first master don't prevent lease creation "
+ "for the 2nd master.");
+ igt_subtest("multimaster-lease")
+ multimaster_lease(&data);
+
+ igt_describe("Tests the implicitly added planes.");
+ igt_subtest("implicit-plane-lease")
+ implicit_plane_lease(&data);
+
+ igt_describe("Tests all the uevent cases");
+ igt_subtest("lease-uevent")
+ lease_uevent(&data);
+ }
+
+ igt_fixture {
+ igt_display_fini(display);
+ close(data.master.fd);
+ }
}
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
* [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_lease: IGT test Cleanup
2022-08-29 17:33 [igt-dev] [PATCH v7 0/2] tests/kms_lease: IGT test Cleanup Mohammed Thasleem
` (2 preceding siblings ...)
2022-08-29 17:33 ` [igt-dev] [PATCH v7 2/2] tests/kms_lease: Test Cleanup Mohammed Thasleem
@ 2022-08-29 19:07 ` Patchwork
2022-08-31 9:42 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2022-08-29 19:07 UTC (permalink / raw)
To: Mohammed Thasleem; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 4246 bytes --]
== Series Details ==
Series: tests/kms_lease: IGT test Cleanup
URL : https://patchwork.freedesktop.org/series/107910/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12044 -> IGTPW_7701
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/index.html
Participating hosts (40 -> 33)
------------------------------
Missing (7): fi-rkl-11600 fi-hsw-4200u fi-ctg-p8600 fi-hsw-4770 bat-jsl-3 bat-dg2-10 fi-bdw-samus
Known issues
------------
Here are the changes found in IGTPW_7701 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@i915_selftest@live@requests:
- fi-pnv-d510: [PASS][1] -> [DMESG-FAIL][2] ([i915#4528])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/fi-pnv-d510/igt@i915_selftest@live@requests.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/fi-pnv-d510/igt@i915_selftest@live@requests.html
* igt@kms_chamelium@common-hpd-after-suspend:
- fi-bdw-5557u: NOTRUN -> [SKIP][3] ([fdo#109271] / [fdo#111827])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/fi-bdw-5557u/igt@kms_chamelium@common-hpd-after-suspend.html
#### Possible fixes ####
* igt@gem_exec_suspend@basic-s3@smem:
- {bat-rplp-1}: [DMESG-WARN][4] ([i915#2867]) -> [PASS][5]
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/bat-rplp-1/igt@gem_exec_suspend@basic-s3@smem.html
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/bat-rplp-1/igt@gem_exec_suspend@basic-s3@smem.html
* igt@i915_selftest@live@gt_pm:
- bat-adlp-4: [DMESG-FAIL][6] ([i915#3987]) -> [PASS][7]
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/bat-adlp-4/igt@i915_selftest@live@gt_pm.html
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/bat-adlp-4/igt@i915_selftest@live@gt_pm.html
* igt@i915_suspend@basic-s3-without-i915:
- fi-bdw-5557u: [INCOMPLETE][8] ([i915#146] / [i915#6598]) -> [PASS][9]
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/fi-bdw-5557u/igt@i915_suspend@basic-s3-without-i915.html
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/fi-bdw-5557u/igt@i915_suspend@basic-s3-without-i915.html
#### Warnings ####
* igt@i915_selftest@live@hangcheck:
- bat-dg1-5: [DMESG-FAIL][10] ([i915#4957]) -> [DMESG-FAIL][11] ([i915#4494] / [i915#4957])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#146]: https://gitlab.freedesktop.org/drm/intel/issues/146
[i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
[i915#3987]: https://gitlab.freedesktop.org/drm/intel/issues/3987
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
[i915#4528]: https://gitlab.freedesktop.org/drm/intel/issues/4528
[i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
[i915#6257]: https://gitlab.freedesktop.org/drm/intel/issues/6257
[i915#6380]: https://gitlab.freedesktop.org/drm/intel/issues/6380
[i915#6598]: https://gitlab.freedesktop.org/drm/intel/issues/6598
[i915#6670]: https://gitlab.freedesktop.org/drm/intel/issues/6670
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_6637 -> IGTPW_7701
CI-20190529: 20190529
CI_DRM_12044: 287ad23d60ce7aa8befbe8dd1fea6fb705bd08ac @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_7701: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/index.html
IGT_6637: a23e8aed0b54018339647d0817267431bd2b7075 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/index.html
[-- Attachment #2: Type: text/html, Size: 4777 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] ✓ Fi.CI.IGT: success for tests/kms_lease: IGT test Cleanup
2022-08-29 17:33 [igt-dev] [PATCH v7 0/2] tests/kms_lease: IGT test Cleanup Mohammed Thasleem
` (3 preceding siblings ...)
2022-08-29 19:07 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_lease: IGT test Cleanup Patchwork
@ 2022-08-31 9:42 ` Patchwork
4 siblings, 0 replies; 11+ messages in thread
From: Patchwork @ 2022-08-31 9:42 UTC (permalink / raw)
To: Mohammed Thasleem; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 37243 bytes --]
== Series Details ==
Series: tests/kms_lease: IGT test Cleanup
URL : https://patchwork.freedesktop.org/series/107910/
State : success
== Summary ==
CI Bug Log - changes from CI_DRM_12044_full -> IGTPW_7701_full
====================================================
Summary
-------
**SUCCESS**
No regressions found.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/index.html
Participating hosts (12 -> 8)
------------------------------
Missing (4): pig-skl-6260u pig-kbl-iris shard-rkl pig-glk-j5005
New tests
---------
New tests have been introduced between CI_DRM_12044_full and IGTPW_7701_full:
### New IGT tests (148) ###
* igt@kms_lease@atomic_implicit_crtc@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.13] s
* igt@kms_lease@atomic_implicit_crtc@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.40] s
* igt@kms_lease@atomic_implicit_crtc@pipe-a-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.07] s
* igt@kms_lease@atomic_implicit_crtc@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.07] s
* igt@kms_lease@atomic_implicit_crtc@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@atomic_implicit_crtc@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@atomic_implicit_crtc@pipe-b-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@atomic_implicit_crtc@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.00] s
* igt@kms_lease@atomic_implicit_crtc@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@atomic_implicit_crtc@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@atomic_implicit_crtc@pipe-c-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@atomic_implicit_crtc@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@cursor_implicit_plane@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.39] s
* igt@kms_lease@cursor_implicit_plane@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.60] s
* igt@kms_lease@cursor_implicit_plane@pipe-a-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.15] s
* igt@kms_lease@cursor_implicit_plane@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.21] s
* igt@kms_lease@cursor_implicit_plane@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.35] s
* igt@kms_lease@cursor_implicit_plane@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.19] s
* igt@kms_lease@cursor_implicit_plane@pipe-b-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.10] s
* igt@kms_lease@cursor_implicit_plane@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.14] s
* igt@kms_lease@cursor_implicit_plane@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.33] s
* igt@kms_lease@cursor_implicit_plane@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.22] s
* igt@kms_lease@cursor_implicit_plane@pipe-c-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.08] s
* igt@kms_lease@cursor_implicit_plane@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.08] s
* igt@kms_lease@empty_lease@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.12] s
* igt@kms_lease@empty_lease@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.39] s
* igt@kms_lease@empty_lease@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.07] s
* igt@kms_lease@empty_lease@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@empty_lease@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@empty_lease@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.00] s
* igt@kms_lease@empty_lease@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@empty_lease@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_again@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.13] s
* igt@kms_lease@lease_again@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.39] s
* igt@kms_lease@lease_again@pipe-a-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.08] s
* igt@kms_lease@lease_again@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.06] s
* igt@kms_lease@lease_again@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_again@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_again@pipe-b-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_again@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.00] s
* igt@kms_lease@lease_again@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_again@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_again@pipe-c-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_again@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_get@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.11] s
* igt@kms_lease@lease_get@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.39] s
* igt@kms_lease@lease_get@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_get@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_get@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_get@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_invalid_connector@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.41] s
* igt@kms_lease@lease_invalid_connector@pipe-a-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.14] s
* igt@kms_lease@lease_invalid_connector@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.07] s
* igt@kms_lease@lease_invalid_connector@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_invalid_connector@pipe-b-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_invalid_connector@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.00] s
* igt@kms_lease@lease_invalid_connector@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_invalid_connector@pipe-c-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_invalid_connector@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_invalid_crtc@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.12] s
* igt@kms_lease@lease_invalid_crtc@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.85] s
* igt@kms_lease@lease_invalid_crtc@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.07] s
* igt@kms_lease@lease_invalid_crtc@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_invalid_crtc@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_invalid_crtc@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.00] s
* igt@kms_lease@lease_invalid_crtc@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_invalid_crtc@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_invalid_plane@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.12] s
* igt@kms_lease@lease_invalid_plane@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.40] s
* igt@kms_lease@lease_invalid_plane@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.07] s
* igt@kms_lease@lease_invalid_plane@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_invalid_plane@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_invalid_plane@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.00] s
* igt@kms_lease@lease_invalid_plane@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_invalid_plane@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_revoke@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.20] s
* igt@kms_lease@lease_revoke@pipe-a-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.11] s
* igt@kms_lease@lease_revoke@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.08] s
* igt@kms_lease@lease_revoke@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_revoke@pipe-b-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.05] s
* igt@kms_lease@lease_revoke@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_revoke@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_revoke@pipe-c-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.05] s
* igt@kms_lease@lease_revoke@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.05] s
* igt@kms_lease@lease_unleased_connector@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.27] s
* igt@kms_lease@lease_unleased_connector@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.23] s
* igt@kms_lease@lease_unleased_connector@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.08] s
* igt@kms_lease@lease_unleased_connector@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.17] s
* igt@kms_lease@lease_unleased_connector@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_unleased_connector@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_unleased_connector@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.17] s
* igt@kms_lease@lease_unleased_connector@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_unleased_crtc@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.20] s
* igt@kms_lease@lease_unleased_crtc@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.19] s
* igt@kms_lease@lease_unleased_crtc@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.06] s
* igt@kms_lease@lease_unleased_crtc@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.10] s
* igt@kms_lease@lease_unleased_crtc@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lease_unleased_crtc@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lease_unleased_crtc@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.11] s
* igt@kms_lease@lease_unleased_crtc@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lessee_list@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.12] s
* igt@kms_lease@lessee_list@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.39] s
* igt@kms_lease@lessee_list@pipe-a-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.09] s
* igt@kms_lease@lessee_list@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.06] s
* igt@kms_lease@lessee_list@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lessee_list@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lessee_list@pipe-b-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lessee_list@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lessee_list@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.02] s
* igt@kms_lease@lessee_list@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lessee_list@pipe-c-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@lessee_list@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.01] s
* igt@kms_lease@page_flip_implicit_plane@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.42] s
* igt@kms_lease@page_flip_implicit_plane@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.58] s
* igt@kms_lease@page_flip_implicit_plane@pipe-a-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.17] s
* igt@kms_lease@page_flip_implicit_plane@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.25] s
* igt@kms_lease@page_flip_implicit_plane@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.34] s
* igt@kms_lease@page_flip_implicit_plane@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.20] s
* igt@kms_lease@page_flip_implicit_plane@pipe-b-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.11] s
* igt@kms_lease@page_flip_implicit_plane@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.18] s
* igt@kms_lease@page_flip_implicit_plane@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.33] s
* igt@kms_lease@page_flip_implicit_plane@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.24] s
* igt@kms_lease@page_flip_implicit_plane@pipe-c-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.11] s
* igt@kms_lease@page_flip_implicit_plane@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.10] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.42] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.64] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-a-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.19] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.22] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.31] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.21] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-b-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.13] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.16] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.32] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.20] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-c-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.11] s
* igt@kms_lease@setcrtc_implicit_plane@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.12] s
* igt@kms_lease@simple_lease@pipe-a-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.70] s
* igt@kms_lease@simple_lease@pipe-a-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.92] s
* igt@kms_lease@simple_lease@pipe-a-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.27] s
* igt@kms_lease@simple_lease@pipe-a-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.24] s
* igt@kms_lease@simple_lease@pipe-b-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.50] s
* igt@kms_lease@simple_lease@pipe-b-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.50] s
* igt@kms_lease@simple_lease@pipe-b-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.16] s
* igt@kms_lease@simple_lease@pipe-b-vga-1:
- Statuses : 1 pass(s)
- Exec time: [0.15] s
* igt@kms_lease@simple_lease@pipe-c-dp-1:
- Statuses : 1 pass(s)
- Exec time: [0.49] s
* igt@kms_lease@simple_lease@pipe-c-edp-1:
- Statuses : 1 pass(s)
- Exec time: [1.47] s
* igt@kms_lease@simple_lease@pipe-c-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.17] s
* igt@kms_lease@simple_lease@pipe-d-hdmi-a-1:
- Statuses : 1 pass(s)
- Exec time: [0.16] s
Known issues
------------
Here are the changes found in IGTPW_7701_full that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_busy@close-race:
- shard-snb: [PASS][1] -> [TIMEOUT][2] ([i915#5748])
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-snb4/igt@gem_busy@close-race.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-snb6/igt@gem_busy@close-race.html
* igt@gem_exec_balancer@parallel:
- shard-iclb: [PASS][3] -> [SKIP][4] ([i915#4525])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb2/igt@gem_exec_balancer@parallel.html
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb8/igt@gem_exec_balancer@parallel.html
* igt@gem_exec_balancer@parallel-ordering:
- shard-iclb: NOTRUN -> [SKIP][5] ([i915#4525])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb6/igt@gem_exec_balancer@parallel-ordering.html
* igt@gem_exec_fair@basic-deadline:
- shard-apl: NOTRUN -> [FAIL][6] ([i915#2846])
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl6/igt@gem_exec_fair@basic-deadline.html
* igt@gem_lmem_swapping@parallel-random-verify:
- shard-apl: NOTRUN -> [SKIP][7] ([fdo#109271] / [i915#4613]) +3 similar issues
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl2/igt@gem_lmem_swapping@parallel-random-verify.html
* igt@gem_lmem_swapping@verify:
- shard-iclb: NOTRUN -> [SKIP][8] ([i915#4613]) +1 similar issue
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb7/igt@gem_lmem_swapping@verify.html
* igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-yf-tiled:
- shard-iclb: NOTRUN -> [SKIP][9] ([i915#768])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb5/igt@gem_render_copy@yf-tiled-mc-ccs-to-vebox-yf-tiled.html
* igt@gem_workarounds@suspend-resume-context:
- shard-apl: NOTRUN -> [DMESG-WARN][10] ([i915#180])
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl1/igt@gem_workarounds@suspend-resume-context.html
* igt@gen3_render_mixed_blits:
- shard-iclb: NOTRUN -> [SKIP][11] ([fdo#109289]) +1 similar issue
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb7/igt@gen3_render_mixed_blits.html
* igt@i915_pm_dc@dc6-psr:
- shard-iclb: [PASS][12] -> [FAIL][13] ([i915#454])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb6/igt@i915_pm_dc@dc6-psr.html
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb2/igt@i915_pm_dc@dc6-psr.html
* igt@i915_pm_dc@dc9-dpms:
- shard-iclb: [PASS][14] -> [SKIP][15] ([i915#4281])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb1/igt@i915_pm_dc@dc9-dpms.html
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb3/igt@i915_pm_dc@dc9-dpms.html
* igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip:
- shard-iclb: NOTRUN -> [SKIP][16] ([fdo#110723])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb1/igt@kms_big_fb@yf-tiled-max-hw-stride-64bpp-rotate-0-hflip.html
* igt@kms_ccs@pipe-a-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc:
- shard-iclb: NOTRUN -> [SKIP][17] ([fdo#109278]) +2 similar issues
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb3/igt@kms_ccs@pipe-a-crc-primary-rotation-180-4_tiled_dg2_rc_ccs_cc.html
* igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs:
- shard-apl: NOTRUN -> [SKIP][18] ([fdo#109271] / [i915#3886]) +9 similar issues
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl2/igt@kms_ccs@pipe-b-crc-sprite-planes-basic-y_tiled_gen12_mc_ccs.html
* igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_rc_ccs_cc:
- shard-snb: NOTRUN -> [SKIP][19] ([fdo#109271]) +34 similar issues
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-snb6/igt@kms_ccs@pipe-d-crc-primary-basic-y_tiled_gen12_rc_ccs_cc.html
* igt@kms_chamelium@vga-frame-dump:
- shard-apl: NOTRUN -> [SKIP][20] ([fdo#109271] / [fdo#111827]) +3 similar issues
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl6/igt@kms_chamelium@vga-frame-dump.html
* igt@kms_color_chamelium@ctm-0-25:
- shard-iclb: NOTRUN -> [SKIP][21] ([fdo#109284] / [fdo#111827])
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb3/igt@kms_color_chamelium@ctm-0-25.html
- shard-snb: NOTRUN -> [SKIP][22] ([fdo#109271] / [fdo#111827])
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-snb5/igt@kms_color_chamelium@ctm-0-25.html
* igt@kms_content_protection@dp-mst-type-1:
- shard-iclb: NOTRUN -> [SKIP][23] ([i915#3116])
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb7/igt@kms_content_protection@dp-mst-type-1.html
* igt@kms_cursor_crc@cursor-suspend@pipe-c-dp-1:
- shard-apl: [PASS][24] -> [DMESG-WARN][25] ([i915#180]) +1 similar issue
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-apl2/igt@kms_cursor_crc@cursor-suspend@pipe-c-dp-1.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl8/igt@kms_cursor_crc@cursor-suspend@pipe-c-dp-1.html
* igt@kms_cursor_legacy@cursorb-vs-flipa@legacy:
- shard-iclb: NOTRUN -> [SKIP][26] ([fdo#109274]) +6 similar issues
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb3/igt@kms_cursor_legacy@cursorb-vs-flipa@legacy.html
* igt@kms_cursor_legacy@flip-vs-cursor@toggle:
- shard-iclb: [PASS][27] -> [FAIL][28] ([i915#2346]) +3 similar issues
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb2/igt@kms_cursor_legacy@flip-vs-cursor@toggle.html
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb7/igt@kms_cursor_legacy@flip-vs-cursor@toggle.html
* igt@kms_flip@flip-vs-suspend-interruptible@b-vga1:
- shard-snb: [PASS][29] -> [DMESG-WARN][30] ([i915#5090])
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-snb5/igt@kms_flip@flip-vs-suspend-interruptible@b-vga1.html
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-snb5/igt@kms_flip@flip-vs-suspend-interruptible@b-vga1.html
* igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][31] ([i915#2672]) +8 similar issues
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb3/igt@kms_flip_scaled_crc@flip-32bpp-4tile-to-32bpp-4tiledg2rcccs-upscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][32] ([i915#6375])
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-yftile-to-32bpp-yftileccs-downscaling@pipe-a-default-mode.html
* igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-default-mode:
- shard-iclb: NOTRUN -> [SKIP][33] ([i915#2672] / [i915#3555]) +1 similar issue
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb2/igt@kms_flip_scaled_crc@flip-32bpp-ytile-to-32bpp-ytilegen12rcccs-downscaling@pipe-a-default-mode.html
* igt@kms_frontbuffer_tracking@psr-2p-pri-indfb-multidraw:
- shard-iclb: NOTRUN -> [SKIP][34] ([fdo#109280]) +5 similar issues
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb8/igt@kms_frontbuffer_tracking@psr-2p-pri-indfb-multidraw.html
* igt@kms_hdr@bpc-switch-suspend:
- shard-iclb: NOTRUN -> [SKIP][35] ([i915#3555]) +1 similar issue
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb1/igt@kms_hdr@bpc-switch-suspend.html
* igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb:
- shard-apl: NOTRUN -> [FAIL][36] ([i915#265])
[36]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl6/igt@kms_plane_alpha_blend@pipe-a-alpha-transparent-fb.html
* igt@kms_plane_alpha_blend@pipe-b-alpha-basic:
- shard-apl: NOTRUN -> [FAIL][37] ([fdo#108145] / [i915#265]) +1 similar issue
[37]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl8/igt@kms_plane_alpha_blend@pipe-b-alpha-basic.html
* igt@kms_plane_scaling@plane-upscale-with-rotation-factor-0-25@pipe-a-dp-1:
- shard-apl: NOTRUN -> [SKIP][38] ([fdo#109271]) +109 similar issues
[38]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl3/igt@kms_plane_scaling@plane-upscale-with-rotation-factor-0-25@pipe-a-dp-1.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf:
- shard-iclb: NOTRUN -> [SKIP][39] ([i915#658])
[39]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb1/igt@kms_psr2_sf@overlay-plane-move-continuous-exceed-sf.html
* igt@kms_psr2_sf@plane-move-sf-dmg-area:
- shard-apl: NOTRUN -> [SKIP][40] ([fdo#109271] / [i915#658]) +1 similar issue
[40]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl2/igt@kms_psr2_sf@plane-move-sf-dmg-area.html
* igt@kms_psr@psr2_primary_mmap_cpu:
- shard-iclb: NOTRUN -> [SKIP][41] ([fdo#109441]) +1 similar issue
[41]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb7/igt@kms_psr@psr2_primary_mmap_cpu.html
* igt@kms_psr@psr2_sprite_mmap_cpu:
- shard-iclb: [PASS][42] -> [SKIP][43] ([fdo#109441]) +2 similar issues
[42]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb2/igt@kms_psr@psr2_sprite_mmap_cpu.html
[43]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb7/igt@kms_psr@psr2_sprite_mmap_cpu.html
* igt@kms_writeback@writeback-pixel-formats:
- shard-apl: NOTRUN -> [SKIP][44] ([fdo#109271] / [i915#2437])
[44]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl3/igt@kms_writeback@writeback-pixel-formats.html
* igt@sysfs_clients@busy:
- shard-apl: NOTRUN -> [SKIP][45] ([fdo#109271] / [i915#2994])
[45]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl6/igt@sysfs_clients@busy.html
#### Possible fixes ####
* igt@feature_discovery@psr2:
- shard-iclb: [SKIP][46] ([i915#658]) -> [PASS][47]
[46]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb3/igt@feature_discovery@psr2.html
[47]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb2/igt@feature_discovery@psr2.html
* igt@gem_ctx_exec@basic-nohangcheck:
- {shard-tglu}: [FAIL][48] ([i915#6268]) -> [PASS][49]
[48]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-tglu-6/igt@gem_ctx_exec@basic-nohangcheck.html
[49]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-tglu-2/igt@gem_ctx_exec@basic-nohangcheck.html
* igt@gem_ctx_isolation@preservation-s3@rcs0:
- shard-apl: [DMESG-WARN][50] ([i915#180]) -> [PASS][51]
[50]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-apl7/igt@gem_ctx_isolation@preservation-s3@rcs0.html
[51]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl8/igt@gem_ctx_isolation@preservation-s3@rcs0.html
* igt@gem_eio@in-flight-contexts-10ms:
- shard-iclb: [TIMEOUT][52] ([i915#3070]) -> [PASS][53]
[52]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb8/igt@gem_eio@in-flight-contexts-10ms.html
[53]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb3/igt@gem_eio@in-flight-contexts-10ms.html
* igt@gem_exec_balancer@parallel-out-fence:
- shard-iclb: [SKIP][54] ([i915#4525]) -> [PASS][55]
[54]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb6/igt@gem_exec_balancer@parallel-out-fence.html
[55]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb2/igt@gem_exec_balancer@parallel-out-fence.html
* igt@gen9_exec_parse@allowed-single:
- shard-apl: [DMESG-WARN][56] ([i915#5566] / [i915#716]) -> [PASS][57]
[56]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-apl2/igt@gen9_exec_parse@allowed-single.html
[57]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-apl7/igt@gen9_exec_parse@allowed-single.html
* igt@kms_psr2_su@page_flip-xrgb8888:
- shard-iclb: [SKIP][58] ([fdo#109642] / [fdo#111068] / [i915#658]) -> [PASS][59]
[58]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb3/igt@kms_psr2_su@page_flip-xrgb8888.html
[59]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb2/igt@kms_psr2_su@page_flip-xrgb8888.html
* igt@kms_psr@psr2_sprite_plane_onoff:
- shard-iclb: [SKIP][60] ([fdo#109441]) -> [PASS][61] +1 similar issue
[60]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb5/igt@kms_psr@psr2_sprite_plane_onoff.html
[61]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb2/igt@kms_psr@psr2_sprite_plane_onoff.html
#### Warnings ####
* igt@i915_pm_dc@dc3co-vpb-simulation:
- shard-iclb: [SKIP][62] ([i915#588]) -> [SKIP][63] ([i915#658])
[62]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb2/igt@i915_pm_dc@dc3co-vpb-simulation.html
[63]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb6/igt@i915_pm_dc@dc3co-vpb-simulation.html
* igt@i915_pm_rc6_residency@rc6-idle@vcs0:
- shard-iclb: [WARN][64] ([i915#2684]) -> [FAIL][65] ([i915#2684])
[64]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb1/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html
[65]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb5/igt@i915_pm_rc6_residency@rc6-idle@vcs0.html
* igt@kms_psr2_sf@overlay-plane-move-continuous-sf:
- shard-iclb: [SKIP][66] ([i915#2920]) -> [SKIP][67] ([i915#658])
[66]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_12044/shard-iclb2/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html
[67]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/shard-iclb8/igt@kms_psr2_sf@overlay-plane-move-continuous-sf.html
{name}: This element is suppressed. This means it is ignored when computing
the status of the difference (SUCCESS, WARNING, or FAILURE).
[fdo#108145]: https://bugs.freedesktop.org/show_bug.cgi?id=108145
[fdo#109271]: https://bugs.freedesktop.org/show_bug.cgi?id=109271
[fdo#109274]: https://bugs.freedesktop.org/show_bug.cgi?id=109274
[fdo#109278]: https://bugs.freedesktop.org/show_bug.cgi?id=109278
[fdo#109280]: https://bugs.freedesktop.org/show_bug.cgi?id=109280
[fdo#109284]: https://bugs.freedesktop.org/show_bug.cgi?id=109284
[fdo#109289]: https://bugs.freedesktop.org/show_bug.cgi?id=109289
[fdo#109291]: https://bugs.freedesktop.org/show_bug.cgi?id=109291
[fdo#109312]: https://bugs.freedesktop.org/show_bug.cgi?id=109312
[fdo#109441]: https://bugs.freedesktop.org/show_bug.cgi?id=109441
[fdo#109506]: https://bugs.freedesktop.org/show_bug.cgi?id=109506
[fdo#109642]: https://bugs.freedesktop.org/show_bug.cgi?id=109642
[fdo#110189]: https://bugs.freedesktop.org/show_bug.cgi?id=110189
[fdo#110542]: https://bugs.freedesktop.org/show_bug.cgi?id=110542
[fdo#110723]: https://bugs.freedesktop.org/show_bug.cgi?id=110723
[fdo#111068]: https://bugs.freedesktop.org/show_bug.cgi?id=111068
[fdo#111614]: https://bugs.freedesktop.org/show_bug.cgi?id=111614
[fdo#111615]: https://bugs.freedesktop.org/show_bug.cgi?id=111615
[fdo#111644]: https://bugs.freedesktop.org/show_bug.cgi?id=111644
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[fdo#112054]: https://bugs.freedesktop.org/show_bug.cgi?id=112054
[fdo#112283]: https://bugs.freedesktop.org/show_bug.cgi?id=112283
[i915#1063]: https://gitlab.freedesktop.org/drm/intel/issues/1063
[i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
[i915#1397]: https://gitlab.freedesktop.org/drm/intel/issues/1397
[i915#1769]: https://gitlab.freedesktop.org/drm/intel/issues/1769
[i915#180]: https://gitlab.freedesktop.org/drm/intel/issues/180
[i915#1839]: https://gitlab.freedesktop.org/drm/intel/issues/1839
[i915#1902]: https://gitlab.freedesktop.org/drm/intel/issues/1902
[i915#2346]: https://gitlab.freedesktop.org/drm/intel/issues/2346
[i915#2437]: https://gitlab.freedesktop.org/drm/intel/issues/2437
[i915#2527]: https://gitlab.freedesktop.org/drm/intel/issues/2527
[i915#2530]: https://gitlab.freedesktop.org/drm/intel/issues/2530
[i915#265]: https://gitlab.freedesktop.org/drm/intel/issues/265
[i915#2658]: https://gitlab.freedesktop.org/drm/intel/issues/2658
[i915#2672]: https://gitlab.freedesktop.org/drm/intel/issues/2672
[i915#2684]: https://gitlab.freedesktop.org/drm/intel/issues/2684
[i915#284]: https://gitlab.freedesktop.org/drm/intel/issues/284
[i915#2842]: https://gitlab.freedesktop.org/drm/intel/issues/2842
[i915#2846]: https://gitlab.freedesktop.org/drm/intel/issues/2846
[i915#2856]: https://gitlab.freedesktop.org/drm/intel/issues/2856
[i915#2920]: https://gitlab.freedesktop.org/drm/intel/issues/2920
[i915#2994]: https://gitlab.freedesktop.org/drm/intel/issues/2994
[i915#3070]: https://gitlab.freedesktop.org/drm/intel/issues/3070
[i915#3116]: https://gitlab.freedesktop.org/drm/intel/issues/3116
[i915#3297]: https://gitlab.freedesktop.org/drm/intel/issues/3297
[i915#3318]: https://gitlab.freedesktop.org/drm/intel/issues/3318
[i915#3323]: https://gitlab.freedesktop.org/drm/intel/issues/3323
[i915#3469]: https://gitlab.freedesktop.org/drm/intel/issues/3469
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3637]: https://gitlab.freedesktop.org/drm/intel/issues/3637
[i915#3689]: https://gitlab.freedesktop.org/drm/intel/issues/3689
[i915#3826]: https://gitlab.freedesktop.org/drm/intel/issues/3826
[i915#3828]: https://gitlab.freedesktop.org/drm/intel/issues/3828
[i915#3886]: https://gitlab.freedesktop.org/drm/intel/issues/3886
[i915#3966]: https://gitlab.freedesktop.org/drm/intel/issues/3966
[i915#3987]: https://gitlab.freedesktop.org/drm/intel/issues/3987
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#426]: https://gitlab.freedesktop.org/drm/intel/issues/426
[i915#4270]: https://gitlab.freedesktop.org/drm/intel/issues/4270
[i915#4281]: https://gitlab.freedesktop.org/drm/intel/issues/4281
[i915#4525]: https://gitlab.freedesktop.org/drm/intel/issues/4525
[i915#454]: https://gitlab.freedesktop.org/drm/intel/issues/454
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4941]: https://gitlab.freedesktop.org/drm/intel/issues/4941
[i915#4991]: https://gitlab.freedesktop.org/drm/intel/issues/4991
[i915#5090]: https://gitlab.freedesktop.org/drm/intel/issues/5090
[i915#5176]: https://gitlab.freedesktop.org/drm/intel/issues/5176
[i915#5235]: https://gitlab.freedesktop.org/drm/intel/issues/5235
[i915#5286]: https://gitlab.freedesktop.org/drm/intel/issues/5286
[i915#5287]: https://gitlab.freedesktop.org/drm/intel/issues/5287
[i915#5288]: https://gitlab.freedesktop.org/drm/intel/issues/5288
[i915#5289]: https://gitlab.freedesktop.org/drm/intel/issues/5289
[i915#5325]: https://gitlab.freedesktop.org/drm/intel/issues/5325
[i915#5461]: https://gitlab.freedesktop.org/drm/intel/issues/5461
[i915#5566]: https://gitlab.freedesktop.org/drm/intel/issues/5566
[i915#5748]: https://gitlab.freedesktop.org/drm/intel/issues/5748
[i915#588]: https://gitlab.freedesktop.org/drm/intel/issues/588
[i915#6095]: https://gitlab.freedesktop.org/drm/intel/issues/6095
[i915#6230]: https://gitlab.freedesktop.org/drm/intel/issues/6230
[i915#6268]: https://gitlab.freedesktop.org/drm/intel/issues/6268
[i915#6301]: https://gitlab.freedesktop.org/drm/intel/issues/6301
[i915#6334]: https://gitlab.freedesktop.org/drm/intel/issues/6334
[i915#6335]: https://gitlab.freedesktop.org/drm/intel/issues/6335
[i915#6375]: https://gitlab.freedesktop.org/drm/intel/issues/6375
[i915#658]: https://gitlab.freedesktop.org/drm/intel/issues/658
[i915#6590]: https://gitlab.freedesktop.org/drm/intel/issues/6590
[i915#716]: https://gitlab.freedesktop.org/drm/intel/issues/716
[i915#768]: https://gitlab.freedesktop.org/drm/intel/issues/768
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_6637 -> IGTPW_7701
* Piglit: piglit_4509 -> None
CI-20190529: 20190529
CI_DRM_12044: 287ad23d60ce7aa8befbe8dd1fea6fb705bd08ac @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_7701: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/index.html
IGT_6637: a23e8aed0b54018339647d0817267431bd2b7075 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
piglit_4509: fdc5a4ca11124ab8413c7988896eec4c97336694 @ git://anongit.freedesktop.org/piglit
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7701/index.html
[-- Attachment #2: Type: text/html, Size: 41766 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH v7 2/2] tests/kms_lease: Test Cleanup
2022-08-29 17:33 ` [igt-dev] [PATCH v7 2/2] tests/kms_lease: Test Cleanup Mohammed Thasleem
@ 2022-09-12 7:59 ` Modem, Bhanuprakash
0 siblings, 0 replies; 11+ messages in thread
From: Modem, Bhanuprakash @ 2022-09-12 7:59 UTC (permalink / raw)
To: Mohammed Thasleem, igt-dev
On Mon-29-08-2022 11:03 pm, Mohammed Thasleem wrote:
> Sanitize the system state before starting the subtest.
>
> v2: Minor changes.
> v3: Moved display reset and commit in to igt_subtest_with_dynamic_f.
> v4: Separated display and non-display subsets.
> v5: Removed pipe_to_crtc_id and crtc_id_to_pipe.
>
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
> ---
> tests/kms_lease.c | 200 +++++++++++++++++++++++-----------------------
> 1 file changed, 99 insertions(+), 101 deletions(-)
>
> diff --git a/tests/kms_lease.c b/tests/kms_lease.c
> index bd713343..5d303a16 100644
> --- a/tests/kms_lease.c
> +++ b/tests/kms_lease.c
> @@ -64,22 +64,6 @@ typedef struct {
> uint32_t plane_id;
> } data_t;
>
> -static uint32_t pipe_to_crtc_id(igt_display_t *display, enum pipe pipe)
> -{
> - return display->pipes[pipe].crtc_id;
> -}
> -
> -static enum pipe crtc_id_to_pipe(igt_display_t *display, uint32_t crtc_id)
> -{
> - enum pipe pipe;
> -
> - for_each_pipe(display, pipe) {
> - if(display->pipes[pipe].crtc_id == crtc_id)
> - return pipe;
> - }
> - return -1;
> -}
> -
> static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t connector_id)
As mentioned in earlier revisions, you can drop this function & have the
output in data (data->output)
> {
> drmModeConnector connector;
> @@ -88,12 +72,12 @@ static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t con
> return igt_output_from_connector(display, &connector);
> }
>
> -static int prepare_crtc(lease_t *lease, uint32_t connector_id, uint32_t crtc_id)
> +static int prepare_crtc(lease_t *lease, data_t *data)
> {
> drmModeModeInfo *mode;
> igt_display_t *display = &lease->display;
> - igt_output_t *output = connector_id_to_output(display, connector_id);
> - enum pipe pipe = crtc_id_to_pipe(display, crtc_id);
> + igt_output_t *output = connector_id_to_output(display, data->connector_id);
> + enum pipe pipe = data->pipe;
> igt_plane_t *primary;
> int ret;
>
> @@ -136,7 +120,7 @@ static void cleanup_crtc(lease_t *lease, igt_output_t *output)
> primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> igt_plane_set_fb(primary, NULL);
>
> - igt_output_set_pipe(output, PIPE_ANY);
> + igt_output_set_pipe(output, PIPE_NONE);
> igt_display_commit(display);
> }
>
> @@ -238,7 +222,7 @@ static void simple_lease(data_t *data)
> igt_display_require(&lease.display, lease.fd);
>
> /* Set a mode on the leased output */
> - igt_assert_eq(0, prepare_crtc(&lease, data->connector_id, data->crtc_id));
> + igt_assert_eq(0, prepare_crtc(&lease, data));
>
> /* Paint something attractive */
> paint_fb(lease.fd, &lease.primary_fb, "simple_lease",
> @@ -266,7 +250,6 @@ static void page_flip_implicit_plane(data_t *data)
> drmModePlaneRes *plane_resources;
> uint32_t wrong_plane_id = 0;
> int i;
> - enum pipe pipe;
As done in prepare_crtc(), use enum pipe pipe = data->pipe; to avoid
code churn.
> igt_display_t *display;
>
> /* find a plane which isn't the primary one for us */
> @@ -292,7 +275,7 @@ static void page_flip_implicit_plane(data_t *data)
> drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>
> /* Set a mode on the leased output */
> - igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
> + igt_assert_eq(0, prepare_crtc(&data->master, data));
>
> /* sanity check */
> do_or_die(drmModePageFlip(data->master.fd, data->crtc_id,
> @@ -300,10 +283,9 @@ static void page_flip_implicit_plane(data_t *data)
> 0, NULL));
>
> display = &data->master.display;
> - pipe = crtc_id_to_pipe(display, data->crtc_id);
>
> igt_wait_for_vblank(data->master.fd,
> - display->pipes[pipe].crtc_offset);
> + display->pipes[data->pipe].crtc_offset);
Please check the above comment.
>
> do_or_die(drmModePageFlip(mcl.fd, data->crtc_id,
> data->master.primary_fb.fb_id,
> @@ -313,10 +295,8 @@ static void page_flip_implicit_plane(data_t *data)
> object_ids[mcl.object_count++] = wrong_plane_id;
> do_or_die(create_lease(data->master.fd, &mcl));
>
> - pipe = crtc_id_to_pipe(display, data->crtc_id);
> -
> igt_wait_for_vblank(data->master.fd,
> - display->pipes[pipe].crtc_offset);
> + display->pipes[data->pipe].crtc_offset);
>
> igt_assert_eq(drmModePageFlip(mcl.fd, data->crtc_id,
> data->master.primary_fb.fb_id,
> @@ -363,7 +343,7 @@ static void setcrtc_implicit_plane(data_t *data)
> drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>
> /* Set a mode on the leased output */
> - igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
> + igt_assert_eq(0, prepare_crtc(&data->master, data));
>
> /* sanity check */
> do_or_die(drmModeSetCrtc(data->master.fd, data->crtc_id, -1,
> @@ -404,7 +384,7 @@ static void cursor_implicit_plane(data_t *data)
> drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>
> /* Set a mode on the leased output */
> - igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
> + igt_assert_eq(0, prepare_crtc(&data->master, data));
>
> /* sanity check */
> do_or_die(drmModeSetCursor(data->master.fd, data->crtc_id, 0, 0, 0));
> @@ -642,8 +622,8 @@ static void lease_unleased_crtc(data_t *data)
> for_each_pipe(&data->master.display, p) {
> if (bad_crtc_id != 0)
> break;
> - if (pipe_to_crtc_id(&data->master.display, p) != data->crtc_id)
> - bad_crtc_id = pipe_to_crtc_id(&data->master.display, p);
> + if (data->master.display.pipes[p].crtc_id != data->crtc_id)
> + bad_crtc_id = data->master.display.pipes[p].crtc_id;
> }
>
> /* Give up if there isn't another crtc */
> @@ -729,7 +709,7 @@ static void lease_revoke(data_t *data)
> igt_assert_eq(revoke_lease(data->master.fd, &mrl), 0);
>
> /* Try to use the leased objects */
> - ret = prepare_crtc(&lease, data->connector_id, data->crtc_id);
> + ret = prepare_crtc(&lease, data);
>
> /* Ensure that the expected error is returned */
> igt_assert_eq(ret, -ENOENT);
> @@ -1185,83 +1165,101 @@ igt_main
> igt_output_t *output;
> igt_display_t *display = &data.master.display;
>
> - const struct {
> - const char *name;
> - void (*func)(data_t *);
> - const char *desc;
> - } funcs[] = {
> - { "simple_lease", simple_lease, "Check if create lease ioctl call works" },
> - { "empty_lease", empty_lease, "Check that creating an empty lease works" },
> - { "lessee_list", lessee_list, "Check if listed lease is same as created one" },
> - { "lease_get", lease_get, "Tests getting the required contents of a lease" },
> - { "lease_unleased_connector", lease_unleased_connector, "Negative test by trying to"
> - " use an unleased connector " },
> - { "lease_unleased_crtc", lease_unleased_crtc, "Negative test by trying to use an unleased crtc" },
> - { "lease_revoke", lease_revoke, "Tests revocation of lease" },
> - { "lease_again", lease_again, "Tests leasing objects more than once" },
> - { "lease_invalid_connector", lease_invalid_connector, "Tests leasing an invalid connector" },
> - { "lease_invalid_crtc", lease_invalid_crtc, "Tests leasing an invalid crtc" },
> - { "lease_invalid_plane", lease_invalid_plane, "Tests leasing an invalid plane" },
> - { "page_flip_implicit_plane", page_flip_implicit_plane, "Negative test by using a "
> - "non-primary plane with the page flip ioctl" },
> - { "setcrtc_implicit_plane", setcrtc_implicit_plane, "Negative test by using a "
> - "non-primary plane with the setcrtc ioctl" },
> - { "cursor_implicit_plane", cursor_implicit_plane, "Negative test by using a non-primary"
> - " plane with setcursor ioctl" },
> - { "atomic_implicit_crtc", atomic_implicit_crtc, "Negative test by using a different"
> - " crtc with atomic ioctl" },
> - { }
> - }, *f;
> -
> igt_fixture {
> data.master.fd = drm_open_driver_master(DRIVER_ANY);
> kmstest_set_vt_graphics_mode();
> igt_display_require(display, data.master.fd);
> }
>
> - for (f = funcs; f->name; f++) {
> -
> - igt_describe(f->desc);
> - igt_subtest_with_dynamic_f("%s", f->name) {
> - for_each_pipe_with_valid_output(display, data.pipe, output) {
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
> - igt_output_name(output)) {
> - data.crtc_id = pipe_to_crtc_id(display, data.pipe);
> - data.connector_id = output->id;
> - data.plane_id =
> - igt_pipe_get_plane_type(&data.master.display.pipes[data.pipe],
> - DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
> - f->func(&data);
> + /*Display dependent subtests*/
---------^
Fix the single line comment style.
> + igt_subtest_group {
> +
> + const struct {
> + const char *name;
> + void (*func)(data_t *);
> + const char *desc;
> + } funcs[] = {
> + { "simple_lease", simple_lease, "Check if create lease ioctl call works" },
> + { "empty_lease", empty_lease, "Check that creating an empty lease works" },
> + { "lessee_list", lessee_list, "Check if listed lease is same as created one" },
> + { "lease_get", lease_get, "Tests getting the required contents of a lease" },
> + { "lease_unleased_connector", lease_unleased_connector, "Negative test by trying to"
> + " use an unleased connector " },
> + { "lease_unleased_crtc", lease_unleased_crtc, "Negative test by trying to use an unleased crtc" },
> + { "lease_revoke", lease_revoke, "Tests revocation of lease" },
> + { "lease_again", lease_again, "Tests leasing objects more than once" },
> + { "lease_invalid_connector", lease_invalid_connector, "Tests leasing an invalid connector" },
> + { "lease_invalid_crtc", lease_invalid_crtc, "Tests leasing an invalid crtc" },
> + { "lease_invalid_plane", lease_invalid_plane, "Tests leasing an invalid plane" },
> + { "page_flip_implicit_plane", page_flip_implicit_plane, "Negative test by using a "
> + "non-primary plane with the page flip ioctl" },
> + { "setcrtc_implicit_plane", setcrtc_implicit_plane, "Negative test by using a "
> + "non-primary plane with the setcrtc ioctl" },
> + { "cursor_implicit_plane", cursor_implicit_plane, "Negative test by using a non-primary"
> + " plane with setcursor ioctl" },
> + { "atomic_implicit_crtc", atomic_implicit_crtc, "Negative test by using a different"
> + " crtc with atomic ioctl" },
> + { }
> + }, *f;
> +
> + igt_fixture
> + igt_display_require_output(display);
> +
> + for (f = funcs; f->name; f++) {
> +
> + igt_describe(f->desc);
> + igt_subtest_with_dynamic_f("%s", f->name) {
> + for_each_pipe_with_valid_output(display, data.pipe, output) {
> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
> + igt_output_name(output)) {
> + igt_display_reset(display);
> + igt_display_commit(display);
> + data.crtc_id = display->pipes[data.pipe].crtc_id;
> + data.connector_id = output->id;
> + data.plane_id =
> + igt_pipe_get_plane_type(&data.master.display.pipes[data.pipe],
> + DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
> + f->func(&data);
Also, having igt_*require() & igt_*skip*() inside the dynamic subtest is
not recommended.
Instead, move these checks to before calling the igt_dynamic*();
> + }
> }
> }
> }
> }
>
> - igt_describe("Tests error handling while creating invalid corner-cases for "
> - "create-lease ioctl");
> - igt_subtest("invalid-create-leases")
> - invalid_create_leases(&data);
> -
> - igt_describe("Tests that possible_crtcs logically match between master and "
> - "lease, and that the values are correctly renumbered on the lease side.");
> - igt_subtest("possible-crtcs-filtering")
> - possible_crtcs_filtering(&data);
> -
> - igt_describe("Tests the drop/set_master interactions.");
> - igt_subtest("master-vs-lease")
> - master_vs_lease(&data);
> -
> - igt_describe("Tests that the 2nd master can only create leases while being active "
> - "master, and that leases on the first master don't prevent lease creation "
> - "for the 2nd master.");
> - igt_subtest("multimaster-lease")
> - multimaster_lease(&data);
> -
> - igt_describe("Tests the implicitly added planes.");
> - igt_subtest("implicit-plane-lease")
> - implicit_plane_lease(&data);
> -
> - igt_describe("Tests all the uevent cases");
> - igt_subtest("lease-uevent")
> - lease_uevent(&data);
> + /*Non-Display dependent subtests*/
Display independent?
- Bhanu
> + igt_subtest_group {
> +
> + igt_describe("Tests error handling while creating invalid corner-cases for "
> + "create-lease ioctl");
> + igt_subtest("invalid-create-leases")
> + invalid_create_leases(&data);
> +
> + igt_describe("Tests that possible_crtcs logically match between master and "
> + "lease, and that the values are correctly renumbered on the lease side.");
> + igt_subtest("possible-crtcs-filtering")
> + possible_crtcs_filtering(&data);
> +
> + igt_describe("Tests the drop/set_master interactions.");
> + igt_subtest("master-vs-lease")
> + master_vs_lease(&data);
> +
> + igt_describe("Tests that the 2nd master can only create leases while being active "
> + "master, and that leases on the first master don't prevent lease creation "
> + "for the 2nd master.");
> + igt_subtest("multimaster-lease")
> + multimaster_lease(&data);
> +
> + igt_describe("Tests the implicitly added planes.");
> + igt_subtest("implicit-plane-lease")
> + implicit_plane_lease(&data);
> +
> + igt_describe("Tests all the uevent cases");
> + igt_subtest("lease-uevent")
> + lease_uevent(&data);
> + }
> +
> + igt_fixture {
> + igt_display_fini(display);
> + close(data.master.fd);
> + }
> }
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [igt-dev] [PATCH v8 2/2] tests/kms_lease: Test Cleanup
2022-04-21 14:32 ` [igt-dev] [PATCH v8 2/2] tests/kms_lease: Test Cleanup Mohammed Thasleem
@ 2022-09-20 9:34 ` Modem, Bhanuprakash
0 siblings, 0 replies; 11+ messages in thread
From: Modem, Bhanuprakash @ 2022-09-20 9:34 UTC (permalink / raw)
To: Mohammed Thasleem, igt-dev
On Thu-21-04-2022 08:02 pm, Mohammed Thasleem wrote:
> Sanitize the system state before starting the subtest.
>
> v2: Minor changes.
> v3: Moved display reset and commit in to igt_subtest_with_dynamic_f.
> v4: Separated display and non-display subsets.
> v5: Removed pipe_to_crtc_id and crtc_id_to_pipe.
> v6: Minor changes.
>
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
> ---
> tests/kms_lease.c | 201 +++++++++++++++++++++++-----------------------
> 1 file changed, 101 insertions(+), 100 deletions(-)
>
> diff --git a/tests/kms_lease.c b/tests/kms_lease.c
> index bd713343..67e8d3be 100644
> --- a/tests/kms_lease.c
> +++ b/tests/kms_lease.c
> @@ -64,22 +64,6 @@ typedef struct {
> uint32_t plane_id;
> } data_t;
>
> -static uint32_t pipe_to_crtc_id(igt_display_t *display, enum pipe pipe)
> -{
> - return display->pipes[pipe].crtc_id;
> -}
> -
> -static enum pipe crtc_id_to_pipe(igt_display_t *display, uint32_t crtc_id)
> -{
> - enum pipe pipe;
> -
> - for_each_pipe(display, pipe) {
> - if(display->pipes[pipe].crtc_id == crtc_id)
> - return pipe;
> - }
> - return -1;
> -}
> -
> static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t connector_id)
> {
> drmModeConnector connector;
> @@ -88,12 +72,12 @@ static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t con
> return igt_output_from_connector(display, &connector);
> }
>
> -static int prepare_crtc(lease_t *lease, uint32_t connector_id, uint32_t crtc_id)
> +static int prepare_crtc(lease_t *lease, data_t *data)
> {
> drmModeModeInfo *mode;
> igt_display_t *display = &lease->display;
> - igt_output_t *output = connector_id_to_output(display, connector_id);
> - enum pipe pipe = crtc_id_to_pipe(display, crtc_id);
> + igt_output_t *output = connector_id_to_output(display, data->connector_id);
> + enum pipe pipe = data->pipe;
> igt_plane_t *primary;
> int ret;
>
> @@ -136,7 +120,7 @@ static void cleanup_crtc(lease_t *lease, igt_output_t *output)
> primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
> igt_plane_set_fb(primary, NULL);
>
> - igt_output_set_pipe(output, PIPE_ANY);
> + igt_output_set_pipe(output, PIPE_NONE);
> igt_display_commit(display);
> }
>
> @@ -230,6 +214,8 @@ static int paint_fb(int drm_fd, struct igt_fb *fb, const char *test_name,
>
> static void simple_lease(data_t *data)
> {
> + enum pipe pipe = data->pipe;
> +
> lease_t lease;
>
> /* Create a valid lease */
> @@ -238,11 +224,11 @@ static void simple_lease(data_t *data)
> igt_display_require(&lease.display, lease.fd);
>
> /* Set a mode on the leased output */
> - igt_assert_eq(0, prepare_crtc(&lease, data->connector_id, data->crtc_id));
> + igt_assert_eq(0, prepare_crtc(&lease, data));
>
> /* Paint something attractive */
> paint_fb(lease.fd, &lease.primary_fb, "simple_lease",
> - lease.mode->name, igt_output_name(lease.output), kmstest_pipe_name(data->pipe));
> + lease.mode->name, igt_output_name(lease.output), kmstest_pipe_name(pipe));
> igt_debug_wait_for_keypress("lease");
> cleanup_crtc(&lease,
> connector_id_to_output(&lease.display, data->connector_id));
> @@ -266,8 +252,8 @@ static void page_flip_implicit_plane(data_t *data)
> drmModePlaneRes *plane_resources;
> uint32_t wrong_plane_id = 0;
> int i;
> - enum pipe pipe;
> igt_display_t *display;
> + enum pipe pipe = data->pipe;
>
> /* find a plane which isn't the primary one for us */
> plane_resources = drmModeGetPlaneResources(data->master.fd);
> @@ -292,7 +278,7 @@ static void page_flip_implicit_plane(data_t *data)
> drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>
> /* Set a mode on the leased output */
> - igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
> + igt_assert_eq(0, prepare_crtc(&data->master, data));
>
> /* sanity check */
> do_or_die(drmModePageFlip(data->master.fd, data->crtc_id,
> @@ -300,7 +286,6 @@ static void page_flip_implicit_plane(data_t *data)
> 0, NULL));
>
> display = &data->master.display;
> - pipe = crtc_id_to_pipe(display, data->crtc_id);
>
> igt_wait_for_vblank(data->master.fd,
> display->pipes[pipe].crtc_offset);
> @@ -313,8 +298,6 @@ static void page_flip_implicit_plane(data_t *data)
> object_ids[mcl.object_count++] = wrong_plane_id;
> do_or_die(create_lease(data->master.fd, &mcl));
>
> - pipe = crtc_id_to_pipe(display, data->crtc_id);
> -
> igt_wait_for_vblank(data->master.fd,
> display->pipes[pipe].crtc_offset);
>
> @@ -363,7 +346,7 @@ static void setcrtc_implicit_plane(data_t *data)
> drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>
> /* Set a mode on the leased output */
> - igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
> + igt_assert_eq(0, prepare_crtc(&data->master, data));
>
> /* sanity check */
> do_or_die(drmModeSetCrtc(data->master.fd, data->crtc_id, -1,
> @@ -404,7 +387,7 @@ static void cursor_implicit_plane(data_t *data)
> drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
>
> /* Set a mode on the leased output */
> - igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
> + igt_assert_eq(0, prepare_crtc(&data->master, data));
>
> /* sanity check */
> do_or_die(drmModeSetCursor(data->master.fd, data->crtc_id, 0, 0, 0));
> @@ -642,8 +625,8 @@ static void lease_unleased_crtc(data_t *data)
> for_each_pipe(&data->master.display, p) {
> if (bad_crtc_id != 0)
> break;
> - if (pipe_to_crtc_id(&data->master.display, p) != data->crtc_id)
> - bad_crtc_id = pipe_to_crtc_id(&data->master.display, p);
> + if (data->master.display.pipes[p].crtc_id != data->crtc_id)
> + bad_crtc_id = data->master.display.pipes[p].crtc_id;
> }
>
> /* Give up if there isn't another crtc */
> @@ -729,7 +712,7 @@ static void lease_revoke(data_t *data)
> igt_assert_eq(revoke_lease(data->master.fd, &mrl), 0);
>
> /* Try to use the leased objects */
> - ret = prepare_crtc(&lease, data->connector_id, data->crtc_id);
> + ret = prepare_crtc(&lease, data);
>
> /* Ensure that the expected error is returned */
> igt_assert_eq(ret, -ENOENT);
> @@ -1185,83 +1168,101 @@ igt_main
> igt_output_t *output;
> igt_display_t *display = &data.master.display;
>
> - const struct {
> - const char *name;
> - void (*func)(data_t *);
> - const char *desc;
> - } funcs[] = {
> - { "simple_lease", simple_lease, "Check if create lease ioctl call works" },
> - { "empty_lease", empty_lease, "Check that creating an empty lease works" },
> - { "lessee_list", lessee_list, "Check if listed lease is same as created one" },
> - { "lease_get", lease_get, "Tests getting the required contents of a lease" },
> - { "lease_unleased_connector", lease_unleased_connector, "Negative test by trying to"
> - " use an unleased connector " },
> - { "lease_unleased_crtc", lease_unleased_crtc, "Negative test by trying to use an unleased crtc" },
> - { "lease_revoke", lease_revoke, "Tests revocation of lease" },
> - { "lease_again", lease_again, "Tests leasing objects more than once" },
> - { "lease_invalid_connector", lease_invalid_connector, "Tests leasing an invalid connector" },
> - { "lease_invalid_crtc", lease_invalid_crtc, "Tests leasing an invalid crtc" },
> - { "lease_invalid_plane", lease_invalid_plane, "Tests leasing an invalid plane" },
> - { "page_flip_implicit_plane", page_flip_implicit_plane, "Negative test by using a "
> - "non-primary plane with the page flip ioctl" },
> - { "setcrtc_implicit_plane", setcrtc_implicit_plane, "Negative test by using a "
> - "non-primary plane with the setcrtc ioctl" },
> - { "cursor_implicit_plane", cursor_implicit_plane, "Negative test by using a non-primary"
> - " plane with setcursor ioctl" },
> - { "atomic_implicit_crtc", atomic_implicit_crtc, "Negative test by using a different"
> - " crtc with atomic ioctl" },
> - { }
> - }, *f;
> -
> igt_fixture {
> data.master.fd = drm_open_driver_master(DRIVER_ANY);
> kmstest_set_vt_graphics_mode();
> igt_display_require(display, data.master.fd);
> }
>
> - for (f = funcs; f->name; f++) {
> -
> - igt_describe(f->desc);
> - igt_subtest_with_dynamic_f("%s", f->name) {
> - for_each_pipe_with_valid_output(display, data.pipe, output) {
> - igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
> - igt_output_name(output)) {
> - data.crtc_id = pipe_to_crtc_id(display, data.pipe);
> - data.connector_id = output->id;
> - data.plane_id =
> - igt_pipe_get_plane_type(&data.master.display.pipes[data.pipe],
> - DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
> - f->func(&data);
> + //Display dependent subtests
--------^
Please add a white space
> + igt_subtest_group {
> +
> + const struct {
> + const char *name;
> + void (*func)(data_t *);
> + const char *desc;
> + } funcs[] = {
> + { "simple_lease", simple_lease, "Check if create lease ioctl call works" },
> + { "empty_lease", empty_lease, "Check that creating an empty lease works" },
> + { "lessee_list", lessee_list, "Check if listed lease is same as created one" },
> + { "lease_get", lease_get, "Tests getting the required contents of a lease" },
> + { "lease_unleased_connector", lease_unleased_connector, "Negative test by trying to"
> + " use an unleased connector " },
> + { "lease_unleased_crtc", lease_unleased_crtc, "Negative test by trying to use an unleased crtc" },
> + { "lease_revoke", lease_revoke, "Tests revocation of lease" },
> + { "lease_again", lease_again, "Tests leasing objects more than once" },
> + { "lease_invalid_connector", lease_invalid_connector, "Tests leasing an invalid connector" },
> + { "lease_invalid_crtc", lease_invalid_crtc, "Tests leasing an invalid crtc" },
> + { "lease_invalid_plane", lease_invalid_plane, "Tests leasing an invalid plane" },
> + { "page_flip_implicit_plane", page_flip_implicit_plane, "Negative test by using a "
> + "non-primary plane with the page flip ioctl" },
> + { "setcrtc_implicit_plane", setcrtc_implicit_plane, "Negative test by using a "
> + "non-primary plane with the setcrtc ioctl" },
> + { "cursor_implicit_plane", cursor_implicit_plane, "Negative test by using a non-primary"
> + " plane with setcursor ioctl" },
> + { "atomic_implicit_crtc", atomic_implicit_crtc, "Negative test by using a different"
> + " crtc with atomic ioctl" },
> + { }
> + }, *f;
> +
> + igt_fixture
> + igt_display_require_output(display);
> +
> + for (f = funcs; f->name; f++) {
> +
> + igt_describe(f->desc);
> + igt_subtest_with_dynamic_f("%s", f->name) {
> + for_each_pipe_with_valid_output(display, data.pipe, output) {
> + igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
> + igt_output_name(output)) {
> + igt_display_reset(display);
> + igt_display_commit(display);
> + data.crtc_id = display->pipes[data.pipe].crtc_id;
> + data.connector_id = output->id;
> + data.plane_id =
> + igt_pipe_get_plane_type(&data.master.display.pipes[data.pipe],
> + DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
> + f->func(&data);
> + }
> }
> }
> }
> }
>
> - igt_describe("Tests error handling while creating invalid corner-cases for "
> - "create-lease ioctl");
> - igt_subtest("invalid-create-leases")
> - invalid_create_leases(&data);
> -
> - igt_describe("Tests that possible_crtcs logically match between master and "
> - "lease, and that the values are correctly renumbered on the lease side.");
> - igt_subtest("possible-crtcs-filtering")
> - possible_crtcs_filtering(&data);
> -
> - igt_describe("Tests the drop/set_master interactions.");
> - igt_subtest("master-vs-lease")
> - master_vs_lease(&data);
> -
> - igt_describe("Tests that the 2nd master can only create leases while being active "
> - "master, and that leases on the first master don't prevent lease creation "
> - "for the 2nd master.");
> - igt_subtest("multimaster-lease")
> - multimaster_lease(&data);
> -
> - igt_describe("Tests the implicitly added planes.");
> - igt_subtest("implicit-plane-lease")
> - implicit_plane_lease(&data);
> -
> - igt_describe("Tests all the uevent cases");
> - igt_subtest("lease-uevent")
> - lease_uevent(&data);
> + //Display independent subtests
--------^
Please add a white space
Reviewed-by: Bhanuprakash Modem <bhanuprakash.modem@intel.com>
- Bhanu
> + igt_subtest_group {
> +
> + igt_describe("Tests error handling while creating invalid corner-cases for "
> + "create-lease ioctl");
> + igt_subtest("invalid-create-leases")
> + invalid_create_leases(&data);
> +
> + igt_describe("Tests that possible_crtcs logically match between master and "
> + "lease, and that the values are correctly renumbered on the lease side.");
> + igt_subtest("possible-crtcs-filtering")
> + possible_crtcs_filtering(&data);
> +
> + igt_describe("Tests the drop/set_master interactions.");
> + igt_subtest("master-vs-lease")
> + master_vs_lease(&data);
> +
> + igt_describe("Tests that the 2nd master can only create leases while being active "
> + "master, and that leases on the first master don't prevent lease creation "
> + "for the 2nd master.");
> + igt_subtest("multimaster-lease")
> + multimaster_lease(&data);
> +
> + igt_describe("Tests the implicitly added planes.");
> + igt_subtest("implicit-plane-lease")
> + implicit_plane_lease(&data);
> +
> + igt_describe("Tests all the uevent cases");
> + igt_subtest("lease-uevent")
> + lease_uevent(&data);
> + }
> +
> + igt_fixture {
> + igt_display_fini(display);
> + close(data.master.fd);
> + }
> }
^ permalink raw reply [flat|nested] 11+ messages in thread
* [igt-dev] [PATCH v8 2/2] tests/kms_lease: Test Cleanup
2022-04-21 14:32 [igt-dev] [PATCH v8 0/2] " Mohammed Thasleem
@ 2022-04-21 14:32 ` Mohammed Thasleem
2022-09-20 9:34 ` Modem, Bhanuprakash
0 siblings, 1 reply; 11+ messages in thread
From: Mohammed Thasleem @ 2022-04-21 14:32 UTC (permalink / raw)
To: igt-dev
Sanitize the system state before starting the subtest.
v2: Minor changes.
v3: Moved display reset and commit in to igt_subtest_with_dynamic_f.
v4: Separated display and non-display subsets.
v5: Removed pipe_to_crtc_id and crtc_id_to_pipe.
v6: Minor changes.
Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
tests/kms_lease.c | 201 +++++++++++++++++++++++-----------------------
1 file changed, 101 insertions(+), 100 deletions(-)
diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index bd713343..67e8d3be 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -64,22 +64,6 @@ typedef struct {
uint32_t plane_id;
} data_t;
-static uint32_t pipe_to_crtc_id(igt_display_t *display, enum pipe pipe)
-{
- return display->pipes[pipe].crtc_id;
-}
-
-static enum pipe crtc_id_to_pipe(igt_display_t *display, uint32_t crtc_id)
-{
- enum pipe pipe;
-
- for_each_pipe(display, pipe) {
- if(display->pipes[pipe].crtc_id == crtc_id)
- return pipe;
- }
- return -1;
-}
-
static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t connector_id)
{
drmModeConnector connector;
@@ -88,12 +72,12 @@ static igt_output_t *connector_id_to_output(igt_display_t *display, uint32_t con
return igt_output_from_connector(display, &connector);
}
-static int prepare_crtc(lease_t *lease, uint32_t connector_id, uint32_t crtc_id)
+static int prepare_crtc(lease_t *lease, data_t *data)
{
drmModeModeInfo *mode;
igt_display_t *display = &lease->display;
- igt_output_t *output = connector_id_to_output(display, connector_id);
- enum pipe pipe = crtc_id_to_pipe(display, crtc_id);
+ igt_output_t *output = connector_id_to_output(display, data->connector_id);
+ enum pipe pipe = data->pipe;
igt_plane_t *primary;
int ret;
@@ -136,7 +120,7 @@ static void cleanup_crtc(lease_t *lease, igt_output_t *output)
primary = igt_output_get_plane_type(output, DRM_PLANE_TYPE_PRIMARY);
igt_plane_set_fb(primary, NULL);
- igt_output_set_pipe(output, PIPE_ANY);
+ igt_output_set_pipe(output, PIPE_NONE);
igt_display_commit(display);
}
@@ -230,6 +214,8 @@ static int paint_fb(int drm_fd, struct igt_fb *fb, const char *test_name,
static void simple_lease(data_t *data)
{
+ enum pipe pipe = data->pipe;
+
lease_t lease;
/* Create a valid lease */
@@ -238,11 +224,11 @@ static void simple_lease(data_t *data)
igt_display_require(&lease.display, lease.fd);
/* Set a mode on the leased output */
- igt_assert_eq(0, prepare_crtc(&lease, data->connector_id, data->crtc_id));
+ igt_assert_eq(0, prepare_crtc(&lease, data));
/* Paint something attractive */
paint_fb(lease.fd, &lease.primary_fb, "simple_lease",
- lease.mode->name, igt_output_name(lease.output), kmstest_pipe_name(data->pipe));
+ lease.mode->name, igt_output_name(lease.output), kmstest_pipe_name(pipe));
igt_debug_wait_for_keypress("lease");
cleanup_crtc(&lease,
connector_id_to_output(&lease.display, data->connector_id));
@@ -266,8 +252,8 @@ static void page_flip_implicit_plane(data_t *data)
drmModePlaneRes *plane_resources;
uint32_t wrong_plane_id = 0;
int i;
- enum pipe pipe;
igt_display_t *display;
+ enum pipe pipe = data->pipe;
/* find a plane which isn't the primary one for us */
plane_resources = drmModeGetPlaneResources(data->master.fd);
@@ -292,7 +278,7 @@ static void page_flip_implicit_plane(data_t *data)
drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
/* Set a mode on the leased output */
- igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
+ igt_assert_eq(0, prepare_crtc(&data->master, data));
/* sanity check */
do_or_die(drmModePageFlip(data->master.fd, data->crtc_id,
@@ -300,7 +286,6 @@ static void page_flip_implicit_plane(data_t *data)
0, NULL));
display = &data->master.display;
- pipe = crtc_id_to_pipe(display, data->crtc_id);
igt_wait_for_vblank(data->master.fd,
display->pipes[pipe].crtc_offset);
@@ -313,8 +298,6 @@ static void page_flip_implicit_plane(data_t *data)
object_ids[mcl.object_count++] = wrong_plane_id;
do_or_die(create_lease(data->master.fd, &mcl));
- pipe = crtc_id_to_pipe(display, data->crtc_id);
-
igt_wait_for_vblank(data->master.fd,
display->pipes[pipe].crtc_offset);
@@ -363,7 +346,7 @@ static void setcrtc_implicit_plane(data_t *data)
drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
/* Set a mode on the leased output */
- igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
+ igt_assert_eq(0, prepare_crtc(&data->master, data));
/* sanity check */
do_or_die(drmModeSetCrtc(data->master.fd, data->crtc_id, -1,
@@ -404,7 +387,7 @@ static void cursor_implicit_plane(data_t *data)
drmSetClientCap(data->master.fd, DRM_CLIENT_CAP_UNIVERSAL_PLANES, 1);
/* Set a mode on the leased output */
- igt_assert_eq(0, prepare_crtc(&data->master, data->connector_id, data->crtc_id));
+ igt_assert_eq(0, prepare_crtc(&data->master, data));
/* sanity check */
do_or_die(drmModeSetCursor(data->master.fd, data->crtc_id, 0, 0, 0));
@@ -642,8 +625,8 @@ static void lease_unleased_crtc(data_t *data)
for_each_pipe(&data->master.display, p) {
if (bad_crtc_id != 0)
break;
- if (pipe_to_crtc_id(&data->master.display, p) != data->crtc_id)
- bad_crtc_id = pipe_to_crtc_id(&data->master.display, p);
+ if (data->master.display.pipes[p].crtc_id != data->crtc_id)
+ bad_crtc_id = data->master.display.pipes[p].crtc_id;
}
/* Give up if there isn't another crtc */
@@ -729,7 +712,7 @@ static void lease_revoke(data_t *data)
igt_assert_eq(revoke_lease(data->master.fd, &mrl), 0);
/* Try to use the leased objects */
- ret = prepare_crtc(&lease, data->connector_id, data->crtc_id);
+ ret = prepare_crtc(&lease, data);
/* Ensure that the expected error is returned */
igt_assert_eq(ret, -ENOENT);
@@ -1185,83 +1168,101 @@ igt_main
igt_output_t *output;
igt_display_t *display = &data.master.display;
- const struct {
- const char *name;
- void (*func)(data_t *);
- const char *desc;
- } funcs[] = {
- { "simple_lease", simple_lease, "Check if create lease ioctl call works" },
- { "empty_lease", empty_lease, "Check that creating an empty lease works" },
- { "lessee_list", lessee_list, "Check if listed lease is same as created one" },
- { "lease_get", lease_get, "Tests getting the required contents of a lease" },
- { "lease_unleased_connector", lease_unleased_connector, "Negative test by trying to"
- " use an unleased connector " },
- { "lease_unleased_crtc", lease_unleased_crtc, "Negative test by trying to use an unleased crtc" },
- { "lease_revoke", lease_revoke, "Tests revocation of lease" },
- { "lease_again", lease_again, "Tests leasing objects more than once" },
- { "lease_invalid_connector", lease_invalid_connector, "Tests leasing an invalid connector" },
- { "lease_invalid_crtc", lease_invalid_crtc, "Tests leasing an invalid crtc" },
- { "lease_invalid_plane", lease_invalid_plane, "Tests leasing an invalid plane" },
- { "page_flip_implicit_plane", page_flip_implicit_plane, "Negative test by using a "
- "non-primary plane with the page flip ioctl" },
- { "setcrtc_implicit_plane", setcrtc_implicit_plane, "Negative test by using a "
- "non-primary plane with the setcrtc ioctl" },
- { "cursor_implicit_plane", cursor_implicit_plane, "Negative test by using a non-primary"
- " plane with setcursor ioctl" },
- { "atomic_implicit_crtc", atomic_implicit_crtc, "Negative test by using a different"
- " crtc with atomic ioctl" },
- { }
- }, *f;
-
igt_fixture {
data.master.fd = drm_open_driver_master(DRIVER_ANY);
kmstest_set_vt_graphics_mode();
igt_display_require(display, data.master.fd);
}
- for (f = funcs; f->name; f++) {
-
- igt_describe(f->desc);
- igt_subtest_with_dynamic_f("%s", f->name) {
- for_each_pipe_with_valid_output(display, data.pipe, output) {
- igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
- igt_output_name(output)) {
- data.crtc_id = pipe_to_crtc_id(display, data.pipe);
- data.connector_id = output->id;
- data.plane_id =
- igt_pipe_get_plane_type(&data.master.display.pipes[data.pipe],
- DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
- f->func(&data);
+ //Display dependent subtests
+ igt_subtest_group {
+
+ const struct {
+ const char *name;
+ void (*func)(data_t *);
+ const char *desc;
+ } funcs[] = {
+ { "simple_lease", simple_lease, "Check if create lease ioctl call works" },
+ { "empty_lease", empty_lease, "Check that creating an empty lease works" },
+ { "lessee_list", lessee_list, "Check if listed lease is same as created one" },
+ { "lease_get", lease_get, "Tests getting the required contents of a lease" },
+ { "lease_unleased_connector", lease_unleased_connector, "Negative test by trying to"
+ " use an unleased connector " },
+ { "lease_unleased_crtc", lease_unleased_crtc, "Negative test by trying to use an unleased crtc" },
+ { "lease_revoke", lease_revoke, "Tests revocation of lease" },
+ { "lease_again", lease_again, "Tests leasing objects more than once" },
+ { "lease_invalid_connector", lease_invalid_connector, "Tests leasing an invalid connector" },
+ { "lease_invalid_crtc", lease_invalid_crtc, "Tests leasing an invalid crtc" },
+ { "lease_invalid_plane", lease_invalid_plane, "Tests leasing an invalid plane" },
+ { "page_flip_implicit_plane", page_flip_implicit_plane, "Negative test by using a "
+ "non-primary plane with the page flip ioctl" },
+ { "setcrtc_implicit_plane", setcrtc_implicit_plane, "Negative test by using a "
+ "non-primary plane with the setcrtc ioctl" },
+ { "cursor_implicit_plane", cursor_implicit_plane, "Negative test by using a non-primary"
+ " plane with setcursor ioctl" },
+ { "atomic_implicit_crtc", atomic_implicit_crtc, "Negative test by using a different"
+ " crtc with atomic ioctl" },
+ { }
+ }, *f;
+
+ igt_fixture
+ igt_display_require_output(display);
+
+ for (f = funcs; f->name; f++) {
+
+ igt_describe(f->desc);
+ igt_subtest_with_dynamic_f("%s", f->name) {
+ for_each_pipe_with_valid_output(display, data.pipe, output) {
+ igt_dynamic_f("pipe-%s-%s", kmstest_pipe_name(data.pipe),
+ igt_output_name(output)) {
+ igt_display_reset(display);
+ igt_display_commit(display);
+ data.crtc_id = display->pipes[data.pipe].crtc_id;
+ data.connector_id = output->id;
+ data.plane_id =
+ igt_pipe_get_plane_type(&data.master.display.pipes[data.pipe],
+ DRM_PLANE_TYPE_PRIMARY)->drm_plane->plane_id;
+ f->func(&data);
+ }
}
}
}
}
- igt_describe("Tests error handling while creating invalid corner-cases for "
- "create-lease ioctl");
- igt_subtest("invalid-create-leases")
- invalid_create_leases(&data);
-
- igt_describe("Tests that possible_crtcs logically match between master and "
- "lease, and that the values are correctly renumbered on the lease side.");
- igt_subtest("possible-crtcs-filtering")
- possible_crtcs_filtering(&data);
-
- igt_describe("Tests the drop/set_master interactions.");
- igt_subtest("master-vs-lease")
- master_vs_lease(&data);
-
- igt_describe("Tests that the 2nd master can only create leases while being active "
- "master, and that leases on the first master don't prevent lease creation "
- "for the 2nd master.");
- igt_subtest("multimaster-lease")
- multimaster_lease(&data);
-
- igt_describe("Tests the implicitly added planes.");
- igt_subtest("implicit-plane-lease")
- implicit_plane_lease(&data);
-
- igt_describe("Tests all the uevent cases");
- igt_subtest("lease-uevent")
- lease_uevent(&data);
+ //Display independent subtests
+ igt_subtest_group {
+
+ igt_describe("Tests error handling while creating invalid corner-cases for "
+ "create-lease ioctl");
+ igt_subtest("invalid-create-leases")
+ invalid_create_leases(&data);
+
+ igt_describe("Tests that possible_crtcs logically match between master and "
+ "lease, and that the values are correctly renumbered on the lease side.");
+ igt_subtest("possible-crtcs-filtering")
+ possible_crtcs_filtering(&data);
+
+ igt_describe("Tests the drop/set_master interactions.");
+ igt_subtest("master-vs-lease")
+ master_vs_lease(&data);
+
+ igt_describe("Tests that the 2nd master can only create leases while being active "
+ "master, and that leases on the first master don't prevent lease creation "
+ "for the 2nd master.");
+ igt_subtest("multimaster-lease")
+ multimaster_lease(&data);
+
+ igt_describe("Tests the implicitly added planes.");
+ igt_subtest("implicit-plane-lease")
+ implicit_plane_lease(&data);
+
+ igt_describe("Tests all the uevent cases");
+ igt_subtest("lease-uevent")
+ lease_uevent(&data);
+ }
+
+ igt_fixture {
+ igt_display_fini(display);
+ close(data.master.fd);
+ }
}
--
2.25.1
^ permalink raw reply related [flat|nested] 11+ messages in thread
end of thread, other threads:[~2022-09-20 9:35 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-29 17:33 [igt-dev] [PATCH v7 0/2] tests/kms_lease: IGT test Cleanup Mohammed Thasleem
2022-04-21 12:57 ` [igt-dev] [PATCH v8 " Mohammed Thasleem
2022-04-21 12:57 ` [igt-dev] [PATCH v8 1/2] tests/kms_lease: Create dynamic subtests Mohammed Thasleem
2022-04-21 12:57 ` [igt-dev] [PATCH v8 2/2] tests/kms_lease: Test Cleanup Mohammed Thasleem
2022-08-29 17:33 ` [igt-dev] [PATCH v7 1/2] tests/kms_lease: Create dynamic subtests Mohammed Thasleem
2022-08-29 17:33 ` [igt-dev] [PATCH v7 2/2] tests/kms_lease: Test Cleanup Mohammed Thasleem
2022-09-12 7:59 ` Modem, Bhanuprakash
2022-08-29 19:07 ` [igt-dev] ✓ Fi.CI.BAT: success for tests/kms_lease: IGT test Cleanup Patchwork
2022-08-31 9:42 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
-- strict thread matches above, loose matches on Subject: below --
2022-04-21 14:32 [igt-dev] [PATCH v8 0/2] " Mohammed Thasleem
2022-04-21 14:32 ` [igt-dev] [PATCH v8 2/2] tests/kms_lease: Test Cleanup Mohammed Thasleem
2022-09-20 9:34 ` Modem, Bhanuprakash
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.