[igt-dev] [PATCH i-g-t v5 4/7] tests/meson.build: create testlists for tests
Mark Yacoub
markyacoub at chromium.org
Wed Aug 30 21:41:32 UTC 2023
This is causing issues for IGT ChromeOS. Adding +ihf at google.com for
more context.
On Mon, Jul 10, 2023 at 2:17 PM Kamil Konieczny
<kamil.konieczny at linux.intel.com> wrote:
>
> 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