[igt-dev] [PATCH i-g-t v5 1/7] tests/meson.build: Simplify builds for core and i915 targets

Kamil Konieczny kamil.konieczny at linux.intel.com
Mon Jul 10 17:51:29 UTC 2023


Hi Mauro,

On 2023-07-10 at 13:53:48 +0200, Mauro Carvalho Chehab wrote:
> From: Mauro Carvalho Chehab <mchehab at kernel.org>
> 
> There are some tests that either require:
> 	- extra dependencies
> 	- extra source files
> 
> Right now, they have special executable() targets that are handled
> outside the normal way. remove those special targets, converting
> them into simple ones, and using two extra dictionaries to map
> those extra requirements.
> 
> This makes the meson.build file a lot simpler, and makes easier
> to add other rules when creating test lists.
> 
> Signed-off-by: Mauro Carvalho Chehab <mchehab at kernel.org>

Thank you for making this simpler,

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

> ---
>  tests/meson.build | 223 +++++++++++++---------------------------------
>  1 file changed, 61 insertions(+), 162 deletions(-)
> 
> diff --git a/tests/meson.build b/tests/meson.build
> index ee066b84900b..3116c458d60b 100644
> --- a/tests/meson.build
> +++ b/tests/meson.build
> @@ -3,12 +3,14 @@ test_progs = [
>  	'core_getclient',
>  	'core_getstats',
>  	'core_getversion',
> +	'core_hotunplug',
>  	'core_setmaster',
>  	'core_setmaster_vs_auth',
>  	'debugfs_test',
>  	'dmabuf',
>  	'dmabuf_sync_file',
>  	'device_reset',
> +	'dumb_buffer',
>  	'drm_buddy',
>  	'drm_mm',
>  	'drm_read',
> @@ -21,6 +23,7 @@ test_progs = [
>  	'kms_atomic_interruptible',
>  	'kms_atomic_transition',
>  	'kms_bw',
> +	'kms_color',
>  	'kms_concurrent',
>  	'kms_content_protection',
>  	'kms_cursor_crc',
> @@ -77,7 +80,9 @@ test_progs = [
>  	'syncobj_basic',
>  	'syncobj_wait',
>  	'syncobj_timeline',
> +	'sw_sync',
>  	'template',
> +	'testdisplay',
>  	'tools_test',
>  	'vgem_basic',
>  	'vgem_slow',
> @@ -86,16 +91,19 @@ test_progs = [
>  i915_progs = [
>  	'api_intel_allocator',
>  	'api_intel_bb',
> +	'drm_fdinfo',
>  	'gen3_mixed_blits',
>  	'gen3_render_linear_blits',
>  	'gen3_render_mixed_blits',
>  	'gen3_render_tiledx_blits',
>  	'gen3_render_tiledy_blits',
>  	'gem_bad_reloc',
> +	'gem_barrier_race',
>  	'gem_basic',
>  	'gem_blits',
>  	'gem_busy',
>  	'gem_caching',
> +	'gem_create',
>  	'gem_ccs',
>  	'gem_close',
>  	'gem_close_race',
> @@ -105,16 +113,20 @@ i915_progs = [
>  	'gem_ctx_create',
>  	'gem_ctx_engines',
>  	'gem_ctx_exec',
> +	'gem_ctx_freq',
>  	'gem_ctx_isolation',
>  	'gem_ctx_param',
>  	'gem_ctx_persistence',
>  	'gem_ctx_shared',
> +	'gem_ctx_sseu',
>  	'gem_ctx_switch',
> +	'gem_eio',
>  	'gem_evict_alignment',
>  	'gem_evict_everything',
>  	'gem_exec_alignment',
>  	'gem_exec_async',
>  	'gem_exec_await',
> +	'gem_exec_balancer',
>  	'gem_exec_basic',
>  	'gem_exec_big',
>  	'gem_exec_capture',
> @@ -157,6 +169,7 @@ i915_progs = [
>  	'gem_media_vme',
>  	'gem_mmap',
>  	'gem_mmap_gtt',
> +	'gem_mmap_offset',
>  	'gem_mmap_wc',
>  	'gem_partial_pwrite_pread',
>  	'gem_pipe_control_store_loop',
> @@ -200,6 +213,8 @@ i915_progs = [
>  	'gem_wait',
>  	'gem_watchdog',
>  	'gem_workarounds',
> +	'perf',
> +	'perf_pmu',
>  	'i915_fb_tiling',
>  	'i915_getparams_basic',
>  	'i915_pm_freq_api',
> @@ -209,9 +224,11 @@ i915_progs = [
>  	'i915_pciid',
>  	'i915_pipe_stress',
>  	'i915_pm_backlight',
> +	'i915_pm_freq_mult',
>  	'i915_pm_lpsp',
>  	'i915_pm_rpm',
>  	'i915_pm_dc',
> +	'i915_pm_rc6_residency',
>  	'i915_pm_rps',
>  	'i915_pm_sseu',
>  	'i915_power',
> @@ -224,6 +241,7 @@ i915_progs = [
>  	'kms_ccs',
>  	'kms_cdclk',
>  	'kms_draw_crc',
> +	'kms_dsc',
>  	'kms_fb_coherency',
>  	'kms_fbcon_fbt',
>  	'kms_fence_pin_leak',
> @@ -234,6 +252,7 @@ i915_progs = [
>  	'kms_mmap_write_crc',
>  	'kms_pipe_b_c_ivb',
>  	'kms_psr',
> +	'kms_psr2_sf',
>  	'kms_psr2_su',
>  	'kms_psr_stress_test',
>  	'kms_pwrite_crc',
> @@ -301,12 +320,41 @@ if libdrm_nouveau.found()
>  	test_deps += libdrm_nouveau
>  endif
>  
> +# Extra sources used on core and Intel drivers
> +extra_sources = {
> +	'core_hotunplug': [ 'core_hotunplug.c' ],
> +	'dumb_buffer': ['dumb_buffer.c' ],
> +	'testdisplay': [ 'testdisplay_hotplug.c' ],
> +	'kms_color':  [ 'kms_color_helper.c' ],
> +	'kms_dsc': [ join_paths ('i915', 'kms_dsc_helper.c') ],
> +	'kms_psr2_sf':  [ join_paths ('i915', 'kms_dsc_helper.c') ],
> +}
> +
> +# Extra dependencies used on core and Intel drivers
> +extra_dependencies = {
> +	'core_hotunplug': [ lib_igt_i915_perf ],
> +	'drm_fdinfo': [ lib_igt_drm_fdinfo ],
> +	'dumb_buffer':  [ libatomic ],
> +	'gem_barrier_race': [ lib_igt_i915_perf ],
> +	'gem_create': [ libatomic ],
> +	'gem_ctx_freq': [ lib_igt_perf ],
> +	'gem_ctx_sseu': [ lib_igt_perf ],
> +	'gem_eio': [ realtime ],
> +	'gem_exec_balancer': [ lib_igt_perf ],
> +	'gem_mmap_offset': [ libatomic ],
> +	'i915_pm_freq_mult': [ lib_igt_perf ],
> +	'i915_pm_rc6_residency': [ lib_igt_perf ],
> +	'perf': [ lib_igt_i915_perf ],
> +	'perf_pmu':  [ lib_igt_perf ],
> +	'sw_sync': [ libatomic ],
> +}
> +
>  test_executables = []
>  test_list = []
>  
>  foreach prog : test_progs
> -	test_executables += executable(prog, prog + '.c',
> -		   dependencies : test_deps,
> +	test_executables += executable(prog, [prog + '.c'] + extra_sources.get(prog, []),
> +		   dependencies : test_deps + extra_dependencies.get(prog, []),
>  		   install_dir : libexecdir,
>  		   install_rpath : libexecdir_rpathdir,
>  		   install : true)
> @@ -315,8 +363,8 @@ endforeach
>  
>  foreach prog : i915_progs
>  	test_executables += executable(prog,
> -		   join_paths('i915', prog + '.c'),
> -		   dependencies : test_deps,
> +		   [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)
> @@ -326,8 +374,8 @@ endforeach
>  if build_xe
>  	foreach prog : xe_progs
>  		test_executables += executable(prog,
> -			   join_paths('xe', prog + '.c'),
> -			   dependencies : test_deps,
> +			   [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)
> @@ -357,165 +405,16 @@ if chamelium.found()
>  		test_list += prog
>  	endforeach
>  	test_deps += chamelium
> -endif
> -
> -test_executables += executable('drm_fdinfo',
> -	   join_paths('i915', 'drm_fdinfo.c'),
> -	   dependencies : test_deps + [ lib_igt_drm_fdinfo ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'drm_fdinfo'
> -
> -test_executables += executable('dumb_buffer', 'dumb_buffer.c',
> -	   dependencies : test_deps + [ libatomic ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'dumb_buffer'
> -
> -test_executables += executable('gem_create',
> -	   join_paths('i915', 'gem_create.c'),
> -	   dependencies : test_deps + [ libatomic ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'gem_create'
> -
> -test_executables += executable('gem_ctx_freq',
> -	   join_paths('i915', 'gem_ctx_freq.c'),
> -	   dependencies : test_deps + [ lib_igt_perf ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'gem_ctx_freq'
> -
> -test_executables += executable('gem_ctx_sseu',
> -	   join_paths('i915', 'gem_ctx_sseu.c'),
> -	   dependencies : test_deps + [ lib_igt_perf ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'gem_ctx_sseu'
> -
> -test_executables += executable('gem_eio',
> -	   join_paths('i915', 'gem_eio.c'),
> -	   dependencies : test_deps + [ realtime ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'gem_eio'
> -
> -test_executables += executable('gem_exec_balancer', 'i915/gem_exec_balancer.c',
> -	   dependencies : test_deps + [ lib_igt_perf ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'gem_exec_balancer'
> -
> -test_executables += executable('gem_mmap_offset',
> -	   join_paths('i915', 'gem_mmap_offset.c'),
> -	   dependencies : test_deps + [ libatomic ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'gem_mmap_offset'
> -
> -test_executables += executable('i915_pm_freq_mult',
> -	   join_paths('i915', 'i915_pm_freq_mult.c'),
> -	   dependencies : test_deps + [ lib_igt_perf ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'i915_pm_freq_mult'
>  
> -test_executables += executable('i915_pm_rc6_residency',
> -	   join_paths('i915', 'i915_pm_rc6_residency.c'),
> -	   dependencies : test_deps + [ lib_igt_perf ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'i915_pm_rc6_residency'
> -
> -test_executables += executable('gem_barrier_race',
> -	   join_paths('i915', 'gem_barrier_race.c'),
> -	   dependencies : test_deps + [ lib_igt_i915_perf ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'gem_barrier_race'
> -
> -test_executables += executable('perf_pmu',
> -	   join_paths('i915', 'perf_pmu.c'),
> -	   dependencies : test_deps + [ lib_igt_perf ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'perf_pmu'
> -
> -test_executables += executable('perf',
> -	   join_paths('i915', 'perf.c'),
> -	   dependencies : test_deps + [ lib_igt_i915_perf ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'perf'
> -
> -test_executables += executable('core_hotunplug', 'core_hotunplug.c',
> -	   dependencies : test_deps + [ lib_igt_i915_perf ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'core_hotunplug'
> -
> -executable('testdisplay', ['testdisplay.c', 'testdisplay_hotplug.c'],
> -	   dependencies : test_deps,
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'testdisplay'
> -
> -test_executables += executable('kms_color',
> -	   [ 'kms_color.c', 'kms_color_helper.c' ],
> -	   dependencies : test_deps,
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'kms_color'
> -
> -test_executables += executable('kms_dsc',
> -	   [ join_paths('i915', 'kms_dsc.c'), join_paths ('i915', 'kms_dsc_helper.c')],
> -	   dependencies : test_deps,
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'kms_dsc'
> -
> -test_executables += executable('kms_psr2_sf',
> -	   [ join_paths('i915', 'kms_psr2_sf.c'), join_paths ('i915', 'kms_dsc_helper.c')],
> -	   dependencies : test_deps,
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'kms_psr2_sf'
> -
> -if chamelium.found()
> -       test_executables += 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_executables += 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'
>  endif
>  
> -test_executables += executable('sw_sync', 'sw_sync.c',
> -	   dependencies : test_deps + [ libatomic ],
> -	   install_dir : libexecdir,
> -	   install_rpath : libexecdir_rpathdir,
> -	   install : true)
> -test_list += 'sw_sync'
> -
>  subdir('amdgpu')
>  
>  subdir('v3d')
> -- 
> 2.40.1
> 


More information about the igt-dev mailing list