All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: Martin Peres <martin.peres@linux.intel.com>,
	Petri Latvala <petri.latvala@intel.com>
Subject: [igt-dev] [PATCH i-g-t v3] tests: Introduce i915 directory
Date: Fri, 19 Oct 2018 13:20:47 +0300	[thread overview]
Message-ID: <20181019102047.15257-1-arkadiusz.hiler@intel.com> (raw)
In-Reply-To: <20181018125846.14385-1-arkadiusz.hiler@intel.com>

We can already move all the tests with distinct prefixes: gem_, gen3_
and i915_.

pm_ and drv_ tests will follow in batches, so we can do the
adjustments in the reporting/filtering layer of the CI system.

v2: Fix test-list.txt generation with meson
v3: Fix docs build (Petri)

Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Petri Latvala <petri.latvala@intel.com>
Cc: Martin Peres <martin.peres@linux.intel.com>
Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com>
---
 docs/reference/igt-gpu-tools/meson.build      |  10 +-
 tests/Makefile.am                             |   4 +-
 tests/Makefile.sources                        | 519 +++++++++++++-----
 tests/amdgpu/meson.build                      |   2 +-
 tests/{ => i915}/gem_bad_address.c            |   0
 tests/{ => i915}/gem_bad_batch.c              |   0
 tests/{ => i915}/gem_bad_blit.c               |   0
 tests/{ => i915}/gem_bad_reloc.c              |   0
 tests/{ => i915}/gem_basic.c                  |   0
 tests/{ => i915}/gem_busy.c                   |   0
 tests/{ => i915}/gem_caching.c                |   0
 tests/{ => i915}/gem_close.c                  |   0
 tests/{ => i915}/gem_close_race.c             |   0
 tests/{ => i915}/gem_concurrent_all.c         |   0
 tests/{ => i915}/gem_concurrent_blit.c        |   0
 tests/{ => i915}/gem_cpu_reloc.c              |   0
 tests/{ => i915}/gem_create.c                 |   0
 tests/{ => i915}/gem_cs_prefetch.c            |   0
 tests/{ => i915}/gem_cs_tlb.c                 |   0
 tests/{ => i915}/gem_ctx_bad_destroy.c        |   0
 tests/{ => i915}/gem_ctx_create.c             |   0
 tests/{ => i915}/gem_ctx_exec.c               |   0
 tests/{ => i915}/gem_ctx_isolation.c          |   0
 tests/{ => i915}/gem_ctx_param.c              |   0
 tests/{ => i915}/gem_ctx_switch.c             |   0
 tests/{ => i915}/gem_ctx_thrash.c             |   0
 tests/{ => i915}/gem_double_irq_loop.c        |   0
 tests/{ => i915}/gem_eio.c                    |   0
 tests/{ => i915}/gem_evict_alignment.c        |   0
 tests/{ => i915}/gem_evict_everything.c       |   0
 tests/{ => i915}/gem_exec_alignment.c         |   0
 tests/{ => i915}/gem_exec_async.c             |   0
 tests/{ => i915}/gem_exec_await.c             |   0
 tests/{ => i915}/gem_exec_bad_domains.c       |   0
 tests/{ => i915}/gem_exec_basic.c             |   0
 tests/{ => i915}/gem_exec_big.c               |   0
 tests/{ => i915}/gem_exec_blt.c               |   0
 tests/{ => i915}/gem_exec_capture.c           |   0
 tests/{ => i915}/gem_exec_create.c            |   0
 tests/{ => i915}/gem_exec_faulting_reloc.c    |   0
 tests/{ => i915}/gem_exec_fence.c             |   0
 tests/{ => i915}/gem_exec_flush.c             |   0
 tests/{ => i915}/gem_exec_gttfill.c           |   0
 tests/{ => i915}/gem_exec_latency.c           |   0
 tests/{ => i915}/gem_exec_lut_handle.c        |   0
 tests/{ => i915}/gem_exec_nop.c               |   0
 tests/{ => i915}/gem_exec_parallel.c          |   0
 tests/{ => i915}/gem_exec_params.c            |   0
 tests/{ => i915}/gem_exec_parse.c             |   0
 tests/{ => i915}/gem_exec_reloc.c             |   0
 tests/{ => i915}/gem_exec_reuse.c             |   0
 tests/{ => i915}/gem_exec_schedule.c          |   0
 tests/{ => i915}/gem_exec_store.c             |   0
 tests/{ => i915}/gem_exec_suspend.c           |   0
 tests/{ => i915}/gem_exec_whisper.c           |   0
 tests/{ => i915}/gem_fd_exhaustion.c          |   0
 tests/{ => i915}/gem_fence_thrash.c           |   0
 tests/{ => i915}/gem_fence_upload.c           |   0
 tests/{ => i915}/gem_fenced_exec_thrash.c     |   0
 tests/{ => i915}/gem_flink_basic.c            |   0
 tests/{ => i915}/gem_flink_race.c             |   0
 tests/{ => i915}/gem_gpgpu_fill.c             |   0
 tests/{ => i915}/gem_gtt_cpu_tlb.c            |   0
 tests/{ => i915}/gem_gtt_hog.c                |   0
 tests/{ => i915}/gem_gtt_speed.c              |   0
 tests/{ => i915}/gem_hang.c                   |   0
 tests/{ => i915}/gem_largeobject.c            |   0
 tests/{ => i915}/gem_linear_blits.c           |   0
 tests/{ => i915}/gem_lut_handle.c             |   0
 tests/{ => i915}/gem_madvise.c                |   0
 tests/{ => i915}/gem_media_fill.c             |   0
 tests/{ => i915}/gem_mmap.c                   |   0
 tests/{ => i915}/gem_mmap_gtt.c               |   0
 tests/{ => i915}/gem_mmap_offset_exhaustion.c |   0
 tests/{ => i915}/gem_mmap_wc.c                |   0
 tests/{ => i915}/gem_mocs_settings.c          |   0
 tests/{ => i915}/gem_non_secure_batch.c       |   0
 tests/{ => i915}/gem_partial_pwrite_pread.c   |   0
 tests/{ => i915}/gem_persistent_relocs.c      |   0
 .../{ => i915}/gem_pipe_control_store_loop.c  |   0
 tests/{ => i915}/gem_ppgtt.c                  |   0
 tests/{ => i915}/gem_pread.c                  |   0
 tests/{ => i915}/gem_pread_after_blit.c       |   0
 tests/{ => i915}/gem_pwrite.c                 |   0
 tests/{ => i915}/gem_pwrite_pread.c           |   0
 tests/{ => i915}/gem_pwrite_snooped.c         |   0
 tests/{ => i915}/gem_read_read_speed.c        |   0
 tests/{ => i915}/gem_readwrite.c              |   0
 tests/{ => i915}/gem_reg_read.c               |   0
 tests/{ => i915}/gem_reloc_overflow.c         |   0
 tests/{ => i915}/gem_reloc_vs_gpu.c           |   0
 tests/{ => i915}/gem_render_copy.c            |   0
 tests/{ => i915}/gem_render_copy_redux.c      |   0
 tests/{ => i915}/gem_render_linear_blits.c    |   0
 tests/{ => i915}/gem_render_tiled_blits.c     |   0
 tests/{ => i915}/gem_request_retire.c         |   0
 tests/{ => i915}/gem_reset_stats.c            |   0
 tests/{ => i915}/gem_ring_sync_copy.c         |   0
 tests/{ => i915}/gem_ring_sync_loop.c         |   0
 tests/{ => i915}/gem_ringfill.c               |   0
 tests/{ => i915}/gem_set_tiling_vs_blt.c      |   0
 tests/{ => i915}/gem_set_tiling_vs_gtt.c      |   0
 tests/{ => i915}/gem_set_tiling_vs_pwrite.c   |   0
 tests/{ => i915}/gem_shrink.c                 |   0
 tests/{ => i915}/gem_softpin.c                |   0
 tests/{ => i915}/gem_spin_batch.c             |   0
 tests/{ => i915}/gem_stolen.c                 |   0
 tests/{ => i915}/gem_storedw_batches_loop.c   |   0
 tests/{ => i915}/gem_storedw_loop.c           |   0
 tests/{ => i915}/gem_streaming_writes.c       |   0
 tests/{ => i915}/gem_stress.c                 |   0
 tests/{ => i915}/gem_sync.c                   |   0
 tests/{ => i915}/gem_threaded_access_tiled.c  |   0
 tests/{ => i915}/gem_tiled_blits.c            |   0
 tests/{ => i915}/gem_tiled_fence_blits.c      |   0
 .../gem_tiled_partial_pwrite_pread.c          |   0
 tests/{ => i915}/gem_tiled_pread_basic.c      |   0
 tests/{ => i915}/gem_tiled_pread_pwrite.c     |   0
 tests/{ => i915}/gem_tiled_swapping.c         |   0
 tests/{ => i915}/gem_tiled_wb.c               |   0
 tests/{ => i915}/gem_tiled_wc.c               |   0
 tests/{ => i915}/gem_tiling_max_stride.c      |   0
 tests/{ => i915}/gem_unfence_active_buffers.c |   0
 tests/{ => i915}/gem_unref_active_buffers.c   |   0
 tests/{ => i915}/gem_userptr_blits.c          |   0
 tests/{ => i915}/gem_wait.c                   |   0
 tests/{ => i915}/gem_workarounds.c            |   0
 tests/{ => i915}/gem_write_read_ring_switch.c |   0
 tests/{ => i915}/gen3_mixed_blits.c           |   0
 tests/{ => i915}/gen3_render_linear_blits.c   |   0
 tests/{ => i915}/gen3_render_mixed_blits.c    |   0
 tests/{ => i915}/gen3_render_tiledx_blits.c   |   0
 tests/{ => i915}/gen3_render_tiledy_blits.c   |   0
 tests/{i915_query.c => i915/query.c}          |   0
 tests/meson.build                             | 213 ++++---
 135 files changed, 518 insertions(+), 230 deletions(-)
 rename tests/{ => i915}/gem_bad_address.c (100%)
 rename tests/{ => i915}/gem_bad_batch.c (100%)
 rename tests/{ => i915}/gem_bad_blit.c (100%)
 rename tests/{ => i915}/gem_bad_reloc.c (100%)
 rename tests/{ => i915}/gem_basic.c (100%)
 rename tests/{ => i915}/gem_busy.c (100%)
 rename tests/{ => i915}/gem_caching.c (100%)
 rename tests/{ => i915}/gem_close.c (100%)
 rename tests/{ => i915}/gem_close_race.c (100%)
 rename tests/{ => i915}/gem_concurrent_all.c (100%)
 rename tests/{ => i915}/gem_concurrent_blit.c (100%)
 rename tests/{ => i915}/gem_cpu_reloc.c (100%)
 rename tests/{ => i915}/gem_create.c (100%)
 rename tests/{ => i915}/gem_cs_prefetch.c (100%)
 rename tests/{ => i915}/gem_cs_tlb.c (100%)
 rename tests/{ => i915}/gem_ctx_bad_destroy.c (100%)
 rename tests/{ => i915}/gem_ctx_create.c (100%)
 rename tests/{ => i915}/gem_ctx_exec.c (100%)
 rename tests/{ => i915}/gem_ctx_isolation.c (100%)
 rename tests/{ => i915}/gem_ctx_param.c (100%)
 rename tests/{ => i915}/gem_ctx_switch.c (100%)
 rename tests/{ => i915}/gem_ctx_thrash.c (100%)
 rename tests/{ => i915}/gem_double_irq_loop.c (100%)
 rename tests/{ => i915}/gem_eio.c (100%)
 rename tests/{ => i915}/gem_evict_alignment.c (100%)
 rename tests/{ => i915}/gem_evict_everything.c (100%)
 rename tests/{ => i915}/gem_exec_alignment.c (100%)
 rename tests/{ => i915}/gem_exec_async.c (100%)
 rename tests/{ => i915}/gem_exec_await.c (100%)
 rename tests/{ => i915}/gem_exec_bad_domains.c (100%)
 rename tests/{ => i915}/gem_exec_basic.c (100%)
 rename tests/{ => i915}/gem_exec_big.c (100%)
 rename tests/{ => i915}/gem_exec_blt.c (100%)
 rename tests/{ => i915}/gem_exec_capture.c (100%)
 rename tests/{ => i915}/gem_exec_create.c (100%)
 rename tests/{ => i915}/gem_exec_faulting_reloc.c (100%)
 rename tests/{ => i915}/gem_exec_fence.c (100%)
 rename tests/{ => i915}/gem_exec_flush.c (100%)
 rename tests/{ => i915}/gem_exec_gttfill.c (100%)
 rename tests/{ => i915}/gem_exec_latency.c (100%)
 rename tests/{ => i915}/gem_exec_lut_handle.c (100%)
 rename tests/{ => i915}/gem_exec_nop.c (100%)
 rename tests/{ => i915}/gem_exec_parallel.c (100%)
 rename tests/{ => i915}/gem_exec_params.c (100%)
 rename tests/{ => i915}/gem_exec_parse.c (100%)
 rename tests/{ => i915}/gem_exec_reloc.c (100%)
 rename tests/{ => i915}/gem_exec_reuse.c (100%)
 rename tests/{ => i915}/gem_exec_schedule.c (100%)
 rename tests/{ => i915}/gem_exec_store.c (100%)
 rename tests/{ => i915}/gem_exec_suspend.c (100%)
 rename tests/{ => i915}/gem_exec_whisper.c (100%)
 rename tests/{ => i915}/gem_fd_exhaustion.c (100%)
 rename tests/{ => i915}/gem_fence_thrash.c (100%)
 rename tests/{ => i915}/gem_fence_upload.c (100%)
 rename tests/{ => i915}/gem_fenced_exec_thrash.c (100%)
 rename tests/{ => i915}/gem_flink_basic.c (100%)
 rename tests/{ => i915}/gem_flink_race.c (100%)
 rename tests/{ => i915}/gem_gpgpu_fill.c (100%)
 rename tests/{ => i915}/gem_gtt_cpu_tlb.c (100%)
 rename tests/{ => i915}/gem_gtt_hog.c (100%)
 rename tests/{ => i915}/gem_gtt_speed.c (100%)
 rename tests/{ => i915}/gem_hang.c (100%)
 rename tests/{ => i915}/gem_largeobject.c (100%)
 rename tests/{ => i915}/gem_linear_blits.c (100%)
 rename tests/{ => i915}/gem_lut_handle.c (100%)
 rename tests/{ => i915}/gem_madvise.c (100%)
 rename tests/{ => i915}/gem_media_fill.c (100%)
 rename tests/{ => i915}/gem_mmap.c (100%)
 rename tests/{ => i915}/gem_mmap_gtt.c (100%)
 rename tests/{ => i915}/gem_mmap_offset_exhaustion.c (100%)
 rename tests/{ => i915}/gem_mmap_wc.c (100%)
 rename tests/{ => i915}/gem_mocs_settings.c (100%)
 rename tests/{ => i915}/gem_non_secure_batch.c (100%)
 rename tests/{ => i915}/gem_partial_pwrite_pread.c (100%)
 rename tests/{ => i915}/gem_persistent_relocs.c (100%)
 rename tests/{ => i915}/gem_pipe_control_store_loop.c (100%)
 rename tests/{ => i915}/gem_ppgtt.c (100%)
 rename tests/{ => i915}/gem_pread.c (100%)
 rename tests/{ => i915}/gem_pread_after_blit.c (100%)
 rename tests/{ => i915}/gem_pwrite.c (100%)
 rename tests/{ => i915}/gem_pwrite_pread.c (100%)
 rename tests/{ => i915}/gem_pwrite_snooped.c (100%)
 rename tests/{ => i915}/gem_read_read_speed.c (100%)
 rename tests/{ => i915}/gem_readwrite.c (100%)
 rename tests/{ => i915}/gem_reg_read.c (100%)
 rename tests/{ => i915}/gem_reloc_overflow.c (100%)
 rename tests/{ => i915}/gem_reloc_vs_gpu.c (100%)
 rename tests/{ => i915}/gem_render_copy.c (100%)
 rename tests/{ => i915}/gem_render_copy_redux.c (100%)
 rename tests/{ => i915}/gem_render_linear_blits.c (100%)
 rename tests/{ => i915}/gem_render_tiled_blits.c (100%)
 rename tests/{ => i915}/gem_request_retire.c (100%)
 rename tests/{ => i915}/gem_reset_stats.c (100%)
 rename tests/{ => i915}/gem_ring_sync_copy.c (100%)
 rename tests/{ => i915}/gem_ring_sync_loop.c (100%)
 rename tests/{ => i915}/gem_ringfill.c (100%)
 rename tests/{ => i915}/gem_set_tiling_vs_blt.c (100%)
 rename tests/{ => i915}/gem_set_tiling_vs_gtt.c (100%)
 rename tests/{ => i915}/gem_set_tiling_vs_pwrite.c (100%)
 rename tests/{ => i915}/gem_shrink.c (100%)
 rename tests/{ => i915}/gem_softpin.c (100%)
 rename tests/{ => i915}/gem_spin_batch.c (100%)
 rename tests/{ => i915}/gem_stolen.c (100%)
 rename tests/{ => i915}/gem_storedw_batches_loop.c (100%)
 rename tests/{ => i915}/gem_storedw_loop.c (100%)
 rename tests/{ => i915}/gem_streaming_writes.c (100%)
 rename tests/{ => i915}/gem_stress.c (100%)
 rename tests/{ => i915}/gem_sync.c (100%)
 rename tests/{ => i915}/gem_threaded_access_tiled.c (100%)
 rename tests/{ => i915}/gem_tiled_blits.c (100%)
 rename tests/{ => i915}/gem_tiled_fence_blits.c (100%)
 rename tests/{ => i915}/gem_tiled_partial_pwrite_pread.c (100%)
 rename tests/{ => i915}/gem_tiled_pread_basic.c (100%)
 rename tests/{ => i915}/gem_tiled_pread_pwrite.c (100%)
 rename tests/{ => i915}/gem_tiled_swapping.c (100%)
 rename tests/{ => i915}/gem_tiled_wb.c (100%)
 rename tests/{ => i915}/gem_tiled_wc.c (100%)
 rename tests/{ => i915}/gem_tiling_max_stride.c (100%)
 rename tests/{ => i915}/gem_unfence_active_buffers.c (100%)
 rename tests/{ => i915}/gem_unref_active_buffers.c (100%)
 rename tests/{ => i915}/gem_userptr_blits.c (100%)
 rename tests/{ => i915}/gem_wait.c (100%)
 rename tests/{ => i915}/gem_workarounds.c (100%)
 rename tests/{ => i915}/gem_write_read_ring_switch.c (100%)
 rename tests/{ => i915}/gen3_mixed_blits.c (100%)
 rename tests/{ => i915}/gen3_render_linear_blits.c (100%)
 rename tests/{ => i915}/gen3_render_mixed_blits.c (100%)
 rename tests/{ => i915}/gen3_render_tiledx_blits.c (100%)
 rename tests/{ => i915}/gen3_render_tiledy_blits.c (100%)
 rename tests/{i915_query.c => i915/query.c} (100%)

diff --git a/docs/reference/igt-gpu-tools/meson.build b/docs/reference/igt-gpu-tools/meson.build
index ebcb6b7a..e544e71b 100644
--- a/docs/reference/igt-gpu-tools/meson.build
+++ b/docs/reference/igt-gpu-tools/meson.build
@@ -48,8 +48,6 @@ test_groups = [
 gen_description = find_program('generate_description_xml.sh')
 gen_programs = find_program('generate_programs_xml.sh')
 
-test_list_files = []
-
 generated_docs = []
 
 configure_file(input: 'version.xml.in',
@@ -61,13 +59,13 @@ if meson.version().version_compare('>= 0.47')
 		programs_xml = 'igt_test_programs_' + group + '_programs.xml'
 		generated_docs += custom_target(programs_xml,
 			      output : programs_xml,
-			      command : [ gen_programs, '@OUTPUT@', group, test_list ])
+			      command : [ gen_programs, '@OUTPUT@', group, test_list_target ])
 
 		description_xml = 'igt_test_programs_' + group + '_description.xml'
 		generated_docs += custom_target(description_xml,
 			      output : description_xml,
 			      depends : test_executables,
-			      command : [ gen_description, '@OUTPUT@', group, test_list ])
+			      command : [ gen_description, '@OUTPUT@', group, test_list_target ])
 	endforeach
 else
 	# older meson needs the build_by_default hack because gtkdoc dependency
@@ -77,14 +75,14 @@ else
 		custom_target(programs_xml,
 			      build_by_default : true,
 			      output : programs_xml,
-			      command : [ gen_programs, '@OUTPUT@', group, test_list ])
+			      command : [ gen_programs, '@OUTPUT@', group, test_list_target ])
 
 		description_xml = 'igt_test_programs_' + group + '_description.xml'
 		custom_target(description_xml,
 			      build_by_default : true,
 			      output : description_xml,
 			      depends : test_executables,
-			      command : [ gen_description, '@OUTPUT@', group, test_list ])
+			      command : [ gen_description, '@OUTPUT@', group, test_list_target ])
 	endforeach
 endif
 
diff --git a/tests/Makefile.am b/tests/Makefile.am
index ee5a7c5e..3d1ce0bc 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -46,11 +46,13 @@ noinst_PROGRAMS = \
 	$(NULL)
 
 pkglibexec_PROGRAMS = \
-	gem_stress \
 	$(TESTS_progs) \
 	$(TESTS_progs_X) \
 	$(NULL)
 
+pkglibexec_PROGRAMS += gem_stress
+gem_stress_SOURCES = i915/gem_stress.c
+
 # Piglit expects test-list*.txt to be in the same directory as the
 # tests. pkglibexec_DATA is an invalid combo to autotools, so work
 # around that by defining a new directory variable that is the same as
diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index cdf5a7e1..d53822fd 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -39,129 +39,6 @@ TESTS_progs = \
 	drv_module_reload \
 	drv_selftest \
 	drv_suspend \
-	gem_bad_reloc \
-	gem_basic \
-	gem_busy \
-	gem_caching \
-	gem_close \
-	gem_close_race \
-	gem_concurrent_blit \
-	gem_cpu_reloc \
-	gem_create \
-	gem_cs_prefetch \
-	gem_cs_tlb \
-	gem_ctx_bad_destroy \
-	gem_ctx_create \
-	gem_ctx_exec \
-	gem_ctx_isolation \
-	gem_ctx_param \
-	gem_ctx_switch \
-	gem_ctx_thrash \
-	gem_double_irq_loop \
-	gem_eio \
-	gem_evict_alignment \
-	gem_evict_everything \
-	gem_exec_alignment \
-	gem_exec_async \
-	gem_exec_await \
-	gem_exec_bad_domains \
-	gem_exec_basic \
-	gem_exec_big \
-	gem_exec_blt \
-	gem_exec_capture \
-	gem_exec_create \
-	gem_exec_faulting_reloc \
-	gem_exec_fence \
-	gem_exec_flush \
-	gem_exec_gttfill \
-	gem_exec_latency \
-	gem_exec_lut_handle \
-	gem_exec_nop \
-	gem_exec_parallel \
-	gem_exec_params \
-	gem_exec_parse \
-	gem_exec_reloc \
-	gem_exec_reuse \
-	gem_exec_schedule \
-	gem_exec_store \
-	gem_exec_suspend \
-	gem_exec_whisper \
-	gem_fd_exhaustion \
-	gem_fence_thrash \
-	gem_fence_upload \
-	gem_fenced_exec_thrash \
-	gem_flink_basic \
-	gem_flink_race \
-	gem_gpgpu_fill \
-	gem_gtt_cpu_tlb \
-	gem_gtt_hog \
-	gem_gtt_speed \
-	gem_largeobject \
-	gem_linear_blits \
-	gem_lut_handle \
-	gem_madvise \
-	gem_media_fill \
-	gem_mmap \
-	gem_mmap_gtt \
-	gem_mmap_offset_exhaustion \
-	gem_mmap_wc \
-	gem_mocs_settings \
-	gem_partial_pwrite_pread \
-	gem_persistent_relocs \
-	gem_pipe_control_store_loop \
-	gem_ppgtt \
-	gem_pread \
-	gem_pread_after_blit \
-	gem_pwrite \
-	gem_pwrite_pread \
-	gem_pwrite_snooped \
-	gem_read_read_speed \
-	gem_readwrite \
-	gem_reg_read \
-	gem_reloc_overflow \
-	gem_reloc_vs_gpu \
-	gem_render_copy \
-	gem_render_copy_redux \
-	gem_render_linear_blits \
-	gem_render_tiled_blits \
-	gem_request_retire \
-	gem_reset_stats \
-	gem_ring_sync_copy \
-	gem_ring_sync_loop \
-	gem_ringfill \
-	gem_set_tiling_vs_blt \
-	gem_set_tiling_vs_gtt \
-	gem_set_tiling_vs_pwrite \
-	gem_shrink \
-	gem_softpin \
-	gem_spin_batch \
-	gem_stolen \
-	gem_storedw_batches_loop \
-	gem_storedw_loop \
-	gem_streaming_writes \
-	gem_sync \
-	gem_threaded_access_tiled \
-	gem_tiled_blits \
-	gem_tiled_fence_blits \
-	gem_tiled_partial_pwrite_pread \
-	gem_tiled_pread_basic \
-	gem_tiled_pread_pwrite \
-	gem_tiled_swapping \
-	gem_tiled_wb \
-	gem_tiled_wc \
-	gem_tiling_max_stride \
-	gem_unfence_active_buffers \
-	gem_unref_active_buffers \
-	gem_userptr_blits \
-	gem_wait \
-	gem_workarounds \
-	gem_write_read_ring_switch \
-	gen3_mixed_blits \
-	gen3_render_linear_blits \
-	gen3_render_mixed_blits \
-	gen3_render_tiledx_blits \
-	gen3_render_tiledy_blits \
-	i915_query \
 	kms_3d \
 	kms_addfb_basic \
 	kms_atomic \
@@ -233,9 +110,378 @@ TESTS_progs = \
 	vgem_slow \
 	$(NULL)
 
-TESTS_progs_X = \
-    gem_concurrent_all \
-    $(NULL)
+TESTS_progs += gem_bad_reloc
+gem_bad_reloc_SOURCES = i915/gem_bad_reloc.c
+
+TESTS_progs += gem_basic
+gem_basic_SOURCES = i915/gem_basic.c
+
+TESTS_progs += gem_busy
+gem_busy_SOURCES = i915/gem_busy.c
+
+TESTS_progs += gem_caching
+gem_caching_SOURCES = i915/gem_caching.c
+
+TESTS_progs += gem_close
+gem_close_SOURCES = i915/gem_close.c
+
+TESTS_progs += gem_close_race
+gem_close_race_SOURCES = i915/gem_close_race.c
+
+TESTS_progs += gem_concurrent_blit
+gem_concurrent_blit_SOURCES = i915/gem_concurrent_blit.c
+
+TESTS_progs += gem_cpu_reloc
+gem_cpu_reloc_SOURCES = i915/gem_cpu_reloc.c
+
+TESTS_progs += gem_create
+gem_create_SOURCES = i915/gem_create.c
+
+TESTS_progs += gem_cs_prefetch
+gem_cs_prefetch_SOURCES = i915/gem_cs_prefetch.c
+
+TESTS_progs += gem_cs_tlb
+gem_cs_tlb_SOURCES = i915/gem_cs_tlb.c
+
+TESTS_progs += gem_ctx_bad_destroy
+gem_ctx_bad_destroy_SOURCES = i915/gem_ctx_bad_destroy.c
+
+TESTS_progs += gem_ctx_create
+gem_ctx_create_SOURCES = i915/gem_ctx_create.c
+
+TESTS_progs += gem_ctx_exec
+gem_ctx_exec_SOURCES = i915/gem_ctx_exec.c
+
+TESTS_progs += gem_ctx_isolation
+gem_ctx_isolation_SOURCES = i915/gem_ctx_isolation.c
+
+TESTS_progs += gem_ctx_param
+gem_ctx_param_SOURCES = i915/gem_ctx_param.c
+
+TESTS_progs += gem_ctx_switch
+gem_ctx_switch_SOURCES = i915/gem_ctx_switch.c
+
+TESTS_progs += gem_ctx_thrash
+gem_ctx_thrash_SOURCES = i915/gem_ctx_thrash.c
+
+TESTS_progs += gem_double_irq_loop
+gem_double_irq_loop_SOURCES = i915/gem_double_irq_loop.c
+
+TESTS_progs += gem_eio
+gem_eio_SOURCES = i915/gem_eio.c
+
+TESTS_progs += gem_evict_alignment
+gem_evict_alignment_SOURCES = i915/gem_evict_alignment.c
+
+TESTS_progs += gem_evict_everything
+gem_evict_everything_SOURCES = i915/gem_evict_everything.c
+
+TESTS_progs += gem_exec_alignment
+gem_exec_alignment_SOURCES = i915/gem_exec_alignment.c
+
+TESTS_progs += gem_exec_async
+gem_exec_async_SOURCES = i915/gem_exec_async.c
+
+TESTS_progs += gem_exec_await
+gem_exec_await_SOURCES = i915/gem_exec_await.c
+
+TESTS_progs += gem_exec_bad_domains
+gem_exec_bad_domains_SOURCES = i915/gem_exec_bad_domains.c
+
+TESTS_progs += gem_exec_basic
+gem_exec_basic_SOURCES = i915/gem_exec_basic.c
+
+TESTS_progs += gem_exec_big
+gem_exec_big_SOURCES = i915/gem_exec_big.c
+
+TESTS_progs += gem_exec_blt
+gem_exec_blt_SOURCES = i915/gem_exec_blt.c
+
+TESTS_progs += gem_exec_capture
+gem_exec_capture_SOURCES = i915/gem_exec_capture.c
+
+TESTS_progs += gem_exec_create
+gem_exec_create_SOURCES = i915/gem_exec_create.c
+
+TESTS_progs += gem_exec_faulting_reloc
+gem_exec_faulting_reloc_SOURCES = i915/gem_exec_faulting_reloc.c
+
+TESTS_progs += gem_exec_fence
+gem_exec_fence_SOURCES = i915/gem_exec_fence.c
+
+TESTS_progs += gem_exec_flush
+gem_exec_flush_SOURCES = i915/gem_exec_flush.c
+
+TESTS_progs += gem_exec_gttfill
+gem_exec_gttfill_SOURCES = i915/gem_exec_gttfill.c
+
+TESTS_progs += gem_exec_latency
+gem_exec_latency_SOURCES = i915/gem_exec_latency.c
+
+TESTS_progs += gem_exec_lut_handle
+gem_exec_lut_handle_SOURCES = i915/gem_exec_lut_handle.c
+
+TESTS_progs += gem_exec_nop
+gem_exec_nop_SOURCES = i915/gem_exec_nop.c
+
+TESTS_progs += gem_exec_parallel
+gem_exec_parallel_SOURCES = i915/gem_exec_parallel.c
+
+TESTS_progs += gem_exec_params
+gem_exec_params_SOURCES = i915/gem_exec_params.c
+
+TESTS_progs += gem_exec_parse
+gem_exec_parse_SOURCES = i915/gem_exec_parse.c
+
+TESTS_progs += gem_exec_reloc
+gem_exec_reloc_SOURCES = i915/gem_exec_reloc.c
+
+TESTS_progs += gem_exec_reuse
+gem_exec_reuse_SOURCES = i915/gem_exec_reuse.c
+
+TESTS_progs += gem_exec_schedule
+gem_exec_schedule_SOURCES = i915/gem_exec_schedule.c
+
+TESTS_progs += gem_exec_store
+gem_exec_store_SOURCES = i915/gem_exec_store.c
+
+TESTS_progs += gem_exec_suspend
+gem_exec_suspend_SOURCES = i915/gem_exec_suspend.c
+
+TESTS_progs += gem_exec_whisper
+gem_exec_whisper_SOURCES = i915/gem_exec_whisper.c
+
+TESTS_progs += gem_fd_exhaustion
+gem_fd_exhaustion_SOURCES = i915/gem_fd_exhaustion.c
+
+TESTS_progs += gem_fence_thrash
+gem_fence_thrash_SOURCES = i915/gem_fence_thrash.c
+
+TESTS_progs += gem_fence_upload
+gem_fence_upload_SOURCES = i915/gem_fence_upload.c
+
+TESTS_progs += gem_fenced_exec_thrash
+gem_fenced_exec_thrash_SOURCES = i915/gem_fenced_exec_thrash.c
+
+TESTS_progs += gem_flink_basic
+gem_flink_basic_SOURCES = i915/gem_flink_basic.c
+
+TESTS_progs += gem_flink_race
+gem_flink_race_SOURCES = i915/gem_flink_race.c
+
+TESTS_progs += gem_gpgpu_fill
+gem_gpgpu_fill_SOURCES = i915/gem_gpgpu_fill.c
+
+TESTS_progs += gem_gtt_cpu_tlb
+gem_gtt_cpu_tlb_SOURCES = i915/gem_gtt_cpu_tlb.c
+
+TESTS_progs += gem_gtt_hog
+gem_gtt_hog_SOURCES = i915/gem_gtt_hog.c
+
+TESTS_progs += gem_gtt_speed
+gem_gtt_speed_SOURCES = i915/gem_gtt_speed.c
+
+TESTS_progs += gem_largeobject
+gem_largeobject_SOURCES = i915/gem_largeobject.c
+
+TESTS_progs += gem_linear_blits
+gem_linear_blits_SOURCES = i915/gem_linear_blits.c
+
+TESTS_progs += gem_lut_handle
+gem_lut_handle_SOURCES = i915/gem_lut_handle.c
+
+TESTS_progs += gem_madvise
+gem_madvise_SOURCES = i915/gem_madvise.c
+
+TESTS_progs += gem_media_fill
+gem_media_fill_SOURCES = i915/gem_media_fill.c
+
+TESTS_progs += gem_mmap
+gem_mmap_SOURCES = i915/gem_mmap.c
+
+TESTS_progs += gem_mmap_gtt
+gem_mmap_gtt_SOURCES = i915/gem_mmap_gtt.c
+
+TESTS_progs += gem_mmap_offset_exhaustion
+gem_mmap_offset_exhaustion_SOURCES = i915/gem_mmap_offset_exhaustion.c
+
+TESTS_progs += gem_mmap_wc
+gem_mmap_wc_SOURCES = i915/gem_mmap_wc.c
+
+TESTS_progs += gem_mocs_settings
+gem_mocs_settings_SOURCES = i915/gem_mocs_settings.c
+
+TESTS_progs += gem_partial_pwrite_pread
+gem_partial_pwrite_pread_SOURCES = i915/gem_partial_pwrite_pread.c
+
+TESTS_progs += gem_persistent_relocs
+gem_persistent_relocs_SOURCES = i915/gem_persistent_relocs.c
+
+TESTS_progs += gem_pipe_control_store_loop
+gem_pipe_control_store_loop_SOURCES = i915/gem_pipe_control_store_loop.c
+
+TESTS_progs += gem_ppgtt
+gem_ppgtt_SOURCES = i915/gem_ppgtt.c
+
+TESTS_progs += gem_pread
+gem_pread_SOURCES = i915/gem_pread.c
+
+TESTS_progs += gem_pread_after_blit
+gem_pread_after_blit_SOURCES = i915/gem_pread_after_blit.c
+
+TESTS_progs += gem_pwrite
+gem_pwrite_SOURCES = i915/gem_pwrite.c
+
+TESTS_progs += gem_pwrite_pread
+gem_pwrite_pread_SOURCES = i915/gem_pwrite_pread.c
+
+TESTS_progs += gem_pwrite_snooped
+gem_pwrite_snooped_SOURCES = i915/gem_pwrite_snooped.c
+
+TESTS_progs += gem_read_read_speed
+gem_read_read_speed_SOURCES = i915/gem_read_read_speed.c
+
+TESTS_progs += gem_readwrite
+gem_readwrite_SOURCES = i915/gem_readwrite.c
+
+TESTS_progs += gem_reg_read
+gem_reg_read_SOURCES = i915/gem_reg_read.c
+
+TESTS_progs += gem_reloc_overflow
+gem_reloc_overflow_SOURCES = i915/gem_reloc_overflow.c
+
+TESTS_progs += gem_reloc_vs_gpu
+gem_reloc_vs_gpu_SOURCES = i915/gem_reloc_vs_gpu.c
+
+TESTS_progs += gem_render_copy
+gem_render_copy_SOURCES = i915/gem_render_copy.c
+
+TESTS_progs += gem_render_copy_redux
+gem_render_copy_redux_SOURCES = i915/gem_render_copy_redux.c
+
+TESTS_progs += gem_render_linear_blits
+gem_render_linear_blits_SOURCES = i915/gem_render_linear_blits.c
+
+TESTS_progs += gem_render_tiled_blits
+gem_render_tiled_blits_SOURCES = i915/gem_render_tiled_blits.c
+
+TESTS_progs += gem_request_retire
+gem_request_retire_SOURCES = i915/gem_request_retire.c
+
+TESTS_progs += gem_reset_stats
+gem_reset_stats_SOURCES = i915/gem_reset_stats.c
+
+TESTS_progs += gem_ring_sync_copy
+gem_ring_sync_copy_SOURCES = i915/gem_ring_sync_copy.c
+
+TESTS_progs += gem_ring_sync_loop
+gem_ring_sync_loop_SOURCES = i915/gem_ring_sync_loop.c
+
+TESTS_progs += gem_ringfill
+gem_ringfill_SOURCES = i915/gem_ringfill.c
+
+TESTS_progs += gem_set_tiling_vs_blt
+gem_set_tiling_vs_blt_SOURCES = i915/gem_set_tiling_vs_blt.c
+
+TESTS_progs += gem_set_tiling_vs_gtt
+gem_set_tiling_vs_gtt_SOURCES = i915/gem_set_tiling_vs_gtt.c
+
+TESTS_progs += gem_set_tiling_vs_pwrite
+gem_set_tiling_vs_pwrite_SOURCES = i915/gem_set_tiling_vs_pwrite.c
+
+TESTS_progs += gem_shrink
+gem_shrink_SOURCES = i915/gem_shrink.c
+
+TESTS_progs += gem_softpin
+gem_softpin_SOURCES = i915/gem_softpin.c
+
+TESTS_progs += gem_spin_batch
+gem_spin_batch_SOURCES = i915/gem_spin_batch.c
+
+TESTS_progs += gem_stolen
+gem_stolen_SOURCES = i915/gem_stolen.c
+
+TESTS_progs += gem_storedw_batches_loop
+gem_storedw_batches_loop_SOURCES = i915/gem_storedw_batches_loop.c
+
+TESTS_progs += gem_storedw_loop
+gem_storedw_loop_SOURCES = i915/gem_storedw_loop.c
+
+TESTS_progs += gem_streaming_writes
+gem_streaming_writes_SOURCES = i915/gem_streaming_writes.c
+
+TESTS_progs += gem_sync
+gem_sync_SOURCES = i915/gem_sync.c
+
+TESTS_progs += gem_threaded_access_tiled
+gem_threaded_access_tiled_SOURCES = i915/gem_threaded_access_tiled.c
+
+TESTS_progs += gem_tiled_blits
+gem_tiled_blits_SOURCES = i915/gem_tiled_blits.c
+
+TESTS_progs += gem_tiled_fence_blits
+gem_tiled_fence_blits_SOURCES = i915/gem_tiled_fence_blits.c
+
+TESTS_progs += gem_tiled_partial_pwrite_pread
+gem_tiled_partial_pwrite_pread_SOURCES = i915/gem_tiled_partial_pwrite_pread.c
+
+TESTS_progs += gem_tiled_pread_basic
+gem_tiled_pread_basic_SOURCES = i915/gem_tiled_pread_basic.c
+
+TESTS_progs += gem_tiled_pread_pwrite
+gem_tiled_pread_pwrite_SOURCES = i915/gem_tiled_pread_pwrite.c
+
+TESTS_progs += gem_tiled_swapping
+gem_tiled_swapping_SOURCES = i915/gem_tiled_swapping.c
+
+TESTS_progs += gem_tiled_wb
+gem_tiled_wb_SOURCES = i915/gem_tiled_wb.c
+
+TESTS_progs += gem_tiled_wc
+gem_tiled_wc_SOURCES = i915/gem_tiled_wc.c
+
+TESTS_progs += gem_tiling_max_stride
+gem_tiling_max_stride_SOURCES = i915/gem_tiling_max_stride.c
+
+TESTS_progs += gem_unfence_active_buffers
+gem_unfence_active_buffers_SOURCES = i915/gem_unfence_active_buffers.c
+
+TESTS_progs += gem_unref_active_buffers
+gem_unref_active_buffers_SOURCES = i915/gem_unref_active_buffers.c
+
+TESTS_progs += gem_userptr_blits
+gem_userptr_blits_SOURCES = i915/gem_userptr_blits.c
+
+TESTS_progs += gem_wait
+gem_wait_SOURCES = i915/gem_wait.c
+
+TESTS_progs += gem_workarounds
+gem_workarounds_SOURCES = i915/gem_workarounds.c
+
+TESTS_progs += gem_write_read_ring_switch
+gem_write_read_ring_switch_SOURCES = i915/gem_write_read_ring_switch.c
+
+TESTS_progs += gen3_mixed_blits
+gen3_mixed_blits_SOURCES = i915/gen3_mixed_blits.c
+
+TESTS_progs += gen3_render_linear_blits
+gen3_render_linear_blits_SOURCES = i915/gen3_render_linear_blits.c
+
+TESTS_progs += gen3_render_mixed_blits
+gen3_render_mixed_blits_SOURCES = i915/gen3_render_mixed_blits.c
+
+TESTS_progs += gen3_render_tiledx_blits
+gen3_render_tiledx_blits_SOURCES = i915/gen3_render_tiledx_blits.c
+
+TESTS_progs += gen3_render_tiledy_blits
+gen3_render_tiledy_blits_SOURCES = i915/gen3_render_tiledy_blits.c
+
+TESTS_progs += i915_query
+i915_query_SOURCES = i915/query.c
+
+
+TESTS_progs_X = gem_concurrent_all
+gem_concurrent_all_SOURCES = i915/gem_concurrent_all.c
 
 kernel_tests = \
 	$(TESTS_progs) \
@@ -257,12 +503,21 @@ kernel_tests_full = \
 
 # IMPORTANT: These tests here are all disabled because the result in sometime
 # unrecoverable gpu hangs. Don't put real testcases here.
-HANG = \
-	gem_bad_batch \
-	gem_hang \
-	gem_bad_blit \
-	gem_bad_address \
-	gem_non_secure_batch \
+HANG = gem_bad_batch
+gem_bad_batch_SOURCES = i915/gem_bad_batch.c
+
+HANG += gem_hang
+gem_hang_SOURCES = i915/gem_hang.c
+
+HANG += gem_bad_blit
+gem_bad_blit_SOURCES = i915/gem_bad_blit.c
+
+HANG += gem_bad_address
+gem_bad_address_SOURCES = i915/gem_bad_address.c
+
+HANG += gem_non_secure_batch
+gem_non_secure_batch_SOURCES = i915/gem_non_secure_batch.c
+
 	$(NULL)
 
 scripts = \
diff --git a/tests/amdgpu/meson.build b/tests/amdgpu/meson.build
index 566e851b..c831b079 100644
--- a/tests/amdgpu/meson.build
+++ b/tests/amdgpu/meson.build
@@ -15,5 +15,5 @@ foreach prog : amdgpu_progs
 				       install_dir : amdgpudir,
 				       install_rpath : amdgpudir_rpathdir,
 				       install : true)
-	test_progs += join_paths('amdgpu', prog)
+	test_list += join_paths('amdgpu', prog)
 endforeach
diff --git a/tests/gem_bad_address.c b/tests/i915/gem_bad_address.c
similarity index 100%
rename from tests/gem_bad_address.c
rename to tests/i915/gem_bad_address.c
diff --git a/tests/gem_bad_batch.c b/tests/i915/gem_bad_batch.c
similarity index 100%
rename from tests/gem_bad_batch.c
rename to tests/i915/gem_bad_batch.c
diff --git a/tests/gem_bad_blit.c b/tests/i915/gem_bad_blit.c
similarity index 100%
rename from tests/gem_bad_blit.c
rename to tests/i915/gem_bad_blit.c
diff --git a/tests/gem_bad_reloc.c b/tests/i915/gem_bad_reloc.c
similarity index 100%
rename from tests/gem_bad_reloc.c
rename to tests/i915/gem_bad_reloc.c
diff --git a/tests/gem_basic.c b/tests/i915/gem_basic.c
similarity index 100%
rename from tests/gem_basic.c
rename to tests/i915/gem_basic.c
diff --git a/tests/gem_busy.c b/tests/i915/gem_busy.c
similarity index 100%
rename from tests/gem_busy.c
rename to tests/i915/gem_busy.c
diff --git a/tests/gem_caching.c b/tests/i915/gem_caching.c
similarity index 100%
rename from tests/gem_caching.c
rename to tests/i915/gem_caching.c
diff --git a/tests/gem_close.c b/tests/i915/gem_close.c
similarity index 100%
rename from tests/gem_close.c
rename to tests/i915/gem_close.c
diff --git a/tests/gem_close_race.c b/tests/i915/gem_close_race.c
similarity index 100%
rename from tests/gem_close_race.c
rename to tests/i915/gem_close_race.c
diff --git a/tests/gem_concurrent_all.c b/tests/i915/gem_concurrent_all.c
similarity index 100%
rename from tests/gem_concurrent_all.c
rename to tests/i915/gem_concurrent_all.c
diff --git a/tests/gem_concurrent_blit.c b/tests/i915/gem_concurrent_blit.c
similarity index 100%
rename from tests/gem_concurrent_blit.c
rename to tests/i915/gem_concurrent_blit.c
diff --git a/tests/gem_cpu_reloc.c b/tests/i915/gem_cpu_reloc.c
similarity index 100%
rename from tests/gem_cpu_reloc.c
rename to tests/i915/gem_cpu_reloc.c
diff --git a/tests/gem_create.c b/tests/i915/gem_create.c
similarity index 100%
rename from tests/gem_create.c
rename to tests/i915/gem_create.c
diff --git a/tests/gem_cs_prefetch.c b/tests/i915/gem_cs_prefetch.c
similarity index 100%
rename from tests/gem_cs_prefetch.c
rename to tests/i915/gem_cs_prefetch.c
diff --git a/tests/gem_cs_tlb.c b/tests/i915/gem_cs_tlb.c
similarity index 100%
rename from tests/gem_cs_tlb.c
rename to tests/i915/gem_cs_tlb.c
diff --git a/tests/gem_ctx_bad_destroy.c b/tests/i915/gem_ctx_bad_destroy.c
similarity index 100%
rename from tests/gem_ctx_bad_destroy.c
rename to tests/i915/gem_ctx_bad_destroy.c
diff --git a/tests/gem_ctx_create.c b/tests/i915/gem_ctx_create.c
similarity index 100%
rename from tests/gem_ctx_create.c
rename to tests/i915/gem_ctx_create.c
diff --git a/tests/gem_ctx_exec.c b/tests/i915/gem_ctx_exec.c
similarity index 100%
rename from tests/gem_ctx_exec.c
rename to tests/i915/gem_ctx_exec.c
diff --git a/tests/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
similarity index 100%
rename from tests/gem_ctx_isolation.c
rename to tests/i915/gem_ctx_isolation.c
diff --git a/tests/gem_ctx_param.c b/tests/i915/gem_ctx_param.c
similarity index 100%
rename from tests/gem_ctx_param.c
rename to tests/i915/gem_ctx_param.c
diff --git a/tests/gem_ctx_switch.c b/tests/i915/gem_ctx_switch.c
similarity index 100%
rename from tests/gem_ctx_switch.c
rename to tests/i915/gem_ctx_switch.c
diff --git a/tests/gem_ctx_thrash.c b/tests/i915/gem_ctx_thrash.c
similarity index 100%
rename from tests/gem_ctx_thrash.c
rename to tests/i915/gem_ctx_thrash.c
diff --git a/tests/gem_double_irq_loop.c b/tests/i915/gem_double_irq_loop.c
similarity index 100%
rename from tests/gem_double_irq_loop.c
rename to tests/i915/gem_double_irq_loop.c
diff --git a/tests/gem_eio.c b/tests/i915/gem_eio.c
similarity index 100%
rename from tests/gem_eio.c
rename to tests/i915/gem_eio.c
diff --git a/tests/gem_evict_alignment.c b/tests/i915/gem_evict_alignment.c
similarity index 100%
rename from tests/gem_evict_alignment.c
rename to tests/i915/gem_evict_alignment.c
diff --git a/tests/gem_evict_everything.c b/tests/i915/gem_evict_everything.c
similarity index 100%
rename from tests/gem_evict_everything.c
rename to tests/i915/gem_evict_everything.c
diff --git a/tests/gem_exec_alignment.c b/tests/i915/gem_exec_alignment.c
similarity index 100%
rename from tests/gem_exec_alignment.c
rename to tests/i915/gem_exec_alignment.c
diff --git a/tests/gem_exec_async.c b/tests/i915/gem_exec_async.c
similarity index 100%
rename from tests/gem_exec_async.c
rename to tests/i915/gem_exec_async.c
diff --git a/tests/gem_exec_await.c b/tests/i915/gem_exec_await.c
similarity index 100%
rename from tests/gem_exec_await.c
rename to tests/i915/gem_exec_await.c
diff --git a/tests/gem_exec_bad_domains.c b/tests/i915/gem_exec_bad_domains.c
similarity index 100%
rename from tests/gem_exec_bad_domains.c
rename to tests/i915/gem_exec_bad_domains.c
diff --git a/tests/gem_exec_basic.c b/tests/i915/gem_exec_basic.c
similarity index 100%
rename from tests/gem_exec_basic.c
rename to tests/i915/gem_exec_basic.c
diff --git a/tests/gem_exec_big.c b/tests/i915/gem_exec_big.c
similarity index 100%
rename from tests/gem_exec_big.c
rename to tests/i915/gem_exec_big.c
diff --git a/tests/gem_exec_blt.c b/tests/i915/gem_exec_blt.c
similarity index 100%
rename from tests/gem_exec_blt.c
rename to tests/i915/gem_exec_blt.c
diff --git a/tests/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
similarity index 100%
rename from tests/gem_exec_capture.c
rename to tests/i915/gem_exec_capture.c
diff --git a/tests/gem_exec_create.c b/tests/i915/gem_exec_create.c
similarity index 100%
rename from tests/gem_exec_create.c
rename to tests/i915/gem_exec_create.c
diff --git a/tests/gem_exec_faulting_reloc.c b/tests/i915/gem_exec_faulting_reloc.c
similarity index 100%
rename from tests/gem_exec_faulting_reloc.c
rename to tests/i915/gem_exec_faulting_reloc.c
diff --git a/tests/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
similarity index 100%
rename from tests/gem_exec_fence.c
rename to tests/i915/gem_exec_fence.c
diff --git a/tests/gem_exec_flush.c b/tests/i915/gem_exec_flush.c
similarity index 100%
rename from tests/gem_exec_flush.c
rename to tests/i915/gem_exec_flush.c
diff --git a/tests/gem_exec_gttfill.c b/tests/i915/gem_exec_gttfill.c
similarity index 100%
rename from tests/gem_exec_gttfill.c
rename to tests/i915/gem_exec_gttfill.c
diff --git a/tests/gem_exec_latency.c b/tests/i915/gem_exec_latency.c
similarity index 100%
rename from tests/gem_exec_latency.c
rename to tests/i915/gem_exec_latency.c
diff --git a/tests/gem_exec_lut_handle.c b/tests/i915/gem_exec_lut_handle.c
similarity index 100%
rename from tests/gem_exec_lut_handle.c
rename to tests/i915/gem_exec_lut_handle.c
diff --git a/tests/gem_exec_nop.c b/tests/i915/gem_exec_nop.c
similarity index 100%
rename from tests/gem_exec_nop.c
rename to tests/i915/gem_exec_nop.c
diff --git a/tests/gem_exec_parallel.c b/tests/i915/gem_exec_parallel.c
similarity index 100%
rename from tests/gem_exec_parallel.c
rename to tests/i915/gem_exec_parallel.c
diff --git a/tests/gem_exec_params.c b/tests/i915/gem_exec_params.c
similarity index 100%
rename from tests/gem_exec_params.c
rename to tests/i915/gem_exec_params.c
diff --git a/tests/gem_exec_parse.c b/tests/i915/gem_exec_parse.c
similarity index 100%
rename from tests/gem_exec_parse.c
rename to tests/i915/gem_exec_parse.c
diff --git a/tests/gem_exec_reloc.c b/tests/i915/gem_exec_reloc.c
similarity index 100%
rename from tests/gem_exec_reloc.c
rename to tests/i915/gem_exec_reloc.c
diff --git a/tests/gem_exec_reuse.c b/tests/i915/gem_exec_reuse.c
similarity index 100%
rename from tests/gem_exec_reuse.c
rename to tests/i915/gem_exec_reuse.c
diff --git a/tests/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c
similarity index 100%
rename from tests/gem_exec_schedule.c
rename to tests/i915/gem_exec_schedule.c
diff --git a/tests/gem_exec_store.c b/tests/i915/gem_exec_store.c
similarity index 100%
rename from tests/gem_exec_store.c
rename to tests/i915/gem_exec_store.c
diff --git a/tests/gem_exec_suspend.c b/tests/i915/gem_exec_suspend.c
similarity index 100%
rename from tests/gem_exec_suspend.c
rename to tests/i915/gem_exec_suspend.c
diff --git a/tests/gem_exec_whisper.c b/tests/i915/gem_exec_whisper.c
similarity index 100%
rename from tests/gem_exec_whisper.c
rename to tests/i915/gem_exec_whisper.c
diff --git a/tests/gem_fd_exhaustion.c b/tests/i915/gem_fd_exhaustion.c
similarity index 100%
rename from tests/gem_fd_exhaustion.c
rename to tests/i915/gem_fd_exhaustion.c
diff --git a/tests/gem_fence_thrash.c b/tests/i915/gem_fence_thrash.c
similarity index 100%
rename from tests/gem_fence_thrash.c
rename to tests/i915/gem_fence_thrash.c
diff --git a/tests/gem_fence_upload.c b/tests/i915/gem_fence_upload.c
similarity index 100%
rename from tests/gem_fence_upload.c
rename to tests/i915/gem_fence_upload.c
diff --git a/tests/gem_fenced_exec_thrash.c b/tests/i915/gem_fenced_exec_thrash.c
similarity index 100%
rename from tests/gem_fenced_exec_thrash.c
rename to tests/i915/gem_fenced_exec_thrash.c
diff --git a/tests/gem_flink_basic.c b/tests/i915/gem_flink_basic.c
similarity index 100%
rename from tests/gem_flink_basic.c
rename to tests/i915/gem_flink_basic.c
diff --git a/tests/gem_flink_race.c b/tests/i915/gem_flink_race.c
similarity index 100%
rename from tests/gem_flink_race.c
rename to tests/i915/gem_flink_race.c
diff --git a/tests/gem_gpgpu_fill.c b/tests/i915/gem_gpgpu_fill.c
similarity index 100%
rename from tests/gem_gpgpu_fill.c
rename to tests/i915/gem_gpgpu_fill.c
diff --git a/tests/gem_gtt_cpu_tlb.c b/tests/i915/gem_gtt_cpu_tlb.c
similarity index 100%
rename from tests/gem_gtt_cpu_tlb.c
rename to tests/i915/gem_gtt_cpu_tlb.c
diff --git a/tests/gem_gtt_hog.c b/tests/i915/gem_gtt_hog.c
similarity index 100%
rename from tests/gem_gtt_hog.c
rename to tests/i915/gem_gtt_hog.c
diff --git a/tests/gem_gtt_speed.c b/tests/i915/gem_gtt_speed.c
similarity index 100%
rename from tests/gem_gtt_speed.c
rename to tests/i915/gem_gtt_speed.c
diff --git a/tests/gem_hang.c b/tests/i915/gem_hang.c
similarity index 100%
rename from tests/gem_hang.c
rename to tests/i915/gem_hang.c
diff --git a/tests/gem_largeobject.c b/tests/i915/gem_largeobject.c
similarity index 100%
rename from tests/gem_largeobject.c
rename to tests/i915/gem_largeobject.c
diff --git a/tests/gem_linear_blits.c b/tests/i915/gem_linear_blits.c
similarity index 100%
rename from tests/gem_linear_blits.c
rename to tests/i915/gem_linear_blits.c
diff --git a/tests/gem_lut_handle.c b/tests/i915/gem_lut_handle.c
similarity index 100%
rename from tests/gem_lut_handle.c
rename to tests/i915/gem_lut_handle.c
diff --git a/tests/gem_madvise.c b/tests/i915/gem_madvise.c
similarity index 100%
rename from tests/gem_madvise.c
rename to tests/i915/gem_madvise.c
diff --git a/tests/gem_media_fill.c b/tests/i915/gem_media_fill.c
similarity index 100%
rename from tests/gem_media_fill.c
rename to tests/i915/gem_media_fill.c
diff --git a/tests/gem_mmap.c b/tests/i915/gem_mmap.c
similarity index 100%
rename from tests/gem_mmap.c
rename to tests/i915/gem_mmap.c
diff --git a/tests/gem_mmap_gtt.c b/tests/i915/gem_mmap_gtt.c
similarity index 100%
rename from tests/gem_mmap_gtt.c
rename to tests/i915/gem_mmap_gtt.c
diff --git a/tests/gem_mmap_offset_exhaustion.c b/tests/i915/gem_mmap_offset_exhaustion.c
similarity index 100%
rename from tests/gem_mmap_offset_exhaustion.c
rename to tests/i915/gem_mmap_offset_exhaustion.c
diff --git a/tests/gem_mmap_wc.c b/tests/i915/gem_mmap_wc.c
similarity index 100%
rename from tests/gem_mmap_wc.c
rename to tests/i915/gem_mmap_wc.c
diff --git a/tests/gem_mocs_settings.c b/tests/i915/gem_mocs_settings.c
similarity index 100%
rename from tests/gem_mocs_settings.c
rename to tests/i915/gem_mocs_settings.c
diff --git a/tests/gem_non_secure_batch.c b/tests/i915/gem_non_secure_batch.c
similarity index 100%
rename from tests/gem_non_secure_batch.c
rename to tests/i915/gem_non_secure_batch.c
diff --git a/tests/gem_partial_pwrite_pread.c b/tests/i915/gem_partial_pwrite_pread.c
similarity index 100%
rename from tests/gem_partial_pwrite_pread.c
rename to tests/i915/gem_partial_pwrite_pread.c
diff --git a/tests/gem_persistent_relocs.c b/tests/i915/gem_persistent_relocs.c
similarity index 100%
rename from tests/gem_persistent_relocs.c
rename to tests/i915/gem_persistent_relocs.c
diff --git a/tests/gem_pipe_control_store_loop.c b/tests/i915/gem_pipe_control_store_loop.c
similarity index 100%
rename from tests/gem_pipe_control_store_loop.c
rename to tests/i915/gem_pipe_control_store_loop.c
diff --git a/tests/gem_ppgtt.c b/tests/i915/gem_ppgtt.c
similarity index 100%
rename from tests/gem_ppgtt.c
rename to tests/i915/gem_ppgtt.c
diff --git a/tests/gem_pread.c b/tests/i915/gem_pread.c
similarity index 100%
rename from tests/gem_pread.c
rename to tests/i915/gem_pread.c
diff --git a/tests/gem_pread_after_blit.c b/tests/i915/gem_pread_after_blit.c
similarity index 100%
rename from tests/gem_pread_after_blit.c
rename to tests/i915/gem_pread_after_blit.c
diff --git a/tests/gem_pwrite.c b/tests/i915/gem_pwrite.c
similarity index 100%
rename from tests/gem_pwrite.c
rename to tests/i915/gem_pwrite.c
diff --git a/tests/gem_pwrite_pread.c b/tests/i915/gem_pwrite_pread.c
similarity index 100%
rename from tests/gem_pwrite_pread.c
rename to tests/i915/gem_pwrite_pread.c
diff --git a/tests/gem_pwrite_snooped.c b/tests/i915/gem_pwrite_snooped.c
similarity index 100%
rename from tests/gem_pwrite_snooped.c
rename to tests/i915/gem_pwrite_snooped.c
diff --git a/tests/gem_read_read_speed.c b/tests/i915/gem_read_read_speed.c
similarity index 100%
rename from tests/gem_read_read_speed.c
rename to tests/i915/gem_read_read_speed.c
diff --git a/tests/gem_readwrite.c b/tests/i915/gem_readwrite.c
similarity index 100%
rename from tests/gem_readwrite.c
rename to tests/i915/gem_readwrite.c
diff --git a/tests/gem_reg_read.c b/tests/i915/gem_reg_read.c
similarity index 100%
rename from tests/gem_reg_read.c
rename to tests/i915/gem_reg_read.c
diff --git a/tests/gem_reloc_overflow.c b/tests/i915/gem_reloc_overflow.c
similarity index 100%
rename from tests/gem_reloc_overflow.c
rename to tests/i915/gem_reloc_overflow.c
diff --git a/tests/gem_reloc_vs_gpu.c b/tests/i915/gem_reloc_vs_gpu.c
similarity index 100%
rename from tests/gem_reloc_vs_gpu.c
rename to tests/i915/gem_reloc_vs_gpu.c
diff --git a/tests/gem_render_copy.c b/tests/i915/gem_render_copy.c
similarity index 100%
rename from tests/gem_render_copy.c
rename to tests/i915/gem_render_copy.c
diff --git a/tests/gem_render_copy_redux.c b/tests/i915/gem_render_copy_redux.c
similarity index 100%
rename from tests/gem_render_copy_redux.c
rename to tests/i915/gem_render_copy_redux.c
diff --git a/tests/gem_render_linear_blits.c b/tests/i915/gem_render_linear_blits.c
similarity index 100%
rename from tests/gem_render_linear_blits.c
rename to tests/i915/gem_render_linear_blits.c
diff --git a/tests/gem_render_tiled_blits.c b/tests/i915/gem_render_tiled_blits.c
similarity index 100%
rename from tests/gem_render_tiled_blits.c
rename to tests/i915/gem_render_tiled_blits.c
diff --git a/tests/gem_request_retire.c b/tests/i915/gem_request_retire.c
similarity index 100%
rename from tests/gem_request_retire.c
rename to tests/i915/gem_request_retire.c
diff --git a/tests/gem_reset_stats.c b/tests/i915/gem_reset_stats.c
similarity index 100%
rename from tests/gem_reset_stats.c
rename to tests/i915/gem_reset_stats.c
diff --git a/tests/gem_ring_sync_copy.c b/tests/i915/gem_ring_sync_copy.c
similarity index 100%
rename from tests/gem_ring_sync_copy.c
rename to tests/i915/gem_ring_sync_copy.c
diff --git a/tests/gem_ring_sync_loop.c b/tests/i915/gem_ring_sync_loop.c
similarity index 100%
rename from tests/gem_ring_sync_loop.c
rename to tests/i915/gem_ring_sync_loop.c
diff --git a/tests/gem_ringfill.c b/tests/i915/gem_ringfill.c
similarity index 100%
rename from tests/gem_ringfill.c
rename to tests/i915/gem_ringfill.c
diff --git a/tests/gem_set_tiling_vs_blt.c b/tests/i915/gem_set_tiling_vs_blt.c
similarity index 100%
rename from tests/gem_set_tiling_vs_blt.c
rename to tests/i915/gem_set_tiling_vs_blt.c
diff --git a/tests/gem_set_tiling_vs_gtt.c b/tests/i915/gem_set_tiling_vs_gtt.c
similarity index 100%
rename from tests/gem_set_tiling_vs_gtt.c
rename to tests/i915/gem_set_tiling_vs_gtt.c
diff --git a/tests/gem_set_tiling_vs_pwrite.c b/tests/i915/gem_set_tiling_vs_pwrite.c
similarity index 100%
rename from tests/gem_set_tiling_vs_pwrite.c
rename to tests/i915/gem_set_tiling_vs_pwrite.c
diff --git a/tests/gem_shrink.c b/tests/i915/gem_shrink.c
similarity index 100%
rename from tests/gem_shrink.c
rename to tests/i915/gem_shrink.c
diff --git a/tests/gem_softpin.c b/tests/i915/gem_softpin.c
similarity index 100%
rename from tests/gem_softpin.c
rename to tests/i915/gem_softpin.c
diff --git a/tests/gem_spin_batch.c b/tests/i915/gem_spin_batch.c
similarity index 100%
rename from tests/gem_spin_batch.c
rename to tests/i915/gem_spin_batch.c
diff --git a/tests/gem_stolen.c b/tests/i915/gem_stolen.c
similarity index 100%
rename from tests/gem_stolen.c
rename to tests/i915/gem_stolen.c
diff --git a/tests/gem_storedw_batches_loop.c b/tests/i915/gem_storedw_batches_loop.c
similarity index 100%
rename from tests/gem_storedw_batches_loop.c
rename to tests/i915/gem_storedw_batches_loop.c
diff --git a/tests/gem_storedw_loop.c b/tests/i915/gem_storedw_loop.c
similarity index 100%
rename from tests/gem_storedw_loop.c
rename to tests/i915/gem_storedw_loop.c
diff --git a/tests/gem_streaming_writes.c b/tests/i915/gem_streaming_writes.c
similarity index 100%
rename from tests/gem_streaming_writes.c
rename to tests/i915/gem_streaming_writes.c
diff --git a/tests/gem_stress.c b/tests/i915/gem_stress.c
similarity index 100%
rename from tests/gem_stress.c
rename to tests/i915/gem_stress.c
diff --git a/tests/gem_sync.c b/tests/i915/gem_sync.c
similarity index 100%
rename from tests/gem_sync.c
rename to tests/i915/gem_sync.c
diff --git a/tests/gem_threaded_access_tiled.c b/tests/i915/gem_threaded_access_tiled.c
similarity index 100%
rename from tests/gem_threaded_access_tiled.c
rename to tests/i915/gem_threaded_access_tiled.c
diff --git a/tests/gem_tiled_blits.c b/tests/i915/gem_tiled_blits.c
similarity index 100%
rename from tests/gem_tiled_blits.c
rename to tests/i915/gem_tiled_blits.c
diff --git a/tests/gem_tiled_fence_blits.c b/tests/i915/gem_tiled_fence_blits.c
similarity index 100%
rename from tests/gem_tiled_fence_blits.c
rename to tests/i915/gem_tiled_fence_blits.c
diff --git a/tests/gem_tiled_partial_pwrite_pread.c b/tests/i915/gem_tiled_partial_pwrite_pread.c
similarity index 100%
rename from tests/gem_tiled_partial_pwrite_pread.c
rename to tests/i915/gem_tiled_partial_pwrite_pread.c
diff --git a/tests/gem_tiled_pread_basic.c b/tests/i915/gem_tiled_pread_basic.c
similarity index 100%
rename from tests/gem_tiled_pread_basic.c
rename to tests/i915/gem_tiled_pread_basic.c
diff --git a/tests/gem_tiled_pread_pwrite.c b/tests/i915/gem_tiled_pread_pwrite.c
similarity index 100%
rename from tests/gem_tiled_pread_pwrite.c
rename to tests/i915/gem_tiled_pread_pwrite.c
diff --git a/tests/gem_tiled_swapping.c b/tests/i915/gem_tiled_swapping.c
similarity index 100%
rename from tests/gem_tiled_swapping.c
rename to tests/i915/gem_tiled_swapping.c
diff --git a/tests/gem_tiled_wb.c b/tests/i915/gem_tiled_wb.c
similarity index 100%
rename from tests/gem_tiled_wb.c
rename to tests/i915/gem_tiled_wb.c
diff --git a/tests/gem_tiled_wc.c b/tests/i915/gem_tiled_wc.c
similarity index 100%
rename from tests/gem_tiled_wc.c
rename to tests/i915/gem_tiled_wc.c
diff --git a/tests/gem_tiling_max_stride.c b/tests/i915/gem_tiling_max_stride.c
similarity index 100%
rename from tests/gem_tiling_max_stride.c
rename to tests/i915/gem_tiling_max_stride.c
diff --git a/tests/gem_unfence_active_buffers.c b/tests/i915/gem_unfence_active_buffers.c
similarity index 100%
rename from tests/gem_unfence_active_buffers.c
rename to tests/i915/gem_unfence_active_buffers.c
diff --git a/tests/gem_unref_active_buffers.c b/tests/i915/gem_unref_active_buffers.c
similarity index 100%
rename from tests/gem_unref_active_buffers.c
rename to tests/i915/gem_unref_active_buffers.c
diff --git a/tests/gem_userptr_blits.c b/tests/i915/gem_userptr_blits.c
similarity index 100%
rename from tests/gem_userptr_blits.c
rename to tests/i915/gem_userptr_blits.c
diff --git a/tests/gem_wait.c b/tests/i915/gem_wait.c
similarity index 100%
rename from tests/gem_wait.c
rename to tests/i915/gem_wait.c
diff --git a/tests/gem_workarounds.c b/tests/i915/gem_workarounds.c
similarity index 100%
rename from tests/gem_workarounds.c
rename to tests/i915/gem_workarounds.c
diff --git a/tests/gem_write_read_ring_switch.c b/tests/i915/gem_write_read_ring_switch.c
similarity index 100%
rename from tests/gem_write_read_ring_switch.c
rename to tests/i915/gem_write_read_ring_switch.c
diff --git a/tests/gen3_mixed_blits.c b/tests/i915/gen3_mixed_blits.c
similarity index 100%
rename from tests/gen3_mixed_blits.c
rename to tests/i915/gen3_mixed_blits.c
diff --git a/tests/gen3_render_linear_blits.c b/tests/i915/gen3_render_linear_blits.c
similarity index 100%
rename from tests/gen3_render_linear_blits.c
rename to tests/i915/gen3_render_linear_blits.c
diff --git a/tests/gen3_render_mixed_blits.c b/tests/i915/gen3_render_mixed_blits.c
similarity index 100%
rename from tests/gen3_render_mixed_blits.c
rename to tests/i915/gen3_render_mixed_blits.c
diff --git a/tests/gen3_render_tiledx_blits.c b/tests/i915/gen3_render_tiledx_blits.c
similarity index 100%
rename from tests/gen3_render_tiledx_blits.c
rename to tests/i915/gen3_render_tiledx_blits.c
diff --git a/tests/gen3_render_tiledy_blits.c b/tests/i915/gen3_render_tiledy_blits.c
similarity index 100%
rename from tests/gen3_render_tiledy_blits.c
rename to tests/i915/gen3_render_tiledy_blits.c
diff --git a/tests/i915_query.c b/tests/i915/query.c
similarity index 100%
rename from tests/i915_query.c
rename to tests/i915/query.c
diff --git a/tests/meson.build b/tests/meson.build
index d74eb109..b531a550 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -16,6 +16,89 @@ test_progs = [
 	'drv_module_reload',
 	'drv_selftest',
 	'drv_suspend',
+	'kms_3d',
+	'kms_addfb_basic',
+	'kms_atomic',
+	'kms_atomic_interruptible',
+	'kms_atomic_transition',
+	'kms_available_modes_crc',
+	'kms_busy',
+	'kms_ccs',
+	'kms_chv_cursor_fail',
+	'kms_color',
+	'kms_concurrent',
+	'kms_crtc_background_color',
+	'kms_cursor_crc',
+	'kms_cursor_legacy',
+	'kms_draw_crc',
+	'kms_fbcon_fbt',
+	'kms_fence_pin_leak',
+	'kms_flip',
+	'kms_flip_event_leak',
+	'kms_flip_tiling',
+	'kms_force_connector_basic',
+	'kms_frontbuffer_tracking',
+	'kms_getfb',
+	'kms_hdmi_inject',
+	'kms_invalid_dotclock',
+	'kms_legacy_colorkey',
+	'kms_mmap_write_crc',
+	'kms_panel_fitting',
+	'kms_pipe_b_c_ivb',
+	'kms_pipe_crc_basic',
+	'kms_plane',
+	'kms_plane_alpha_blend',
+	'kms_plane_lowres',
+	'kms_plane_multiple',
+	'kms_plane_scaling',
+	'kms_properties',
+	'kms_psr',
+	'kms_pwrite_crc',
+	'kms_rmfb',
+	'kms_rotation_crc',
+	'kms_selftest',
+	'kms_setmode',
+	'kms_sysfs_edid_timing',
+	'kms_tv_load_detect',
+	'kms_universal_plane',
+	'kms_vblank',
+	'meta_test',
+	'perf',
+	'pm_backlight',
+	'pm_lpsp',
+	'pm_rc6_residency',
+	'pm_rpm',
+	'pm_rps',
+	'pm_sseu',
+	'prime_busy',
+	'prime_mmap',
+	'prime_mmap_coherency',
+	'prime_mmap_kms',
+	'prime_self_import',
+	'prime_udl',
+	'prime_vgem',
+	'sw_sync',
+	'syncobj_basic',
+	'syncobj_wait',
+	'template',
+	'tools_test',
+	'vc4_create_bo',
+	'vc4_dmabuf_poll',
+	'vc4_label_bo',
+	'vc4_lookup_fail',
+	'vc4_purgeable_bo',
+	'vc4_tiling',
+	'vc4_wait_bo',
+	'vc4_wait_seqno',
+	'vgem_basic',
+	'vgem_slow',
+]
+
+i915_progs = [
+	'query',
+]
+
+gem_progs = [
 	'gem_bad_reloc',
 	'gem_basic',
 	'gem_busy',
@@ -131,88 +214,14 @@ test_progs = [
 	'gem_wait',
 	'gem_workarounds',
 	'gem_write_read_ring_switch',
+]
+
+gen3_progs = [
 	'gen3_mixed_blits',
 	'gen3_render_linear_blits',
 	'gen3_render_mixed_blits',
 	'gen3_render_tiledx_blits',
 	'gen3_render_tiledy_blits',
-	'i915_query',
-	'kms_3d',
-	'kms_addfb_basic',
-	'kms_atomic',
-	'kms_atomic_interruptible',
-	'kms_atomic_transition',
-	'kms_available_modes_crc',
-	'kms_busy',
-	'kms_ccs',
-	'kms_chv_cursor_fail',
-	'kms_color',
-	'kms_concurrent',
-	'kms_crtc_background_color',
-	'kms_cursor_crc',
-	'kms_cursor_legacy',
-	'kms_draw_crc',
-	'kms_fbcon_fbt',
-	'kms_fence_pin_leak',
-	'kms_flip',
-	'kms_flip_event_leak',
-	'kms_flip_tiling',
-	'kms_force_connector_basic',
-	'kms_frontbuffer_tracking',
-	'kms_getfb',
-	'kms_hdmi_inject',
-	'kms_invalid_dotclock',
-	'kms_legacy_colorkey',
-	'kms_mmap_write_crc',
-	'kms_panel_fitting',
-	'kms_pipe_b_c_ivb',
-	'kms_pipe_crc_basic',
-	'kms_plane',
-	'kms_plane_alpha_blend',
-	'kms_plane_lowres',
-	'kms_plane_multiple',
-	'kms_plane_scaling',
-	'kms_properties',
-	'kms_psr',
-	'kms_pwrite_crc',
-	'kms_rmfb',
-	'kms_rotation_crc',
-	'kms_selftest',
-	'kms_setmode',
-	'kms_sysfs_edid_timing',
-	'kms_tv_load_detect',
-	'kms_universal_plane',
-	'kms_vblank',
-	'meta_test',
-	'perf',
-	'pm_backlight',
-	'pm_lpsp',
-	'pm_rc6_residency',
-	'pm_rpm',
-	'pm_rps',
-	'pm_sseu',
-	'prime_busy',
-	'prime_mmap',
-	'prime_mmap_coherency',
-	'prime_mmap_kms',
-	'prime_self_import',
-	'prime_udl',
-	'prime_vgem',
-	'sw_sync',
-	'syncobj_basic',
-	'syncobj_wait',
-	'template',
-	'tools_test',
-	'vc4_create_bo',
-	'vc4_dmabuf_poll',
-	'vc4_label_bo',
-	'vc4_lookup_fail',
-	'vc4_purgeable_bo',
-	'vc4_tiling',
-	'vc4_wait_bo',
-	'vc4_wait_seqno',
-	'vgem_basic',
-	'vgem_slow',
 ]
 
 test_deps = [ igt_deps ]
@@ -241,6 +250,7 @@ if _build_audio and alsa.found() and gsl.found()
 endif
 
 test_executables = []
+test_list = []
 
 foreach prog : test_progs
 	test_executables += executable(prog, prog + '.c',
@@ -248,52 +258,75 @@ foreach prog : test_progs
 		   install_dir : libexecdir,
 		   install_rpath : libexecdir_rpathdir,
 		   install : true)
+	test_list += prog
 endforeach
 
-test_executables += executable('gem_eio', 'gem_eio.c',
+foreach prog : i915_progs
+	prog_name = 'i915_' + prog
+	test_executables += executable(prog_name,
+		   join_paths('i915', prog + '.c'),
+		   dependencies : test_deps,
+		   install_dir : libexecdir,
+		   install_rpath : libexecdir_rpathdir,
+		   install : true)
+	test_list += prog_name
+endforeach
+
+foreach prog : gem_progs + gen3_progs
+	test_executables += executable(prog,
+		   join_paths('i915', prog + '.c'),
+		   dependencies : test_deps,
+		   install_dir : libexecdir,
+		   install_rpath : libexecdir_rpathdir,
+		   install : true)
+	test_list += prog
+endforeach
+
+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_progs += 'gem_eio'
+test_list += 'gem_eio'
 
-test_executables += executable('gem_mocs_settings', 'gem_mocs_settings.c',
+test_executables += executable('gem_mocs_settings',
+	   join_paths('i915', 'gem_mocs_settings.c'),
 	   dependencies : test_deps + [ lib_igt_perf ],
 	   install_dir : libexecdir,
 	   install_rpath : libexecdir_rpathdir,
 	   install : true)
-test_progs += 'gem_mocs_settings'
+test_list += 'gem_mocs_settings'
 
 test_executables += executable('perf_pmu', 'perf_pmu.c',
 	   dependencies : test_deps + [ lib_igt_perf ],
 	   install_dir : libexecdir,
 	   install_rpath : libexecdir_rpathdir,
 	   install : true)
-test_progs += 'perf_pmu'
+test_list += 'perf_pmu'
 
 executable('testdisplay', ['testdisplay.c', 'testdisplay_hotplug.c'],
 	   dependencies : test_deps,
 	   install_dir : libexecdir,
 	   install_rpath : libexecdir_rpathdir,
 	   install : true)
-test_progs += 'testdisplay'
+test_list += 'testdisplay'
 
 subdir('amdgpu')
 
 gen_testlist = find_program('generate_testlist.sh')
-test_list = custom_target('testlist',
+test_list_target = custom_target('testlist',
 	      output : 'test-list.txt',
-	      command : [ gen_testlist, '@OUTPUT@', test_progs ],
+	      command : [ gen_testlist, '@OUTPUT@', test_list ],
 	      install : true,
 	      install_dir : libexecdir)
 
 test_script = find_program('igt_command_line.sh')
-foreach prog : test_progs
-	test('testcase check: ' + prog, test_script,
-			args : prog)
+foreach prog : test_list
+	test('testcase check: ' + prog, test_script, args : prog)
 endforeach
 
-executable('gem_stress', 'gem_stress.c',
+executable('gem_stress', 'i915/gem_stress.c',
 	   install : true,
 	   install_dir : libexecdir,
 	   install_rpath : libexecdir_rpathdir,
@@ -309,7 +342,7 @@ hang_progs = [
 	'gem_non_secure_batch',
 ]
 foreach prog : hang_progs
-	executable(prog, prog + '.c',
+	executable(prog, join_paths('i915', prog + '.c'),
 			dependencies : igt_deps,
 			install : false)
 endforeach
-- 
2.17.2

_______________________________________________
igt-dev mailing list
igt-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/igt-dev

  parent reply	other threads:[~2018-10-19 10:20 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-18 12:58 [igt-dev] [PATCH i-g-t] tests: Introduce i915 directory Arkadiusz Hiler
2018-10-18 13:35 ` Lionel Landwerlin
2018-10-19  8:11   ` Arkadiusz Hiler
2018-10-19  8:33     ` Daniel Vetter
2018-10-18 13:44 ` [igt-dev] ✓ Fi.CI.BAT: success for " Patchwork
2018-10-18 20:24 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork
2018-10-18 21:21 ` [igt-dev] [PATCH i-g-t] " Chris Wilson
2018-10-19  8:48 ` [igt-dev] [PATCH i-g-t v2] " Arkadiusz Hiler
2018-10-19 10:02   ` Petri Latvala
2018-10-19 10:12     ` Chris Wilson
2018-10-19 10:25       ` Petri Latvala
2018-10-19 10:20 ` Arkadiusz Hiler [this message]
2018-10-22 19:12 ` [igt-dev] ✓ Fi.CI.BAT: success for tests: Introduce i915 directory (rev3) Patchwork
2018-10-22 21:29 ` [igt-dev] ✓ Fi.CI.IGT: " Patchwork

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181019102047.15257-1-arkadiusz.hiler@intel.com \
    --to=arkadiusz.hiler@intel.com \
    --cc=igt-dev@lists.freedesktop.org \
    --cc=martin.peres@linux.intel.com \
    --cc=petri.latvala@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.