[PATCH i-g-t v7 11/16] scripts/test_list: Relax treatment of non-compiled tests

Zbigniew Kempczyński zbigniew.kempczynski at intel.com
Thu Sep 19 06:17:45 UTC 2024


On Wed, Sep 18, 2024 at 01:30:12PM +0200, Christoph Manszewski wrote:
> From: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> 
> Some tests could be added and compiled only when non-default
> meson option is given. It will result in no testlist generated
> for such tests but they could appear in our documentation.
> Currently we report an error in such case.
> 
> Create a way to detect and report that and treat this as feature
> and do not report it as an error.  This should allow to relax
> processing of chamelium and other new tests.
> 
> Also while at this, print error information before actually
> exiting with an error code, as previous prints were only
> warnings.
> 
> Cc: Christoph Manszewski <christoph.manszewski at intel.com>
> Cc: Zbigniew Kempczyński <zbigniew.kempczynski at intel.com>
> Cc: Jari Tahvanainen <jari.tahvanainen at intel.com>
> Cc: Katarzyna Piecielska <katarzyna.piecielska at intel.com>
> Cc: Mauro Carvalho Chehab <mchehab at kernel.org>
> Signed-off-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
> Signed-off-by: Christoph Manszewski <christoph.manszewski at intel.com>

Works for me:

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

--
Zbigniew

> ---
>  scripts/test_list.py | 32 ++++++++++++++++++++++++--------
>  1 file changed, 24 insertions(+), 8 deletions(-)
> 
> diff --git a/scripts/test_list.py b/scripts/test_list.py
> index 69c830ca1..d050687fe 100644
> --- a/scripts/test_list.py
> +++ b/scripts/test_list.py
> @@ -1141,6 +1141,19 @@ class TestList:
>  
>          return sorted(tests)
>  
> +    def get_not_compiled(self):
> +
> +        """ Return a list of tests which were not compiled """
> +        no_binaries = []
> +        for name in self.filenames:
> +            test_basename = re.sub(r"\.c$", "", name.split('/')[-1])
> +            fname = os.path.join(self.igt_build_path, "tests", test_basename)
> +
> +            if not os.path.isfile(fname):
> +                no_binaries.append(test_basename)
> +
> +        return sorted(no_binaries)
> +
>      #
>      # Validation methods
>      #
> @@ -1177,21 +1190,24 @@ class TestList:
>          # Get a list of tests from
>          run_subtests = set(self.get_testlist())
>  
> +        not_compiled = set(self.get_not_compiled())
> +        for test_basename in not_compiled:
> +            print(f"INFO: Found documentation for '{test_basename}' but no binary")
> +
>          # Compare sets
>  
>          run_missing = list(sorted(run_subtests - doc_subtests))
>          doc_uneeded = list(sorted(doc_subtests - run_subtests))
> +        doc_uneeded_build = [t for t in doc_uneeded if t.split('@')[1] not in not_compiled]
>  
> -        if doc_uneeded:
> -            for test_name in doc_uneeded:
> -                print(f"Warning: Documented {test_name} doesn't exist on source files")
> -
> -        if run_missing:
> +        if doc_uneeded_build or run_missing:
>              for test_name in run_missing:
> -                print(f'Warning: Missing documentation for {test_name}')
> -            print('Please refer: docs/test_documentation.md for more details')
> +                print(f'ERROR: Missing documentation for {test_name}')
>  
> -        if doc_uneeded or run_missing:
> +            for test_name in doc_uneeded_build:
> +                print(f'ERROR: Unneeded documentation for {test_name}')
> +
> +            print('Please refer: docs/test_documentation.md for more details')
>              sys.exit(1)
>  
>      #
> -- 
> 2.34.1
> 


More information about the igt-dev mailing list