Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [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