[igt-dev] [PATCH i-g-t v5 4/7] tests/meson.build: create testlists for tests
Kamil Konieczny
kamil.konieczny at linux.intel.com
Mon Jul 10 18:17:09 UTC 2023
Hi Mauro,
On 2023-07-10 at 13:53:51 +0200, Mauro Carvalho Chehab wrote:
> From: Mauro Carvalho Chehab <mchehab at kernel.org>
>
> Let's dynamically create testlists for during build time, as this
------------------------------------ ^^^
s/for//
Also, in subject:
tests/meson.build: create testlists for tests
----------------------------------- ^^^^^^^^^
s/for tests/dynamically/
or /at build time/ ?
With that fixed you can add my r-b.
> can speed up a lot the validation check for testplan.
>
> Ideally, all it would need to to that would be to use this
> logic at the end of tests/meson.build:
>
> foreach testexe : test_executables
> prog = testexe.name()
>
> output = prog.split('/').get(-1) + '.testlist'
> custom_target(output,
> build_by_default : true,
> command : [ testexe, '--show-testlist'],
> capture : true,
> output : output)
>
> Unfortunately, this requies Meson >= 0.54. So, we need to add
> one custom_target per executable() call.
As this is touching testlist for CI, +Cc Ewelina.
Regards,
Kamil
>
> Signed-off-by: Mauro Carvalho Chehab <mchehab at kernel.org>
> ---
> docs/testplan/meson.build | 2 +-
> tests/meson.build | 55 ++++++++++++++++++++++++++++++++++-----
> 2 files changed, 49 insertions(+), 8 deletions(-)
>
> diff --git a/docs/testplan/meson.build b/docs/testplan/meson.build
> index bf73dd32a15f..e838f2eb1540 100644
> --- a/docs/testplan/meson.build
> +++ b/docs/testplan/meson.build
> @@ -12,7 +12,7 @@ i915_test_config = join_paths(source_root, 'tests', 'i915', 'i915_test_config.js
>
> check_testlist = []
> if build_tests
> - doc_dependencies = test_executables
> + doc_dependencies = testlist_files
> # Check if documentation matches the actual tests and tests can run
> if not meson.is_cross_build()
> build_info += 'Will Check if documentation is in sync with testlist'
> diff --git a/tests/meson.build b/tests/meson.build
> index 3116c458d60b..897f17ab4561 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -351,35 +351,57 @@ extra_dependencies = {
>
> test_executables = []
> test_list = []
> +testlist_files = []
>
> foreach prog : test_progs
> - test_executables += executable(prog, [prog + '.c'] + extra_sources.get(prog, []),
> + testexe = executable(prog, [prog + '.c'] + extra_sources.get(prog, []),
> dependencies : test_deps + extra_dependencies.get(prog, []),
> install_dir : libexecdir,
> install_rpath : libexecdir_rpathdir,
> install : true)
> + test_executables += testexe
> test_list += prog
> + name = prog.split('/').get(-1)
> + testlist_files += custom_target(name + '.testlist',
> + build_by_default : true,
> + command : [testexe, '--show-testlist'],
> + capture : true,
> + output : name + '.testlist')
> endforeach
>
> foreach prog : i915_progs
> - test_executables += executable(prog,
> + testexe = executable(prog,
> [join_paths('i915', prog + '.c')] + extra_sources.get(prog, []),
> dependencies : test_deps + extra_dependencies.get(prog, []),
> install_dir : libexecdir,
> install_rpath : libexecdir_rpathdir,
> install : true)
> + test_executables += testexe
> test_list += prog
> + name = prog.split('/').get(-1)
> + testlist_files += custom_target(name + '.testlist',
> + build_by_default : true,
> + command : [testexe, '--show-testlist'],
> + capture : true,
> + output : name + '.testlist')
> endforeach
>
> if build_xe
> foreach prog : xe_progs
> - test_executables += executable(prog,
> + testexe = executable(prog,
> [join_paths('xe', prog + '.c')] + extra_sources.get(prog, []),
> dependencies : test_deps + extra_dependencies.get(prog, []),
> install_dir : libexecdir,
> install_rpath : libexecdir_rpathdir,
> install : true)
> test_list += prog
> + test_executables += testexe
> + name = prog.split('/').get(-1)
> + testlist_files += custom_target(name + '.testlist',
> + build_by_default : true,
> + command : [testexe, '--show-testlist'],
> + capture : true,
> + output : name + '.testlist')
> endforeach
> build_info += 'Xe **experimental** tests enabled.'
> endif
> @@ -395,7 +417,7 @@ endforeach
>
> if chamelium.found()
> foreach prog : chamelium_progs
> - test_executables += executable(prog,
> + testexe = executable(prog,
> [join_paths('chamelium', prog + '.c'),
> join_paths('chamelium', 'kms_chamelium_helper.c')],
> dependencies : test_deps,
> @@ -403,16 +425,30 @@ if chamelium.found()
> install_rpath : libexecdir_rpathdir,
> install : true)
> test_list += prog
> + test_executables += testexe
> + name = prog.split('/').get(-1)
> + testlist_files += custom_target(name + '.testlist',
> + build_by_default : true,
> + command : [testexe, '--show-testlist'],
> + capture : true,
> + output : name + '.testlist')
> endforeach
> test_deps += chamelium
>
> - test_executables += executable('kms_chamelium_color',
> + name = 'kms_chamelium_color'
> + testexe = executable('kms_chamelium_color',
> [ 'chamelium/kms_chamelium_color.c', 'kms_color_helper.c' ],
> dependencies : test_deps + [ chamelium ],
> install_dir : libexecdir,
> install_rpath : libexecdir_rpathdir,
> install : true)
> - test_list += 'kms_chamelium_color'
> + test_list += name
> + test_executables += testexe
> + testlist_files += custom_target(name + '.testlist',
> + build_by_default : true,
> + command : [testexe, '--show-testlist'],
> + capture : true,
> + output : name + '.testlist')
> endif
>
> subdir('amdgpu')
> @@ -448,11 +484,16 @@ foreach prog : test_list
> test('testcase check ' + prog, test_script, args : prog)
> endforeach
>
> -executable('gem_stress', 'i915/gem_stress.c',
> +testexe = executable('gem_stress', 'i915/gem_stress.c',
> install : true,
> install_dir : libexecdir,
> install_rpath : libexecdir_rpathdir,
> dependencies : igt_deps)
> +testlist_files += custom_target('gem_stress.testlist',
> + build_by_default : true,
> + command : [testexe, '--show-testlist'],
> + capture : true,
> + output : 'gem_stress.testlist')
>
> image_files = [
> '1080p-left.png',
> --
> 2.40.1
>
More information about the igt-dev
mailing list