* [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 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.