* [igt-dev] [PATCH v2 0/2] tests/kms_lease: IGT test Cleanup
@ 2022-07-17 19:55 Mohammed Thasleem
2022-07-17 19:55 ` [igt-dev] [PATCH v2 1/2] tests/kms_lease: Create dynamic subtests Mohammed Thasleem
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Mohammed Thasleem @ 2022-07-17 19:55 UTC (permalink / raw)
To: igt-dev; +Cc: nidhi1.gupta
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 | 117 ++++++++++++++++++++++++++++++----------------
1 file changed, 76 insertions(+), 41 deletions(-)
--
2.25.1
^ permalink raw reply [flat|nested] 5+ messages in thread
* [igt-dev] [PATCH v2 1/2] tests/kms_lease: Create dynamic subtests
2022-07-17 19:55 [igt-dev] [PATCH v2 0/2] tests/kms_lease: IGT test Cleanup Mohammed Thasleem
@ 2022-07-17 19:55 ` Mohammed Thasleem
2022-07-18 5:22 ` Modem, Bhanuprakash
2022-07-17 19:55 ` [igt-dev] [PATCH v2 2/2] tests/kms_lease: Test Cleanup Mohammed Thasleem
2022-07-17 20:46 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_lease: IGT test Cleanup (rev2) Patchwork
2 siblings, 1 reply; 5+ messages in thread
From: Mohammed Thasleem @ 2022-07-17 19:55 UTC (permalink / raw)
To: igt-dev; +Cc: nidhi1.gupta
Modified tests/kms_lease to include dynamic test cases.
Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
tests/kms_lease.c | 107 +++++++++++++++++++++++++++++-----------------
1 file changed, 67 insertions(+), 40 deletions(-)
diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index 0bf102a6..4f614e4e 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -47,6 +47,8 @@
IGT_TEST_DESCRIPTION("Test of CreateLease.");
+unsigned int valid_tests;
+
typedef struct {
int fd;
uint32_t lessee_id;
@@ -809,39 +811,31 @@ static void lease_invalid_plane(data_t *data)
}
-static void run_test(data_t *data, void (*testfunc)(data_t *))
+static void run_test(data_t *data, void (*testfunc)(data_t *), enum pipe p, igt_output_t *output)
{
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("Beginning %s on pipe %s, connector %s\n",
+ igt_subtest_name(),
+ kmstest_pipe_name(p),
+ igt_output_name(output));
- igt_info("\n%s on pipe %s, connector %s: PASSED\n\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;
- valid_tests++;
- }
+ testfunc(data);
- igt_require_f(valid_tests,
- "no valid crtc/connector combinations found\n");
+ 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++;
}
#define assert_double_id_err(ret) \
@@ -1218,6 +1212,8 @@ static void lease_uevent(data_t *data)
igt_main
{
data_t data;
+ igt_output_t *output;
+ enum pipe p;
const struct {
const char *name;
void (*func)(data_t *);
@@ -1255,36 +1251,67 @@ igt_main
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(&data.master.display, p, output) {
+ igt_dynamic_f("%s-pipe-%s", igt_output_name(output),
+ kmstest_pipe_name(p)) {
+ run_test(&data, f->func, p, output);
+ }
+ }
+ igt_require_f(valid_tests,
+ "no valid crtc/connector combinations found\n");
}
}
igt_describe("Tests error handling while creating invalid corner-cases for "
"create-lease ioctl");
- igt_subtest("invalid-create-leases")
- invalid_create_leases(&data);
+ igt_subtest_with_dynamic_f("invalid-create-leases") {
+ for_each_pipe_with_valid_output(&data.master.display, p, output) {
+ igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p))
+ 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_subtest_with_dynamic_f("possible-crtcs-filtering") {
+ for_each_pipe_with_valid_output(&data.master.display, p, output) {
+ igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p))
+ possible_crtcs_filtering(&data);
+ }
+ }
igt_describe("Tests the drop/set_master interactions.");
- igt_subtest("master-vs-lease")
- master_vs_lease(&data);
+ igt_subtest_with_dynamic_f("master-vs-lease") {
+ for_each_pipe_with_valid_output(&data.master.display, p, output) {
+ igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p))
+ 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_subtest_with_dynamic_f("multimaster-lease") {
+ for_each_pipe_with_valid_output(&data.master.display, p, output) {
+ igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p))
+ multimaster_lease(&data);
+ }
+ }
igt_describe("Tests the implicitly added planes.");
- igt_subtest("implicit-plane-lease")
- implicit_plane_lease(&data);
+ igt_subtest_with_dynamic_f("implicit-plane-lease") {
+ for_each_pipe_with_valid_output(&data.master.display, p, output) {
+ igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p))
+ implicit_plane_lease(&data);
+ }
+ }
igt_describe("Tests all the uevent cases");
- igt_subtest("lease-uevent")
- lease_uevent(&data);
+ igt_subtest_with_dynamic_f("lease-uevent") {
+ for_each_pipe_with_valid_output(&data.master.display, p, output) {
+ igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p))
+ lease_uevent(&data);
+ }
+ }
}
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [igt-dev] [PATCH v2 2/2] tests/kms_lease: Test Cleanup
2022-07-17 19:55 [igt-dev] [PATCH v2 0/2] tests/kms_lease: IGT test Cleanup Mohammed Thasleem
2022-07-17 19:55 ` [igt-dev] [PATCH v2 1/2] tests/kms_lease: Create dynamic subtests Mohammed Thasleem
@ 2022-07-17 19:55 ` Mohammed Thasleem
2022-07-17 20:46 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_lease: IGT test Cleanup (rev2) Patchwork
2 siblings, 0 replies; 5+ messages in thread
From: Mohammed Thasleem @ 2022-07-17 19:55 UTC (permalink / raw)
To: igt-dev; +Cc: nidhi1.gupta
Sanitize the system state before starting the subtest.
Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
---
tests/kms_lease.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/tests/kms_lease.c b/tests/kms_lease.c
index 4f614e4e..46c41fca 100644
--- a/tests/kms_lease.c
+++ b/tests/kms_lease.c
@@ -102,6 +102,8 @@ static int prepare_crtc(lease_t *lease, uint32_t connector_id, uint32_t crtc_id)
if (!output)
return -ENOENT;
+ igt_display_reset(display);
+
/* select the pipe we want to use */
igt_output_set_pipe(output, pipe);
@@ -138,7 +140,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);
}
@@ -1246,6 +1248,7 @@ igt_main
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_output(&data.master.display);
}
for (f = funcs; f->name; f++) {
@@ -1314,4 +1317,9 @@ igt_main
lease_uevent(&data);
}
}
+
+ igt_fixture {
+ igt_display_fini(&data.master.display);
+ close(data.master.fd);
+ }
}
--
2.25.1
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_lease: IGT test Cleanup (rev2)
2022-07-17 19:55 [igt-dev] [PATCH v2 0/2] tests/kms_lease: IGT test Cleanup Mohammed Thasleem
2022-07-17 19:55 ` [igt-dev] [PATCH v2 1/2] tests/kms_lease: Create dynamic subtests Mohammed Thasleem
2022-07-17 19:55 ` [igt-dev] [PATCH v2 2/2] tests/kms_lease: Test Cleanup Mohammed Thasleem
@ 2022-07-17 20:46 ` Patchwork
2 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2022-07-17 20:46 UTC (permalink / raw)
To: Mohammed Thasleem; +Cc: igt-dev
[-- Attachment #1: Type: text/plain, Size: 10788 bytes --]
== Series Details ==
Series: tests/kms_lease: IGT test Cleanup (rev2)
URL : https://patchwork.freedesktop.org/series/105366/
State : failure
== Summary ==
CI Bug Log - changes from CI_DRM_11907 -> IGTPW_7530
====================================================
Summary
-------
**FAILURE**
Serious unknown changes coming with IGTPW_7530 absolutely need to be
verified manually.
If you think the reported changes have nothing to do with the changes
introduced in IGTPW_7530, please notify your bug team to allow them
to document this new failure mode, which will reduce false positives in CI.
External URL: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/index.html
Participating hosts (42 -> 43)
------------------------------
Additional (2): bat-rpls-1 fi-icl-u2
Missing (1): fi-bxt-dsi
Possible new issues
-------------------
Here are the unknown changes that may have been introduced in IGTPW_7530:
### IGT changes ###
#### Possible regressions ####
* igt@vgem_basic@mmap:
- fi-kbl-soraka: [PASS][1] -> [INCOMPLETE][2]
[1]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11907/fi-kbl-soraka/igt@vgem_basic@mmap.html
[2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-kbl-soraka/igt@vgem_basic@mmap.html
Known issues
------------
Here are the changes found in IGTPW_7530 that come from known issues:
### IGT changes ###
#### Issues hit ####
* igt@gem_huc_copy@huc-copy:
- fi-icl-u2: NOTRUN -> [SKIP][3] ([i915#2190])
[3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-icl-u2/igt@gem_huc_copy@huc-copy.html
* igt@gem_lmem_swapping@random-engines:
- fi-icl-u2: NOTRUN -> [SKIP][4] ([i915#4613]) +3 similar issues
[4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-icl-u2/igt@gem_lmem_swapping@random-engines.html
* igt@i915_selftest@live@slpc:
- bat-adlp-4: [PASS][5] -> [DMESG-FAIL][6] ([i915#5938])
[5]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11907/bat-adlp-4/igt@i915_selftest@live@slpc.html
[6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/bat-adlp-4/igt@i915_selftest@live@slpc.html
* igt@i915_suspend@basic-s3-without-i915:
- fi-icl-u2: NOTRUN -> [SKIP][7] ([i915#5903])
[7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-icl-u2/igt@i915_suspend@basic-s3-without-i915.html
* igt@kms_chamelium@common-hpd-after-suspend:
- fi-bsw-nick: NOTRUN -> [SKIP][8] ([fdo#109271] / [fdo#111827])
[8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-bsw-nick/igt@kms_chamelium@common-hpd-after-suspend.html
- fi-hsw-g3258: NOTRUN -> [SKIP][9] ([fdo#109271] / [fdo#111827])
[9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-hsw-g3258/igt@kms_chamelium@common-hpd-after-suspend.html
* igt@kms_chamelium@hdmi-hpd-fast:
- fi-icl-u2: NOTRUN -> [SKIP][10] ([fdo#111827]) +8 similar issues
[10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-icl-u2/igt@kms_chamelium@hdmi-hpd-fast.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor:
- fi-icl-u2: NOTRUN -> [SKIP][11] ([i915#4103])
[11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-icl-u2/igt@kms_cursor_legacy@basic-busy-flip-before-cursor.html
* igt@kms_force_connector_basic@force-connector-state:
- fi-icl-u2: NOTRUN -> [WARN][12] ([i915#6008])
[12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-icl-u2/igt@kms_force_connector_basic@force-connector-state.html
* igt@kms_force_connector_basic@force-load-detect:
- fi-icl-u2: NOTRUN -> [SKIP][13] ([fdo#109285])
[13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-icl-u2/igt@kms_force_connector_basic@force-load-detect.html
* igt@kms_pipe_crc_basic@suspend-read-crc:
- fi-bsw-nick: NOTRUN -> [SKIP][14] ([fdo#109271])
[14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-bsw-nick/igt@kms_pipe_crc_basic@suspend-read-crc.html
* igt@kms_setmode@basic-clone-single-crtc:
- fi-icl-u2: NOTRUN -> [SKIP][15] ([i915#3555])
[15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-icl-u2/igt@kms_setmode@basic-clone-single-crtc.html
* igt@prime_vgem@basic-userptr:
- fi-icl-u2: NOTRUN -> [SKIP][16] ([fdo#109295] / [i915#3301])
[16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-icl-u2/igt@prime_vgem@basic-userptr.html
* igt@runner@aborted:
- fi-rkl-11600: NOTRUN -> [FAIL][17] ([i915#2029] / [i915#4312])
[17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-rkl-11600/igt@runner@aborted.html
#### Possible fixes ####
* igt@core_hotunplug@unbind-rebind:
- {fi-tgl-dsi}: [DMESG-WARN][18] ([i915#1982]) -> [PASS][19]
[18]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11907/fi-tgl-dsi/igt@core_hotunplug@unbind-rebind.html
[19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-tgl-dsi/igt@core_hotunplug@unbind-rebind.html
* igt@gem_exec_suspend@basic-s3@smem:
- {bat-adlm-1}: [DMESG-WARN][20] ([i915#2867]) -> [PASS][21]
[20]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11907/bat-adlm-1/igt@gem_exec_suspend@basic-s3@smem.html
[21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/bat-adlm-1/igt@gem_exec_suspend@basic-s3@smem.html
* igt@i915_module_load@reload:
- {bat-dg2-9}: [DMESG-WARN][22] ([i915#5763]) -> [PASS][23] +1 similar issue
[22]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11907/bat-dg2-9/igt@i915_module_load@reload.html
[23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/bat-dg2-9/igt@i915_module_load@reload.html
* igt@i915_pm_rps@basic-api:
- fi-glk-j4005: [DMESG-WARN][24] ([i915#118]) -> [PASS][25]
[24]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11907/fi-glk-j4005/igt@i915_pm_rps@basic-api.html
[25]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-glk-j4005/igt@i915_pm_rps@basic-api.html
* igt@i915_selftest@live@execlists:
- fi-bsw-nick: [INCOMPLETE][26] ([i915#5847]) -> [PASS][27]
[26]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11907/fi-bsw-nick/igt@i915_selftest@live@execlists.html
[27]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-bsw-nick/igt@i915_selftest@live@execlists.html
* igt@i915_selftest@live@hangcheck:
- fi-hsw-g3258: [INCOMPLETE][28] ([i915#4785]) -> [PASS][29]
[28]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11907/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html
[29]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-hsw-g3258/igt@i915_selftest@live@hangcheck.html
- {fi-jsl-1}: [INCOMPLETE][30] ([i915#5153]) -> [PASS][31]
[30]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11907/fi-jsl-1/igt@i915_selftest@live@hangcheck.html
[31]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-jsl-1/igt@i915_selftest@live@hangcheck.html
* igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size:
- fi-bsw-kefka: [FAIL][32] ([i915#6298]) -> [PASS][33]
[32]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11907/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size.html
[33]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/fi-bsw-kefka/igt@kms_cursor_legacy@basic-busy-flip-before-cursor@atomic-transitions-varying-size.html
#### Warnings ####
* igt@i915_selftest@live@hangcheck:
- bat-dg1-5: [DMESG-FAIL][34] ([i915#4494] / [i915#4957]) -> [DMESG-FAIL][35] ([i915#4957])
[34]: https://intel-gfx-ci.01.org/tree/drm-tip/CI_DRM_11907/bat-dg1-5/igt@i915_selftest@live@hangcheck.html
[35]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/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#109285]: https://bugs.freedesktop.org/show_bug.cgi?id=109285
[fdo#109295]: https://bugs.freedesktop.org/show_bug.cgi?id=109295
[fdo#111827]: https://bugs.freedesktop.org/show_bug.cgi?id=111827
[i915#1072]: https://gitlab.freedesktop.org/drm/intel/issues/1072
[i915#1155]: https://gitlab.freedesktop.org/drm/intel/issues/1155
[i915#118]: https://gitlab.freedesktop.org/drm/intel/issues/118
[i915#1982]: https://gitlab.freedesktop.org/drm/intel/issues/1982
[i915#2029]: https://gitlab.freedesktop.org/drm/intel/issues/2029
[i915#2190]: https://gitlab.freedesktop.org/drm/intel/issues/2190
[i915#2582]: https://gitlab.freedesktop.org/drm/intel/issues/2582
[i915#2867]: https://gitlab.freedesktop.org/drm/intel/issues/2867
[i915#3282]: https://gitlab.freedesktop.org/drm/intel/issues/3282
[i915#3301]: https://gitlab.freedesktop.org/drm/intel/issues/3301
[i915#3555]: https://gitlab.freedesktop.org/drm/intel/issues/3555
[i915#3708]: https://gitlab.freedesktop.org/drm/intel/issues/3708
[i915#4103]: https://gitlab.freedesktop.org/drm/intel/issues/4103
[i915#4312]: https://gitlab.freedesktop.org/drm/intel/issues/4312
[i915#4494]: https://gitlab.freedesktop.org/drm/intel/issues/4494
[i915#4613]: https://gitlab.freedesktop.org/drm/intel/issues/4613
[i915#4785]: https://gitlab.freedesktop.org/drm/intel/issues/4785
[i915#4957]: https://gitlab.freedesktop.org/drm/intel/issues/4957
[i915#5087]: https://gitlab.freedesktop.org/drm/intel/issues/5087
[i915#5153]: https://gitlab.freedesktop.org/drm/intel/issues/5153
[i915#5270]: https://gitlab.freedesktop.org/drm/intel/issues/5270
[i915#5763]: https://gitlab.freedesktop.org/drm/intel/issues/5763
[i915#5847]: https://gitlab.freedesktop.org/drm/intel/issues/5847
[i915#5903]: https://gitlab.freedesktop.org/drm/intel/issues/5903
[i915#5938]: https://gitlab.freedesktop.org/drm/intel/issues/5938
[i915#6008]: https://gitlab.freedesktop.org/drm/intel/issues/6008
[i915#6257]: https://gitlab.freedesktop.org/drm/intel/issues/6257
[i915#6297]: https://gitlab.freedesktop.org/drm/intel/issues/6297
[i915#6298]: https://gitlab.freedesktop.org/drm/intel/issues/6298
[i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
Build changes
-------------
* CI: CI-20190529 -> None
* IGT: IGT_6586 -> IGTPW_7530
CI-20190529: 20190529
CI_DRM_11907: b6ce6eb7d8d6fea0e38563dbc7a4881a7e36992f @ git://anongit.freedesktop.org/gfx-ci/linux
IGTPW_7530: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/index.html
IGT_6586: 0e5931f66eb283ba404b07394840b8e0b0c5e621 @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git
== Logs ==
For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_7530/index.html
[-- Attachment #2: Type: text/html, Size: 11639 bytes --]
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [igt-dev] [PATCH v2 1/2] tests/kms_lease: Create dynamic subtests
2022-07-17 19:55 ` [igt-dev] [PATCH v2 1/2] tests/kms_lease: Create dynamic subtests Mohammed Thasleem
@ 2022-07-18 5:22 ` Modem, Bhanuprakash
0 siblings, 0 replies; 5+ messages in thread
From: Modem, Bhanuprakash @ 2022-07-18 5:22 UTC (permalink / raw)
To: Mohammed Thasleem, igt-dev; +Cc: nidhi1.gupta
On Mon-18-07-2022 01:25 am, Mohammed Thasleem wrote:
> Modified tests/kms_lease to include dynamic test cases.
>
> Signed-off-by: Mohammed Thasleem <mohammed.thasleem@intel.com>
> ---
> tests/kms_lease.c | 107 +++++++++++++++++++++++++++++-----------------
> 1 file changed, 67 insertions(+), 40 deletions(-)
>
> diff --git a/tests/kms_lease.c b/tests/kms_lease.c
> index 0bf102a6..4f614e4e 100644
> --- a/tests/kms_lease.c
> +++ b/tests/kms_lease.c
> @@ -47,6 +47,8 @@
>
> IGT_TEST_DESCRIPTION("Test of CreateLease.");
>
> +unsigned int valid_tests;
> +
> typedef struct {
> int fd;
> uint32_t lessee_id;
> @@ -809,39 +811,31 @@ static void lease_invalid_plane(data_t *data)
> }
>
>
> -static void run_test(data_t *data, void (*testfunc)(data_t *))
> +static void run_test(data_t *data, void (*testfunc)(data_t *), enum pipe p, igt_output_t *output)
> {
> 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("Beginning %s on pipe %s, connector %s\n",
> + igt_subtest_name(),
> + kmstest_pipe_name(p),
> + igt_output_name(output));
Please drop this print, dynamic subtest will take care of this:
Example:
Starting subtest: empty_lease
Starting dynamic subtest: HDMI-A-1-pipe-A
>
> - igt_info("\n%s on pipe %s, connector %s: PASSED\n\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;
>
> - valid_tests++;
> - }
> + testfunc(data);
>
> - igt_require_f(valid_tests,
> - "no valid crtc/connector combinations found\n");
> + igt_info("\n%s on pipe %s, connector %s: PASSED\n\n",
> + igt_subtest_name(),
> + kmstest_pipe_name(p),
> + igt_output_name(output));
Same here.
Example:
Dynamic subtest HDMI-A-1-pipe-A: SUCCESS (0.001s)
> +
> + valid_tests++;
> }
>
> #define assert_double_id_err(ret) \
> @@ -1218,6 +1212,8 @@ static void lease_uevent(data_t *data)
> igt_main
> {
> data_t data;
> + igt_output_t *output;
> + enum pipe p;
> const struct {
> const char *name;
> void (*func)(data_t *);
> @@ -1255,36 +1251,67 @@ igt_main
> 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(&data.master.display, p, output) {
> + igt_dynamic_f("%s-pipe-%s", igt_output_name(output),
> + kmstest_pipe_name(p)) {
Please update the dynamic subtest name as <pipe>-<output>
> + run_test(&data, f->func, p, output);
> + }
> + }
> + igt_require_f(valid_tests,
> + "no valid crtc/connector combinations found\n");
This is not required. IGT will throw SKIP automatically if
igt_dynamic(_f) is not executed.
> }
> }
>
> igt_describe("Tests error handling while creating invalid corner-cases for "
> "create-lease ioctl");
> - igt_subtest("invalid-create-leases")
> - invalid_create_leases(&data);
> + igt_subtest_with_dynamic_f("invalid-create-leases") {
> + for_each_pipe_with_valid_output(&data.master.display, p, output) {
> + igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p))
> + invalid_create_leases(&data);
There's an easy thumb rule to follow: If you're looping over all
output/pipe combinations, and you're not even passing the output and
pipe to the test, you're just repeating the same operation n times.
- Bhanu
> + }
> + }
>
> 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_subtest_with_dynamic_f("possible-crtcs-filtering") {
> + for_each_pipe_with_valid_output(&data.master.display, p, output) {
> + igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p))
> + possible_crtcs_filtering(&data);
> + }
> + }
>
> igt_describe("Tests the drop/set_master interactions.");
> - igt_subtest("master-vs-lease")
> - master_vs_lease(&data);
> + igt_subtest_with_dynamic_f("master-vs-lease") {
> + for_each_pipe_with_valid_output(&data.master.display, p, output) {
> + igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p))
> + 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_subtest_with_dynamic_f("multimaster-lease") {
> + for_each_pipe_with_valid_output(&data.master.display, p, output) {
> + igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p))
> + multimaster_lease(&data);
> + }
> + }
>
> igt_describe("Tests the implicitly added planes.");
> - igt_subtest("implicit-plane-lease")
> - implicit_plane_lease(&data);
> + igt_subtest_with_dynamic_f("implicit-plane-lease") {
> + for_each_pipe_with_valid_output(&data.master.display, p, output) {
> + igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p))
> + implicit_plane_lease(&data);
> + }
> + }
>
> igt_describe("Tests all the uevent cases");
> - igt_subtest("lease-uevent")
> - lease_uevent(&data);
> + igt_subtest_with_dynamic_f("lease-uevent") {
> + for_each_pipe_with_valid_output(&data.master.display, p, output) {
> + igt_dynamic_f("%s-pipe-%s", igt_output_name(output), kmstest_pipe_name(p))
> + lease_uevent(&data);
> + }
> + }
> }
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2022-07-18 5:22 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-17 19:55 [igt-dev] [PATCH v2 0/2] tests/kms_lease: IGT test Cleanup Mohammed Thasleem
2022-07-17 19:55 ` [igt-dev] [PATCH v2 1/2] tests/kms_lease: Create dynamic subtests Mohammed Thasleem
2022-07-18 5:22 ` Modem, Bhanuprakash
2022-07-17 19:55 ` [igt-dev] [PATCH v2 2/2] tests/kms_lease: Test Cleanup Mohammed Thasleem
2022-07-17 20:46 ` [igt-dev] ✗ Fi.CI.BAT: failure for tests/kms_lease: IGT test Cleanup (rev2) Patchwork
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox