[igt-dev] [PATCH i-g-t v3 4/6] testplan/meson.build: add i915 support for a testplan document

Kamil Konieczny kamil.konieczny at linux.intel.com
Tue May 16 16:18:57 UTC 2023


Hi Mauro,

On 2023-05-09 at 11:07:36 +0200, Mauro Carvalho Chehab wrote:
> From: Mauro Carvalho Chehab <mchehab at kernel.org>
> 
> Prepare to support documenting the i915 tests via in-code macros, in a
> similar way to how Xe tests are documented.
> 
> For now, don't enable checking i915 documentation here, as this
> may consume a lot of build time on desktops.
> 
> Please notice that we had to exclude documentation for
> gem_concurrent_all.c, as there are too many subtests there:
> 
> 	${build}/tests/gem_concurrent_all --list|wc -l
> 	428400
> 
> Adding documentation for all of them (even with wildcards) would
> produce a very big document, seriously affecting build time.
> 
> Signed-off-by: Mauro Carvalho Chehab <mchehab at kernel.org>
> ---
>  docs/testplan/conf.py            |  2 +-
>  docs/testplan/meson.build        |  6 ++-

This do not apply, should it be done after kms doc patchseries ?
Please also keep in mind compatibility with old meson 0.47.2
until we move on newer version.

With that:

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

Regards,
Kamil

>  tests/i915/i915_test_config.json | 88 ++++++++++++++++++++++++++++++++
>  3 files changed, 93 insertions(+), 3 deletions(-)
>  create mode 100644 tests/i915/i915_test_config.json
> 
> diff --git a/docs/testplan/conf.py b/docs/testplan/conf.py
> index a73ad99b09b6..a7db5c3a230d 100644
> --- a/docs/testplan/conf.py
> +++ b/docs/testplan/conf.py
> @@ -68,5 +68,5 @@ htmlhelp_basename = 'IGT'
>  
>  # rst2pdf
>  pdf_documents = [
> -    ('index', u'xe_tests', u'IGT Xe Tests', u'IGT authors'),
> +    ('index', u'tests', u'IGT Xe Tests', u'IGT authors'),
>  ]
> diff --git a/docs/testplan/meson.build b/docs/testplan/meson.build
> index b65ee964ddd2..ca70864c1e95 100644
> --- a/docs/testplan/meson.build
> +++ b/docs/testplan/meson.build
> @@ -8,6 +8,7 @@ stylesheet = join_paths(meson.current_source_dir(), 'testplan.css')
>  
>  xe_test_config = join_paths(source_root, 'tests', 'xe', 'xe_test_config.json')
>  kms_test_config = join_paths(source_root, 'tests', 'kms_test_config.json')
> +i915_test_config = join_paths(source_root, 'tests', 'i915', 'i915_test_config.json')
>  
>  check_testlist = []
>  if build_tests
> @@ -25,6 +26,7 @@ endif
>  
>  test_dict = {
>  	      'xe_tests': { 'input': xe_test_config, 'extra_args': check_testlist },
> +	      'i915_tests': { 'input': i915_test_config, 'extra_args': [] },
>  	      'kms_tests': { 'input': kms_test_config, 'extra_args': [] }
>  	    }
>  
> @@ -70,14 +72,14 @@ if sphinx.found()
>  	if rst2pdf.found()
>  		sphinx_out_pdf = meson.current_build_dir() + '/pdf'
>  
> -		custom_target('xe_tests.pdf',
> +		custom_target('tests.pdf',
>  			      build_by_default : true,
>  			      command : [ 'sphinx-build', '-c', meson.current_source_dir(),
>  					  '-b', 'pdf',
>  					  '-D', 'version=' + meson.project_version(),
>  					  meson.current_build_dir(), sphinx_out_pdf],
>  			      input : index_rst,
> -			      output : 'xe_tests.pdf'
> +			      output : 'tests.pdf'
>  			     )
>  	endif
>  endif
> diff --git a/tests/i915/i915_test_config.json b/tests/i915/i915_test_config.json
> new file mode 100644
> index 000000000000..812cb73b9f52
> --- /dev/null
> +++ b/tests/i915/i915_test_config.json
> @@ -0,0 +1,88 @@
> +{
> +    "description": "JSON file to be used to parse i915 documentation",
> +    "files": [ "*.c", "../core_auth.c", "../core_getclient.c",
> +               "../core_getstats.c", "../core_getversion.c",
> +               "../core_hotunplug.c", "../core_setmaster.c",
> +               "../core_setmaster_vs_auth.c", "../debugfs_test.c",
> +               "../device_reset.c", "../dmabuf.c",
> +               "../drm_import_export.c", "../drm_mm.c",
> +               "../dumb_buffer.c", "../prime_busy.c", "../prime_mmap.c",
> +               "../prime_mmap_coherency.c", "../prime_self_import.c",
> +               "../prime_vgem.c", "../sw_sync.c", "../syncobj_basic.c",
> +               "../syncobj_timeline.c", "../syncobj_wait.c",
> +               "../vgem_basic.c", "../vgem_slow.c" ],
> +    "exclude_files": [ "kms_*", "gem_concurrent_all.c" ],
> +    "fields": {
> +	"Mega feature": {
> +                "_properties_": {
> +                    "description": "Contains the mega feature for end to end use case, e. g. the 'sellable' feature."
> +                },
> +                "Category": {
> +                "_properties_": {
> +                    "description": "Contains the major group for the tested functionality"
> +                },
> +
> +                "Sub-category": {
> +                    "_properties_": {
> +                        "description": "Contains the minor group of the functionality"
> +                    },
> +                    "Functionality": {
> +                        "_properties_": {
> +                            "description": "Describes the functionality to be tested"
> +                        },
> +                        "Feature": {
> +                            "_properties_": {
> +                                "description": "Describes the lowest level feature bucket"
> +                            },
> +                            "Run type": {
> +                                "_properties_": {
> +                                    "description": "Defines what category of testlist it belongs"
> +                                }
> +                            }
> +                        }
> +                    }
> +                }
> +            }
> +        },
> +        "Test category": {
> +            "_properties_": {
> +                "description": "Defines the test category. Usually used at subtest level."
> +            }
> +        },
> +        "Test requirement": {
> +            "_properties_": {
> +                "description": "Defines Kernel parameters required for the test to run"
> +            }
> +        },
> +        "Issue": {
> +            "_properties_": {
> +                "description": "If the test is used to solve an issue, point to the URL containing the issue."
> +            }
> +        },
> +        "GPU excluded platform": {
> +            "_properties_": {
> +                "description": "Provides a list of GPUs not capable of running the subtest (or the test as a whole)."
> +            }
> +        },
> +        "GPU requirement": {
> +            "_properties_": {
> +                "description": "Describes any GPU-specific requrirement, like requiring multi-tiles."
> +            }
> +        },
> +        "Depends on" : {
> +            "_properties_": {
> +                "description": "List other subtests that are required to not be skipped before calling this one."
> +            }
> +        },
> +        "TODO": {
> +            "_properties_": {
> +                "description": "Point to known missing features at the test or subtest."
> +            }
> +        },
> +        "Description" : {
> +            "_properties_": {
> +                "description": "Provides a description for the test/subtest."
> +            }
> +        }
> +    }
> +}
> -- 
> 2.40.1
> 


More information about the igt-dev mailing list