Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [igt-dev] [PATCH i-g-t 0/3] generate an ordered testlist for Xe driver
@ 2023-06-20  8:07 Mauro Carvalho Chehab
  2023-06-20  8:07 ` [igt-dev] [PATCH i-g-t 1/3] scripts/test_list.py: add support for ordering testlists Mauro Carvalho Chehab
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2023-06-20  8:07 UTC (permalink / raw)
  To: igt-dev

From: Mauro Carvalho Chehab <mchehab@kernel.org>

Add support for ordering tests at the documentation tool, and produce
Xe fast feedback testlists on an ordered way.

Mauro Carvalho Chehab (3):
  scripts/test_list.py: add support for ordering testlists
  xe_test_config.json: add an order for run type
  tests/xe: add run type fields to order testlists

 scripts/test_list.py         | 55 +++++++++++++++++++++++++++++++-----
 tests/xe/xe_live_ktest.c     |  2 +-
 tests/xe/xe_module_load.c    |  2 +-
 tests/xe/xe_test_config.json |  7 ++++-
 4 files changed, 56 insertions(+), 10 deletions(-)

-- 
2.40.1

^ permalink raw reply	[flat|nested] 5+ messages in thread

* [igt-dev] [PATCH i-g-t 1/3] scripts/test_list.py: add support for ordering testlists
  2023-06-20  8:07 [igt-dev] [PATCH i-g-t 0/3] generate an ordered testlist for Xe driver Mauro Carvalho Chehab
@ 2023-06-20  8:07 ` Mauro Carvalho Chehab
  2023-06-20  8:07 ` [igt-dev] [PATCH i-g-t 2/3] xe_test_config.json: add an order for run type Mauro Carvalho Chehab
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2023-06-20  8:07 UTC (permalink / raw)
  To: igt-dev

From: Mauro Carvalho Chehab <mchehab@kernel.org>

Testlists usually require an special order, like:
- an initial test which loads the driver;
- normal tests;
- dangerous tests (like KUnit ones).

Add support to handle order, by adding an "order" property at
the config file.

Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
 scripts/test_list.py | 55 ++++++++++++++++++++++++++++++++++++++------
 1 file changed, 48 insertions(+), 7 deletions(-)

diff --git a/scripts/test_list.py b/scripts/test_list.py
index f676024c9571..76fdcf3dbb4f 100755
--- a/scripts/test_list.py
+++ b/scripts/test_list.py
@@ -819,18 +819,25 @@ class TestList:
     # Subtest list methods
     #
 
-    def get_subtests(self, sort_field = None, expand = None):
+    def get_subtests(self, sort_field = None, expand = None, with_order = False):
 
         """Return an array with all subtests"""
 
         subtests = {}
         subtests[""] = []
 
+        order = None
+
         if sort_field:
             if sort_field.lower() not in self.field_list:
                 sys.exit(f"Field '{sort_field}' is not defined")
             sort_field = self.field_list[sort_field.lower()]
 
+            if with_order:
+                if "_properties_" in self.props[sort_field]:
+                    if "order" in self.props[sort_field]["_properties_"]:
+                        order = self.props[sort_field]["_properties_"]["order"]
+
         for test in sorted(self.doc.keys()):
             fname = self.doc[test]["File"]
 
@@ -848,20 +855,54 @@ class TestList:
                     if sort_field in subtest:
                         if expand:
                             test_list = subtest[sort_field].split(expand)
+                            test_list = [s.strip() for s in test_list]
+
                             for test_elem in test_list:
-                                test_elem = test_elem.strip()
                                 if test_elem not in subtests:
                                     subtests[test_elem] = []
-                                subtests[test_elem].append(subtest["Summary"])
+                                if order:
+                                    subtests[test_elem].append((subtest["Summary"], test_list))
+                                else:
+                                    subtests[test_elem].append(subtest["Summary"])
                         else:
                             if subtest[sort_field] not in subtests:
                                 subtests[subtest[sort_field]] = []
-                            subtests[subtest[sort_field]].append(subtest["Summary"])
+                                if order:
+                                    subtests[test_elem].append((subtest["Summary"], [subtest[sort_field]]))
+                                else:
+                                    subtests[subtest[sort_field]].append(subtest["Summary"])
+                    else:
+                        if order:
+                            subtests[test_elem].append((subtest["Summary"], [subtest[sort_field]]))
+                        else:
+                            subtests[""].append(subtest["Summary"])
+
+                else:
+                    if order:
+                        subtests[test_elem].append((subtest["Summary"], [subtest[sort_field]]))
                     else:
                         subtests[""].append(subtest["Summary"])
 
-                else:
-                    subtests[""].append(subtest["Summary"])
+        if order:
+            for group, tests in subtests.items():
+                prefix_tests = []
+                suffix_tests = []
+                middle_tests = []
+                is_prefix = True
+                for k in order:
+                    if k == "__all__":
+                        is_prefix = False
+                        continue
+                    for test in tests:
+                        if k in test[1]:
+                            if is_prefix:
+                                prefix_tests.append(test[0])
+                            else:
+                                suffix_tests.append(test[0])
+                for test in tests:
+                    if test[0] not in prefix_tests and test[0] not in suffix_tests:
+                        middle_tests.append(test[0])
+                subtests[group] = prefix_tests + middle_tests + suffix_tests
 
         return subtests
 
@@ -1203,7 +1244,7 @@ class TestList:
         test_prefix = re.sub(r'^igt@', '', test_prefix)
 
         # NOTE: currently, it uses a comma for multi-value delimitter
-        test_subtests = self.get_subtests(sort_field, ",")
+        test_subtests = self.get_subtests(sort_field, ",", with_order = True)
 
         if not os.path.exists(directory):
             os.makedirs(directory)
-- 
2.40.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [igt-dev] [PATCH i-g-t 2/3] xe_test_config.json: add an order for run type
  2023-06-20  8:07 [igt-dev] [PATCH i-g-t 0/3] generate an ordered testlist for Xe driver Mauro Carvalho Chehab
  2023-06-20  8:07 ` [igt-dev] [PATCH i-g-t 1/3] scripts/test_list.py: add support for ordering testlists Mauro Carvalho Chehab
@ 2023-06-20  8:07 ` Mauro Carvalho Chehab
  2023-06-20  8:07 ` [igt-dev] [PATCH i-g-t 3/3] tests/xe: add run type fields to order testlists Mauro Carvalho Chehab
  2023-06-20  8:49 ` [igt-dev] ✗ Fi.CI.BAT: failure for generate an ordered testlist for Xe driver Patchwork
  3 siblings, 0 replies; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2023-06-20  8:07 UTC (permalink / raw)
  To: igt-dev

From: Mauro Carvalho Chehab <mchehab@kernel.org>

When generating test lists based on run type for the Xe driver,
order them in a way that the first test will be the one called
after booting the machine (e. g. module load), then normal tests
and finally KUnit ones.

Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
 tests/xe/xe_test_config.json | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/tests/xe/xe_test_config.json b/tests/xe/xe_test_config.json
index 334d372d1330..e89f998bc66b 100644
--- a/tests/xe/xe_test_config.json
+++ b/tests/xe/xe_test_config.json
@@ -22,7 +22,12 @@
                     },
                     "Run type": {
                         "_properties_": {
-                            "description": "Defines what category of testlist it belongs"
+                            "description": "Defines what category of testlist it belongs",
+                            "order": [
+                                "boot",
+                                "__all__",
+                                "kunit"
+                            ]
                         }
                     }
                 }
-- 
2.40.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [igt-dev] [PATCH i-g-t 3/3] tests/xe: add run type fields to order testlists
  2023-06-20  8:07 [igt-dev] [PATCH i-g-t 0/3] generate an ordered testlist for Xe driver Mauro Carvalho Chehab
  2023-06-20  8:07 ` [igt-dev] [PATCH i-g-t 1/3] scripts/test_list.py: add support for ordering testlists Mauro Carvalho Chehab
  2023-06-20  8:07 ` [igt-dev] [PATCH i-g-t 2/3] xe_test_config.json: add an order for run type Mauro Carvalho Chehab
@ 2023-06-20  8:07 ` Mauro Carvalho Chehab
  2023-06-20  8:49 ` [igt-dev] ✗ Fi.CI.BAT: failure for generate an ordered testlist for Xe driver Patchwork
  3 siblings, 0 replies; 5+ messages in thread
From: Mauro Carvalho Chehab @ 2023-06-20  8:07 UTC (permalink / raw)
  To: igt-dev

From: Mauro Carvalho Chehab <mchehab@kernel.org>

Order tests at the fast feedback testlist, when generating
testlists based on Run type field:

- add boot to xe_module_load, to run such test first when producing
  a fast feedback testlist;
- place kunit tests at the end of the fast feedback testlist, as they
  have a higher chance of causing GPU hangups.

Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
---
 tests/xe/xe_live_ktest.c  | 2 +-
 tests/xe/xe_module_load.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/tests/xe/xe_live_ktest.c b/tests/xe/xe_live_ktest.c
index 7dcf679069b8..f0cbf4f623bc 100644
--- a/tests/xe/xe_live_ktest.c
+++ b/tests/xe/xe_live_ktest.c
@@ -8,7 +8,7 @@
  * Sub-category: kunit
  * Functionality: kunit
  * Test category: functionality test
- * Run type: BAT
+ * Run type: BAT, kunit
  *
  * SUBTEST: bo
  * Functionality: bo
diff --git a/tests/xe/xe_module_load.c b/tests/xe/xe_module_load.c
index 1c2d4a2e2ea3..3b2dc1fdc90f 100644
--- a/tests/xe/xe_module_load.c
+++ b/tests/xe/xe_module_load.c
@@ -99,7 +99,7 @@ static const char * const unwanted_drivers[] = {
 /**
  * SUBTEST: force-load
  * Description: Load the Xe driver passing ``force_probe=*`` parameter
- * Run type: BAT
+ * Run type: BAT, boot
  *
  * SUBTEST: load
  * Description: Load the Xe driver
-- 
2.40.1

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [igt-dev] ✗ Fi.CI.BAT: failure for generate an ordered testlist for Xe driver
  2023-06-20  8:07 [igt-dev] [PATCH i-g-t 0/3] generate an ordered testlist for Xe driver Mauro Carvalho Chehab
                   ` (2 preceding siblings ...)
  2023-06-20  8:07 ` [igt-dev] [PATCH i-g-t 3/3] tests/xe: add run type fields to order testlists Mauro Carvalho Chehab
@ 2023-06-20  8:49 ` Patchwork
  3 siblings, 0 replies; 5+ messages in thread
From: Patchwork @ 2023-06-20  8:49 UTC (permalink / raw)
  To: Mauro Carvalho Chehab; +Cc: igt-dev

[-- Attachment #1: Type: text/plain, Size: 7198 bytes --]

== Series Details ==

Series: generate an ordered testlist for Xe driver
URL   : https://patchwork.freedesktop.org/series/119570/
State : failure

== Summary ==

CI Bug Log - changes from IGT_7339 -> IGTPW_9214
====================================================

Summary
-------

  **FAILURE**

  Serious unknown changes coming with IGTPW_9214 absolutely need to be
  verified manually.
  
  If you think the reported changes have nothing to do with the changes
  introduced in IGTPW_9214, 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_9214/index.html

Participating hosts (44 -> 43)
------------------------------

  Missing    (1): fi-snb-2520m 

Possible new issues
-------------------

  Here are the unknown changes that may have been introduced in IGTPW_9214:

### IGT changes ###

#### Possible regressions ####

  * igt@i915_suspend@basic-s2idle-without-i915:
    - bat-mtlp-6:         [PASS][1] -> [INCOMPLETE][2]
   [1]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7339/bat-mtlp-6/igt@i915_suspend@basic-s2idle-without-i915.html
   [2]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/bat-mtlp-6/igt@i915_suspend@basic-s2idle-without-i915.html

  
Known issues
------------

  Here are the changes found in IGTPW_9214 that come from known issues:

### IGT changes ###

#### Issues hit ####

  * igt@i915_selftest@live@gt_heartbeat:
    - fi-kbl-soraka:      [PASS][3] -> [DMESG-FAIL][4] ([i915#5334] / [i915#7872])
   [3]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7339/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html
   [4]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/fi-kbl-soraka/igt@i915_selftest@live@gt_heartbeat.html

  * igt@i915_selftest@live@gt_mocs:
    - bat-mtlp-8:         [PASS][5] -> [DMESG-FAIL][6] ([i915#7059])
   [5]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7339/bat-mtlp-8/igt@i915_selftest@live@gt_mocs.html
   [6]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/bat-mtlp-8/igt@i915_selftest@live@gt_mocs.html

  * igt@i915_selftest@live@reset:
    - bat-rpls-1:         [PASS][7] -> [ABORT][8] ([i915#4983] / [i915#7461] / [i915#8347] / [i915#8384])
   [7]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7339/bat-rpls-1/igt@i915_selftest@live@reset.html
   [8]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/bat-rpls-1/igt@i915_selftest@live@reset.html

  * igt@i915_selftest@live@slpc:
    - bat-rpls-2:         NOTRUN -> [DMESG-WARN][9] ([i915#6367])
   [9]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/bat-rpls-2/igt@i915_selftest@live@slpc.html

  * igt@i915_suspend@basic-s2idle-without-i915:
    - bat-rpls-2:         NOTRUN -> [ABORT][10] ([i915#6687] / [i915#8668])
   [10]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/bat-rpls-2/igt@i915_suspend@basic-s2idle-without-i915.html

  * igt@kms_chamelium_hpd@common-hpd-after-suspend:
    - bat-dg2-11:         NOTRUN -> [SKIP][11] ([i915#7828])
   [11]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/bat-dg2-11/igt@kms_chamelium_hpd@common-hpd-after-suspend.html

  * igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence:
    - bat-dg2-11:         NOTRUN -> [SKIP][12] ([i915#1845] / [i915#5354]) +3 similar issues
   [12]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/bat-dg2-11/igt@kms_pipe_crc_basic@nonblocking-crc-frame-sequence.html

  
#### Possible fixes ####

  * igt@gem_exec_suspend@basic-s3@smem:
    - fi-rkl-11600:       [FAIL][13] ([fdo#103375]) -> [PASS][14]
   [13]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7339/fi-rkl-11600/igt@gem_exec_suspend@basic-s3@smem.html
   [14]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/fi-rkl-11600/igt@gem_exec_suspend@basic-s3@smem.html

  * igt@i915_selftest@live@gt_lrc:
    - bat-dg2-11:         [INCOMPLETE][15] ([i915#7609] / [i915#7913]) -> [PASS][16]
   [15]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7339/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html
   [16]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/bat-dg2-11/igt@i915_selftest@live@gt_lrc.html

  * igt@i915_selftest@live@requests:
    - bat-mtlp-8:         [DMESG-FAIL][17] ([i915#8497]) -> [PASS][18]
   [17]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7339/bat-mtlp-8/igt@i915_selftest@live@requests.html
   [18]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/bat-mtlp-8/igt@i915_selftest@live@requests.html

  * igt@i915_selftest@live@reset:
    - bat-rpls-2:         [ABORT][19] ([i915#4983] / [i915#7461] / [i915#7913] / [i915#8347]) -> [PASS][20]
   [19]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7339/bat-rpls-2/igt@i915_selftest@live@reset.html
   [20]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/bat-rpls-2/igt@i915_selftest@live@reset.html

  * igt@i915_selftest@live@slpc:
    - bat-mtlp-6:         [DMESG-WARN][21] ([i915#6367]) -> [PASS][22]
   [21]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7339/bat-mtlp-6/igt@i915_selftest@live@slpc.html
   [22]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/bat-mtlp-6/igt@i915_selftest@live@slpc.html

  
#### Warnings ####

  * igt@i915_module_load@load:
    - bat-adlp-11:        [DMESG-WARN][23] ([i915#4423]) -> [ABORT][24] ([i915#4423])
   [23]: https://intel-gfx-ci.01.org/tree/drm-tip/IGT_7339/bat-adlp-11/igt@i915_module_load@load.html
   [24]: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/bat-adlp-11/igt@i915_module_load@load.html

  
  [fdo#103375]: https://bugs.freedesktop.org/show_bug.cgi?id=103375
  [i915#1845]: https://gitlab.freedesktop.org/drm/intel/issues/1845
  [i915#4423]: https://gitlab.freedesktop.org/drm/intel/issues/4423
  [i915#4983]: https://gitlab.freedesktop.org/drm/intel/issues/4983
  [i915#5334]: https://gitlab.freedesktop.org/drm/intel/issues/5334
  [i915#5354]: https://gitlab.freedesktop.org/drm/intel/issues/5354
  [i915#6367]: https://gitlab.freedesktop.org/drm/intel/issues/6367
  [i915#6687]: https://gitlab.freedesktop.org/drm/intel/issues/6687
  [i915#7059]: https://gitlab.freedesktop.org/drm/intel/issues/7059
  [i915#7461]: https://gitlab.freedesktop.org/drm/intel/issues/7461
  [i915#7609]: https://gitlab.freedesktop.org/drm/intel/issues/7609
  [i915#7828]: https://gitlab.freedesktop.org/drm/intel/issues/7828
  [i915#7872]: https://gitlab.freedesktop.org/drm/intel/issues/7872
  [i915#7913]: https://gitlab.freedesktop.org/drm/intel/issues/7913
  [i915#8347]: https://gitlab.freedesktop.org/drm/intel/issues/8347
  [i915#8384]: https://gitlab.freedesktop.org/drm/intel/issues/8384
  [i915#8497]: https://gitlab.freedesktop.org/drm/intel/issues/8497
  [i915#8668]: https://gitlab.freedesktop.org/drm/intel/issues/8668


Build changes
-------------

  * CI: CI-20190529 -> None
  * IGT: IGT_7339 -> IGTPW_9214

  CI-20190529: 20190529
  CI_DRM_13290: d8109039969700315ed327adfab8732c3c882bd6 @ git://anongit.freedesktop.org/gfx-ci/linux
  IGTPW_9214: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/index.html
  IGT_7339: 4476edb0fb09b886f7e667d1174d13299d98c23f @ https://gitlab.freedesktop.org/drm/igt-gpu-tools.git

== Logs ==

For more details see: https://intel-gfx-ci.01.org/tree/drm-tip/IGTPW_9214/index.html

[-- Attachment #2: Type: text/html, Size: 8525 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-06-20  8:49 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-20  8:07 [igt-dev] [PATCH i-g-t 0/3] generate an ordered testlist for Xe driver Mauro Carvalho Chehab
2023-06-20  8:07 ` [igt-dev] [PATCH i-g-t 1/3] scripts/test_list.py: add support for ordering testlists Mauro Carvalho Chehab
2023-06-20  8:07 ` [igt-dev] [PATCH i-g-t 2/3] xe_test_config.json: add an order for run type Mauro Carvalho Chehab
2023-06-20  8:07 ` [igt-dev] [PATCH i-g-t 3/3] tests/xe: add run type fields to order testlists Mauro Carvalho Chehab
2023-06-20  8:49 ` [igt-dev] ✗ Fi.CI.BAT: failure for generate an ordered testlist for Xe driver Patchwork

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox