[PATCH i-g-t v5 12/17] scripts/igt_doc: Add '--exclude-files' parameter

Manszewski, Christoph christoph.manszewski at intel.com
Wed Sep 4 13:37:47 UTC 2024


Hi Zbigniew,

On 3.09.2024 08:54, Zbigniew Kempczyński wrote:
> On Thu, Aug 29, 2024 at 04:45:42PM +0200, Christoph Manszewski wrote:
>> Make it possible to exclude files using '--exclude-files' parameter.
>> Merge excluded files passed with that parameter with files excluded from the
>> test config '.json' files. Align the behavior of the '--files' parameter
>> to also merge with files included from the config.
>>
>> Signed-off-by: Christoph Manszewski <christoph.manszewski at intel.com>
> 
> This one looks good to me. I've tested it without and with xe_eudebug
> configuration and it works for both cases.
> 
> Only thing I would add to commit description is 'why' we need this
> change, I mean without explicit passing optional tests to be excluded
> doc generator will notice mismatch between those two lists.

Sure will do.

> 
> With above nit addressed:
> 
> Reviewed-by: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>

Thanks,
Christoph

> 
> --
> Zbigniew
> 
>> ---
>>   scripts/igt_doc.py   |  3 +++
>>   scripts/test_list.py | 47 +++++++++++++++++++++++++-------------------
>>   2 files changed, 30 insertions(+), 20 deletions(-)
>>
>> diff --git a/scripts/igt_doc.py b/scripts/igt_doc.py
>> index fa2c2c7ca..9b7317feb 100755
>> --- a/scripts/igt_doc.py
>> +++ b/scripts/igt_doc.py
>> @@ -313,6 +313,8 @@ def main():
>>                           help="Generate testlists for Intel CI integration at the INTELCI_TESTLIST directory.")
>>       parser.add_argument('--files', nargs='+',
>>                           help="File name(s) to be processed")
>> +    parser.add_argument('--exclude-files', nargs='+',
>> +                        help="File name(s) to ignore")
>>   
>>       parse_args = parser.parse_args()
>>   
>> @@ -325,6 +327,7 @@ def main():
>>           tests = IgtTestList(config_fname = config,
>>                               include_plan = parse_args.include_plan,
>>                               file_list = parse_args.files,
>> +                            exclude_file_list = parse_args.exclude_files,
>>                               igt_build_path = parse_args.igt_build_path)
>>   
>>           if parse_args.filter_field:
>> diff --git a/scripts/test_list.py b/scripts/test_list.py
>> index 69c830ca1..4fe209e5a 100644
>> --- a/scripts/test_list.py
>> +++ b/scripts/test_list.py
>> @@ -250,7 +250,7 @@ class TestList:
>>                    config_dict = None, sources_path = None,
>>                    test_tag = "TEST", subtest_tag = "SUBTESTS?",
>>                    main_name = "igt", planned_name = "planned",
>> -                 subtest_separator = "@"):
>> +                 subtest_separator = "@", exclude_file_list = None):
>>           self.doc = {}
>>           self.test_number = 0
>>           self.config = None
>> @@ -368,28 +368,35 @@ class TestList:
>>           if "_properties_" in self.props:
>>               del self.props["_properties_"]
>>   
>> -        has_implemented = False
>> +        if not exclude_file_list:
>> +            exclude_file_list = []
>> +        else:
>> +            exclude_file_list = [os.path.normpath(f) for f in exclude_file_list]
>> +
>> +        exclude_file_glob = self.config.get("exclude_files", [])
>> +        for cfg_file in exclude_file_glob:
>> +            cfg_file = cfg_path + cfg_file
>> +            for fname in glob.glob(cfg_file):
>> +                exclude_file_list.append(fname)
>> +
>>           if not self.filenames:
>>               self.filenames = []
>> -            exclude_files = []
>> -            files = self.config["files"]
>> -            exclude_file_glob = self.config.get("exclude_files", [])
>> -            for cfg_file in exclude_file_glob:
>> -                cfg_file = cfg_path + cfg_file
>> -                for fname in glob.glob(cfg_file):
>> -                    exclude_files.append(fname)
>> -
>> -            for cfg_file in files:
>> -                cfg_file = cfg_path + cfg_file
>> -                for fname in glob.glob(cfg_file):
>> -                    if fname in exclude_files:
>> -                        continue
>> -                    self.filenames.append(fname)
>> -                    has_implemented = True
>>           else:
>> -            for cfg_file in self.filenames:
>> -                if cfg_file:
>> -                    has_implemented = True
>> +            self.filenames = [os.path.normpath(f) for f in self.filenames]
>> +
>> +        files = self.config["files"]
>> +        for cfg_file in files:
>> +            cfg_file = cfg_path + cfg_file
>> +            for fname in glob.glob(cfg_file):
>> +                if fname in exclude_file_list:
>> +                    continue
>> +                self.filenames.append(fname)
>> +
>> +        has_implemented = False
>> +        for cfg_file in self.filenames:
>> +            if cfg_file:
>> +                has_implemented = True
>> +                break
>>   
>>           has_planned = False
>>           if include_plan and "planning_files" in self.config:
>> -- 
>> 2.34.1
>>


More information about the igt-dev mailing list