[igt-dev] [PATCH i-g-t 5/6] scripts/test_list.py: add a method to return an spreadsheet-like array

Mauro Carvalho Chehab mauro.chehab at linux.intel.com
Mon May 22 14:22:00 UTC 2023


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

It can be useful to convert the contents of the tests into a
spreadsheet. Add a method for doing that at the TestList class.

Signed-off-by: Mauro Carvalho Chehab <mchehab at kernel.org>
---
 scripts/test_list.py | 42 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/scripts/test_list.py b/scripts/test_list.py
index 654ccd8692d4..58a2457d6e77 100755
--- a/scripts/test_list.py
+++ b/scripts/test_list.py
@@ -651,6 +651,48 @@ class TestList:
             handler.close()
             sys.stdout = original_stdout
 
+    def get_spreadsheet(self):
+
+        """
+        Return a bidimentional array with the test contents.
+
+        Its output is similar to a spreadsheet, so it can be used by a
+        separate python file that would create a workbook's sheet.
+        """
+
+        sheet = []
+        row = 0
+        sheet.append([])
+        sheet[row].append('Test name')
+
+        subtest_dict = self.expand_dictionary(True)
+
+                # Identify the sort order for the fields
+        fields_order = []
+        fields = sorted(self.props.items(), key = _sort_per_level)
+        for item in fields:
+            fields_order.append(item[0])
+            sheet[row].append(item[0])
+
+        # Receives a flat subtest dictionary, with wildcards expanded
+        subtest_dict = self.expand_dictionary(True)
+
+        subtests = sorted(subtest_dict.items(),
+                          key = lambda x: _sort_using_array(x, fields_order))
+
+        for subtest, fields in subtests:
+            row += 1
+            sheet.append([])
+
+            sheet[row].append(subtest)
+
+            for field in fields_order:
+                if field in fields:
+                    sheet[row].append(fields[field])
+                else:
+                    sheet[row].append('')
+        return sheet
+
     def print_nested_rest(self, filename):
 
         """Print tests and subtests ordered by tests"""
-- 
2.40.1



More information about the igt-dev mailing list