[igt-dev] [PATCH i-g-t v4 09/11] scripts/test_list.py: add support for expanding fields on spreadsheet

Kamil Konieczny kamil.konieczny at linux.intel.com
Fri Sep 8 17:53:29 UTC 2023


Hi Mauro,
On 2023-09-08 at 10:27:45 +0200, Mauro Carvalho Chehab wrote:
> From: Mauro Carvalho Chehab <mchehab at kernel.org>
> 
> Sometimes, it is desired to expand a field into multiple columns
> when generating a spreadsheet. Add support for it.
> 
> Signed-off-by: Mauro Carvalho Chehab <mchehab at kernel.org>

Reviewed-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>

> ---
>  scripts/test_list.py | 35 ++++++++++++++++++++++++++++++++++-
>  1 file changed, 34 insertions(+), 1 deletion(-)
> 
> diff --git a/scripts/test_list.py b/scripts/test_list.py
> index 01f6528ac84c..74abdc5ebe65 100644
> --- a/scripts/test_list.py
> +++ b/scripts/test_list.py
> @@ -759,7 +759,7 @@ class TestList:
>          else:
>              return out
>  
> -    def get_spreadsheet(self):
> +    def get_spreadsheet(self, expand_fields = {}):
>  
>          """
>          Return a bidimentional array with the test contents.
> @@ -768,6 +768,7 @@ class TestList:
>          separate python file that would create a workbook's sheet.
>          """
>  
> +        expand_field_name = {}
>          sheet = []
>          row = 0
>          sheet.append([])
> @@ -779,6 +780,9 @@ class TestList:
>          fields_order = []
>          fields = sorted(self.props.items(), key = _sort_per_level)
>          for item in fields:
> +            if item[0] in expand_fields.keys():
> +                expand_field_name[item[0]] = set()
> +                continue
>              fields_order.append(item[0])
>              sheet[row].append(item[0])
>  
> @@ -799,6 +803,35 @@ class TestList:
>                      sheet[row].append(fields[field])
>                  else:
>                      sheet[row].append('')
> +
> +            for field in expand_fields.keys():
> +                names = fields.get(field)
> +                if not names:
> +                    continue
> +
> +                names = set(re.split(r",\s*", names))
> +                expand_field_name[field].update(names)
> +
> +        # Add expanded fields, if any
> +        for item in sorted(expand_fields.keys(), key=str.lower):
> +            prefix = expand_fields[item]
> +
> +            for field in sorted(list(expand_field_name[item]), key=str.lower):
> +                row = 0
> +                sheet[row].append(prefix + field)
> +
> +                for subtest, fields in subtests:
> +                    row += 1
> +                    value = ""
> +                    names = fields.get(item)
> +                    if names:
> +                        names = set(re.split(r",\s*", names))
> +
> +                        if field in names:
> +                            value = "Yes"
> +
> +                    sheet[row].append(value)
> +
>          return sheet
>  
>      def print_nested_rest(self, filename = None, return_string = False):
> -- 
> 2.41.0
> 


More information about the igt-dev mailing list