[igt-dev] [PATCH i-g-t v3 5/6] tests/i915: Improve test documentation

Mauro Carvalho Chehab mauro.chehab at linux.intel.com
Tue May 9 09:07:37 UTC 2023


From: Mauro Carvalho Chehab <mchehab at kernel.org>

Currently, test documentation inside IGT describe macros and testlists.

There is also some internal documentation mapping features into
buckets, which is used by some Intel CI scripts.

Place them inside i915 comments.

Signed-off-by: Mauro Carvalho Chehab <mchehab at kernel.org>
---
 tests/core_auth.c                           |   21 +
 tests/core_getclient.c                      |    8 +
 tests/core_getstats.c                       |    8 +
 tests/core_getversion.c                     |    8 +
 tests/core_hotunplug.c                      |   39 +
 tests/core_setmaster.c                      |   15 +
 tests/core_setmaster_vs_auth.c              |    8 +
 tests/debugfs_test.c                        |   25 +
 tests/device_reset.c                        |   21 +
 tests/dmabuf.c                              |    8 +
 tests/drm_mm.c                              |    8 +
 tests/dumb_buffer.c                         |   18 +
 tests/i915/api_intel_allocator.c            |   41 +
 tests/i915/api_intel_bb.c                   |   63 +
 tests/i915/drm_fdinfo.c                     |   44 +
 tests/i915/gem_bad_reloc.c                  |   19 +
 tests/i915/gem_barrier_race.c               |   11 +
 tests/i915/gem_basic.c                      |   24 +
 tests/i915/gem_blits.c                      |    7 +
 tests/i915/gem_busy.c                       |   39 +
 tests/i915/gem_caching.c                    |   12 +
 tests/i915/gem_ccs.c                        |   33 +
 tests/i915/gem_close.c                      |    9 +
 tests/i915/gem_close_race.c                 |   45 +
 tests/i915/gem_create.c                     |   50 +
 tests/i915/gem_cs_tlb.c                     |    8 +
 tests/i915/gem_ctx_bad_destroy.c            |   14 +
 tests/i915/gem_ctx_create.c                 |   69 +
 tests/i915/gem_ctx_engines.c                |   17 +
 tests/i915/gem_ctx_exec.c                   |   33 +
 tests/i915/gem_ctx_freq.c                   |    7 +
 tests/i915/gem_ctx_isolation.c              |   23 +
 tests/i915/gem_ctx_param.c                  |   88 ++
 tests/i915/gem_ctx_persistence.c            |   69 +
 tests/i915/gem_ctx_shared.c                 |   34 +
 tests/i915/gem_ctx_sseu.c                   |   14 +
 tests/i915/gem_ctx_switch.c                 |  365 +++++
 tests/i915/gem_eio.c                        |   93 ++
 tests/i915/gem_evict_alignment.c            |   17 +
 tests/i915/gem_evict_everything.c           |   61 +
 tests/i915/gem_exec_alignment.c             |   18 +
 tests/i915/gem_exec_async.c                 |   10 +
 tests/i915/gem_exec_await.c                 |    9 +
 tests/i915/gem_exec_balancer.c              |  117 ++
 tests/i915/gem_exec_basic.c                 |   11 +
 tests/i915/gem_exec_big.c                   |   10 +
 tests/i915/gem_exec_capture.c               |   30 +
 tests/i915/gem_exec_create.c                |   26 +
 tests/i915/gem_exec_endless.c               |    7 +
 tests/i915/gem_exec_fair.c                  |   92 ++
 tests/i915/gem_exec_fence.c                 |  240 +++
 tests/i915/gem_exec_flush.c                 | 1496 +++++++++++++++++++
 tests/i915/gem_exec_gttfill.c               |   23 +
 tests/i915/gem_exec_latency.c               |   30 +
 tests/i915/gem_exec_lut_handle.c            |    7 +
 tests/i915/gem_exec_nop.c                   |   55 +
 tests/i915/gem_exec_parallel.c              |   25 +
 tests/i915/gem_exec_params.c                |  103 ++
 tests/i915/gem_exec_reloc.c                 |  593 ++++++++
 tests/i915/gem_exec_schedule.c              |  182 +++
 tests/i915/gem_exec_store.c                 |   21 +
 tests/i915/gem_exec_suspend.c               |   81 +
 tests/i915/gem_exec_whisper.c               |  189 +++
 tests/i915/gem_exercise_blt.c               |   12 +
 tests/i915/gem_fd_exhaustion.c              |    6 +
 tests/i915/gem_fence_thrash.c               |   19 +
 tests/i915/gem_fence_upload.c               |   16 +
 tests/i915/gem_fenced_exec_thrash.c         |   18 +
 tests/i915/gem_flink_basic.c                |   21 +
 tests/i915/gem_flink_race.c                 |   10 +
 tests/i915/gem_gpgpu_fill.c                 |    7 +
 tests/i915/gem_gtt_cpu_tlb.c                |    8 +
 tests/i915/gem_gtt_hog.c                    |    6 +
 tests/i915/gem_gtt_speed.c                  |    6 +
 tests/i915/gem_huc_copy.c                   |   11 +
 tests/i915/gem_linear_blits.c               |   17 +
 tests/i915/gem_lmem_evict.c                 |    9 +
 tests/i915/gem_lmem_swapping.c              |   89 ++
 tests/i915/gem_lut_handle.c                 |    7 +
 tests/i915/gem_madvise.c                    |   25 +
 tests/i915/gem_media_fill.c                 |    8 +
 tests/i915/gem_media_vme.c                  |    8 +
 tests/i915/gem_mmap.c                       |   57 +
 tests/i915/gem_mmap_gtt.c                   |  488 ++++++
 tests/i915/gem_mmap_offset.c                |   36 +
 tests/i915/gem_mmap_wc.c                    |   67 +
 tests/i915/gem_partial_pwrite_pread.c       |   62 +
 tests/i915/gem_pipe_control_store_loop.c    |   12 +
 tests/i915/gem_ppgtt.c                      |   21 +
 tests/i915/gem_pread.c                      |   17 +
 tests/i915/gem_pread_after_blit.c           |   29 +
 tests/i915/gem_pwrite.c                     |   67 +
 tests/i915/gem_pwrite_snooped.c             |    8 +
 tests/i915/gem_pxp.c                        |   79 +
 tests/i915/gem_read_read_speed.c            |   61 +
 tests/i915/gem_readwrite.c                  |   15 +
 tests/i915/gem_reg_read.c                   |   11 +
 tests/i915/gem_render_copy.c                |  120 ++
 tests/i915/gem_render_copy_redux.c          |   17 +
 tests/i915/gem_render_linear_blits.c        |   16 +
 tests/i915/gem_render_tiled_blits.c         |   27 +
 tests/i915/gem_request_retire.c             |    8 +
 tests/i915/gem_reset_stats.c                |  178 +++
 tests/i915/gem_ringfill.c                   |  111 ++
 tests/i915/gem_set_tiling_vs_blt.c          |   15 +
 tests/i915/gem_set_tiling_vs_gtt.c          |    8 +
 tests/i915/gem_set_tiling_vs_pwrite.c       |    8 +
 tests/i915/gem_shrink.c                     |  107 ++
 tests/i915/gem_softpin.c                    |  113 ++
 tests/i915/gem_spin_batch.c                 |   40 +
 tests/i915/gem_streaming_writes.c           |   29 +
 tests/i915/gem_stress.c                     |    7 +
 tests/i915/gem_sync.c                       |  225 +++
 tests/i915/gem_tiled_blits.c                |   17 +
 tests/i915/gem_tiled_fence_blits.c          |   15 +
 tests/i915/gem_tiled_partial_pwrite_pread.c |   12 +
 tests/i915/gem_tiled_pread_basic.c          |    8 +
 tests/i915/gem_tiled_pread_pwrite.c         |    8 +
 tests/i915/gem_tiled_swapping.c             |   10 +
 tests/i915/gem_tiled_wb.c                   |   10 +
 tests/i915/gem_tiled_wc.c                   |    7 +
 tests/i915/gem_tiling_max_stride.c          |    8 +
 tests/i915/gem_unfence_active_buffers.c     |    8 +
 tests/i915/gem_unref_active_buffers.c       |    8 +
 tests/i915/gem_userptr_blits.c              |  280 ++++
 tests/i915/gem_vm_create.c                  |   19 +
 tests/i915/gem_wait.c                       |   49 +
 tests/i915/gem_watchdog.c                   |   11 +
 tests/i915/gem_workarounds.c                |   40 +
 tests/i915/gen3_mixed_blits.c               |    7 +
 tests/i915/gen3_render_linear_blits.c       |    7 +
 tests/i915/gen3_render_mixed_blits.c        |    7 +
 tests/i915/gen3_render_tiledx_blits.c       |    7 +
 tests/i915/gen3_render_tiledy_blits.c       |    7 +
 tests/i915/gen7_exec_parse.c                |   31 +
 tests/i915/gen9_exec_parse.c                |   47 +
 tests/i915/i915_fb_tiling.c                 |    8 +
 tests/i915/i915_getparams_basic.c           |   12 +
 tests/i915/i915_hangman.c                   |   41 +
 tests/i915/i915_hwmon.c                     |   12 +
 tests/i915/i915_module_load.c               |   30 +
 tests/i915/i915_pciid.c                     |    8 +
 tests/i915/i915_pipe_stress.c               |   17 +
 tests/i915/i915_pm_backlight.c              |   25 +
 tests/i915/i915_pm_dc.c                     |   41 +
 tests/i915/i915_pm_freq_api.c               |   11 +
 tests/i915/i915_pm_freq_mult.c              |   10 +
 tests/i915/i915_pm_lpsp.c                   |   12 +
 tests/i915/i915_pm_rc6_residency.c          |   16 +
 tests/i915/i915_pm_rpm.c                    |  185 +++
 tests/i915/i915_pm_rps.c                    |   34 +
 tests/i915/i915_pm_sseu.c                   |    8 +
 tests/i915/i915_power.c                     |    9 +
 tests/i915/i915_query.c                     |   63 +
 tests/i915/i915_selftest.c                  |   16 +
 tests/i915/i915_suspend.c                   |   57 +
 tests/i915/perf.c                           |  144 ++
 tests/i915/perf_pmu.c                       |  138 ++
 tests/i915/sysfs_defaults.c                 |    7 +
 tests/i915/sysfs_heartbeat_interval.c       |   19 +
 tests/i915/sysfs_preempt_timeout.c          |   13 +
 tests/i915/sysfs_timeslice_duration.c       |   15 +
 tests/prime_busy.c                          |   18 +
 tests/prime_mmap.c                          |   29 +
 tests/prime_mmap_coherency.c                |   14 +
 tests/prime_self_import.c                   |   37 +
 tests/prime_vgem.c                          |   99 ++
 tests/sw_sync.c                             |   42 +
 tests/syncobj_basic.c                       |   30 +
 tests/syncobj_timeline.c                    |  394 +++++
 tests/syncobj_wait.c                        |  144 ++
 tests/vgem_basic.c                          |   84 ++
 tests/vgem_slow.c                           |    8 +
 173 files changed, 9706 insertions(+)

diff --git a/tests/core_auth.c b/tests/core_auth.c
index 257f124820a4..ee7fbaabfa92 100644
--- a/tests/core_auth.c
+++ b/tests/core_auth.c
@@ -42,6 +42,27 @@
 #include <sys/poll.h>
 #include <sys/resource.h>
 #include "drm.h"
+/**
+ * TEST: core auth
+ * Description: Call drmGetMagic() and drmAuthMagic() and see if it behaves.
+ * Feature: core
+ *
+ * SUBTEST: basic-auth
+ * Description: Test magic numbers for master and slave.
+ * Run type: BAT
+ *
+ * SUBTEST: getclient-master-drop
+ * Description: Use 2 clients, check second is authenticated even when first dropped.
+ * Run type: FULL
+ *
+ * SUBTEST: getclient-simple
+ * Description: Check drm client is always authenticated.
+ * Run type: FULL
+ *
+ * SUBTEST: many-magics
+ * Description: Test authentication and magic numbers uniqness for rlimit slaves.
+ * Run type: FULL
+ */
 
 #ifndef __linux__
 # include <pthread.h>
diff --git a/tests/core_getclient.c b/tests/core_getclient.c
index 40a1c194de19..1ab56e9f304c 100644
--- a/tests/core_getclient.c
+++ b/tests/core_getclient.c
@@ -31,6 +31,14 @@
 #include <stdlib.h>
 #include <errno.h>
 
+/**
+ * TEST: core getclient
+ * Description: Tests the DRM_IOCTL_GET_CLIENT ioctl.
+ * Feature: core
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Tests the DRM_IOCTL_GET_CLIENT ioctl.");
 
diff --git a/tests/core_getstats.c b/tests/core_getstats.c
index fde27cdc6485..f2b1abac738e 100644
--- a/tests/core_getstats.c
+++ b/tests/core_getstats.c
@@ -32,6 +32,14 @@
 
 #include <drm.h>
 
+/**
+ * TEST: core getstats
+ * Description: Tests the DRM_IOCTL_GET_STATS ioctl.
+ * Feature: core
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 /**
  * Checks DRM_IOCTL_GET_STATS.
diff --git a/tests/core_getversion.c b/tests/core_getversion.c
index f6953b313cac..ae6fc8f8d7d9 100644
--- a/tests/core_getversion.c
+++ b/tests/core_getversion.c
@@ -28,6 +28,14 @@
 #include "igt.h"
 #include <string.h>
 #include <sys/ioctl.h>
+/**
+ * TEST: core getversion
+ * Description: Tests the DRM_IOCTL_GET_VERSION ioctl and libdrm's drmGetVersion() interface to it.
+ * Feature: core
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Tests the DRM_IOCTL_GET_VERSION ioctl and libdrm's "
 		     "drmGetVersion() interface to it.");
diff --git a/tests/core_hotunplug.c b/tests/core_hotunplug.c
index e79eb1ed4c23..472e9237ddc2 100644
--- a/tests/core_hotunplug.c
+++ b/tests/core_hotunplug.c
@@ -39,6 +39,45 @@
 #include "igt_kmod.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: core hotunplug
+ * Description: Examine behavior of a driver on device hot unplug
+ * Feature: SMI, core
+ *
+ * SUBTEST: hotrebind
+ * Description:
+ *   Check if the driver can be cleanly rebound to a device with a still open hot unbound driver
+ *   instance
+ * Run type: FULL
+ *
+ * SUBTEST: hotrebind-lateclose
+ * Description: Check if a hot unbound driver instance still open after hot rebind can be cleanly released
+ * Run type: FULL
+ *
+ * SUBTEST: hotreplug
+ * Description: Check if a hot unplugged and still open device can be cleanly restored
+ * Run type: FULL
+ *
+ * SUBTEST: hotreplug-lateclose
+ * Description: Check if an instance of a still open while hot replugged device can be cleanly released
+ * Run type: FULL
+ *
+ * SUBTEST: hotunbind-rebind
+ * Description: Check if the driver can be cleanly unbound from an open device, then released and rebound
+ * Run type: FULL
+ *
+ * SUBTEST: hotunplug-rescan
+ * Description: Check if an open device can be cleanly unplugged, then released and restored
+ * Run type: FULL
+ *
+ * SUBTEST: unbind-rebind
+ * Description: Check if the driver can be cleanly unbound from a device believed to be closed, then rebound
+ * Run type: BAT
+ *
+ * SUBTEST: unplug-rescan
+ * Description: Check if a device believed to be closed can be cleanly unplugged, then restored
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Examine behavior of a driver on device hot unplug");
 
diff --git a/tests/core_setmaster.c b/tests/core_setmaster.c
index 470f9441dd69..95a131a4d3c9 100644
--- a/tests/core_setmaster.c
+++ b/tests/core_setmaster.c
@@ -38,6 +38,21 @@
 #include <stdio.h>
 #include <string.h>
 #include <sys/stat.h>
+/**
+ * TEST: core setmaster
+ * Description: Check that Drop/SetMaster behaves correctly wrt root/user access
+ * Feature: core
+ * Run type: FULL
+ *
+ * SUBTEST: master-drop-set-root
+ * Description: Ensure that root can Set/DropMaster
+ *
+ * SUBTEST: master-drop-set-shared-fd
+ * Description: Check the Set/DropMaster behaviour on shared fd
+ *
+ * SUBTEST: master-drop-set-user
+ * Description: Ensure first normal user can Set/DropMaster
+ */
 
 IGT_TEST_DESCRIPTION("Check that Drop/SetMaster behaves correctly wrt root/user"
 		     " access");
diff --git a/tests/core_setmaster_vs_auth.c b/tests/core_setmaster_vs_auth.c
index 0b4b8613c6f6..37bb378ab011 100644
--- a/tests/core_setmaster_vs_auth.c
+++ b/tests/core_setmaster_vs_auth.c
@@ -40,6 +40,14 @@
 #include <string.h>
 
 #include "igt_device.h"
+/**
+ * TEST: core setmaster vs auth
+ * Description: Check that drop/setMaster correctly transfer master state
+ * Feature: core
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check that drop/setMaster correctly transfer master "
 		     "state");
diff --git a/tests/debugfs_test.c b/tests/debugfs_test.c
index 8c775158f157..39b001671bcc 100644
--- a/tests/debugfs_test.c
+++ b/tests/debugfs_test.c
@@ -29,6 +29,31 @@
 #include <fcntl.h>
 #include <sys/types.h>
 #include <dirent.h>
+/**
+ * TEST: debugfs test
+ * Description: Read entries from debugfs, hwmon and sysfs paths.
+ * Feature: core
+ *
+ * SUBTEST: basic-hwmon
+ * Description: Read all entries from hwmon path
+ * Run type: BAT
+ *
+ * SUBTEST: read_all_entries
+ * Description: Read all entries from debugfs path.
+ * Run type: BAT
+ *
+ * SUBTEST: read_all_entries_display_off
+ * Description: Read all debugfs entries with display on/off.
+ * Run type: FULL
+ *
+ * SUBTEST: read_all_entries_display_on
+ * Description: Read all debugfs entries with display on/off.
+ * Run type: FULL
+ *
+ * SUBTEST: sysfs
+ * Description: Read all entries from sysfs path.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Read entries from debugfs, hwmon and sysfs paths.");
 
diff --git a/tests/device_reset.c b/tests/device_reset.c
index 39ee8dca9fa2..0c23aecff595 100644
--- a/tests/device_reset.c
+++ b/tests/device_reset.c
@@ -14,6 +14,27 @@
 #include "igt_pci.h"
 #include "igt_sysfs.h"
 #include "igt_kmod.h"
+/**
+ * TEST: device reset
+ * Description: Examine behavior of a driver on device sysfs reset
+ * Run type: FULL
+ *
+ * SUBTEST: cold-reset-bound
+ * Description: Cold Resets device with bound driver
+ * Feature: reset
+ *
+ * SUBTEST: reset-bound
+ * Description: Resets device with bound driver
+ * Feature: reset
+ *
+ * SUBTEST: unbind-cold-reset-rebind
+ * Description: Unbinds driver from device, initiates cold reset then rebinds driver to device
+ * Feature: reset
+ *
+ * SUBTEST: unbind-reset-rebind
+ * Description: Unbinds driver from device, initiates reset then rebinds driver to device
+ * Feature: reset, sriov-reset
+ */
 
 IGT_TEST_DESCRIPTION("Examine behavior of a driver on device sysfs reset");
 
diff --git a/tests/dmabuf.c b/tests/dmabuf.c
index a72cf3be1377..4bc9b35b619d 100644
--- a/tests/dmabuf.c
+++ b/tests/dmabuf.c
@@ -23,6 +23,14 @@
 
 #include "igt.h"
 #include "igt_kmod.h"
+/**
+ * TEST: dmabuf
+ * Description: Kernel selftests for the dmabuf API
+ * Feature: mapping, prime
+ * Run type: BAT
+ *
+ * SUBTEST: all-tests
+ */
 
 IGT_TEST_DESCRIPTION("Kernel selftests for the dmabuf API");
 
diff --git a/tests/drm_mm.c b/tests/drm_mm.c
index 2052b115cb98..4cc2891ee129 100644
--- a/tests/drm_mm.c
+++ b/tests/drm_mm.c
@@ -23,6 +23,14 @@
 
 #include "igt.h"
 #include "igt_kmod.h"
+/**
+ * TEST: drm mm
+ * Description: Basic sanity check of DRM's range manager (struct drm_mm)
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: all-tests
+ */
 
 IGT_TEST_DESCRIPTION("Basic sanity check of DRM's range manager (struct drm_mm)");
 
diff --git a/tests/dumb_buffer.c b/tests/dumb_buffer.c
index ded6b809c262..0c7ce714eb6c 100644
--- a/tests/dumb_buffer.c
+++ b/tests/dumb_buffer.c
@@ -49,6 +49,24 @@
 #include "drmtest.h"
 #include "igt_aux.h"
 #include "ioctl_wrappers.h"
+/**
+ * TEST: dumb buffer
+ * Description: This is a test for the generic dumb buffer interface.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: create-clear
+ *
+ * SUBTEST: create-valid-dumb
+ *
+ * SUBTEST: invalid-bpp
+ *
+ * SUBTEST: map-invalid-size
+ *
+ * SUBTEST: map-uaf
+ *
+ * SUBTEST: map-valid
+ */
 
 IGT_TEST_DESCRIPTION("This is a test for the generic dumb buffer interface.");
 
diff --git a/tests/i915/api_intel_allocator.c b/tests/i915/api_intel_allocator.c
index e9039a214903..f0144821c911 100644
--- a/tests/i915/api_intel_allocator.c
+++ b/tests/i915/api_intel_allocator.c
@@ -9,6 +9,47 @@
 #include "igt.h"
 #include "igt_aux.h"
 #include "intel_allocator.h"
+/**
+ * TEST: api intel allocator
+ * Feature: igt_core
+ * Run type: FULL
+ *
+ * SUBTEST: alloc-simple
+ *
+ * SUBTEST: default-alignment
+ * Description:
+ *   For simple allocator check does default alignment is properly handled in open and alloc
+ *   functions
+ *
+ * SUBTEST: execbuf-with-allocator
+ *
+ * SUBTEST: fork-simple-once
+ *
+ * SUBTEST: fork-simple-stress
+ *
+ * SUBTEST: fork-simple-stress-signal
+ *
+ * SUBTEST: gem-pool
+ * Description: Verifies creating and executing bb from gem pool
+ *
+ * SUBTEST: open-vm
+ *
+ * SUBTEST: reloc-allocator
+ *
+ * SUBTEST: reopen
+ *
+ * SUBTEST: reopen-fork
+ *
+ * SUBTEST: reserve-simple
+ *
+ * SUBTEST: simple-allocator
+ *
+ * SUBTEST: standalone
+ *
+ * SUBTEST: two-level-inception
+ *
+ * SUBTEST: two-level-inception-interruptible
+ */
 
 #define OBJ_SIZE 1024
 
diff --git a/tests/i915/api_intel_bb.c b/tests/i915/api_intel_bb.c
index 46633b0385e1..198a29eb4f26 100644
--- a/tests/i915/api_intel_bb.c
+++ b/tests/i915/api_intel_bb.c
@@ -41,6 +41,69 @@
 #include "i915/gem_vm.h"
 #include "i915/i915_crc.h"
 #include "i915/i915_blt.h"
+/**
+ * TEST: api intel bb
+ * Description: intel_bb API check.
+ * Feature: igt_core
+ * Run type: FULL
+ *
+ * SUBTEST: add-remove-objects
+ *
+ * SUBTEST: bb-with-allocator
+ *
+ * SUBTEST: blit-noreloc-keep-cache
+ *
+ * SUBTEST: blit-noreloc-purge-cache
+ *
+ * SUBTEST: blit-reloc-keep-cache
+ *
+ * SUBTEST: blit-reloc-purge-cache
+ *
+ * SUBTEST: crc32
+ * Description: Compare cpu and gpu crc32 sums on input object
+ *
+ * SUBTEST: delta-check
+ *
+ * SUBTEST: destroy-bb
+ *
+ * SUBTEST: full-batch
+ *
+ * SUBTEST: intel-bb-blit-none
+ *
+ * SUBTEST: intel-bb-blit-x
+ *
+ * SUBTEST: intel-bb-blit-y
+ *
+ * SUBTEST: lot-of-buffers
+ *
+ * SUBTEST: misplaced-blitter
+ * Description: Execute intel_bb with set of engines provided by userspace
+ *
+ * SUBTEST: object-noreloc-keep-cache-simple
+ *
+ * SUBTEST: object-noreloc-purge-cache-simple
+ *
+ * SUBTEST: object-reloc-keep-cache
+ *
+ * SUBTEST: object-reloc-purge-cache
+ *
+ * SUBTEST: offset-control
+ *
+ * SUBTEST: purge-bb
+ *
+ * SUBTEST: render
+ *
+ * SUBTEST: render-ccs
+ *
+ * SUBTEST: reset-bb
+ * Description: Ensure reset is possible on fresh bb
+ *
+ * SUBTEST: reset-flags
+ *
+ * SUBTEST: simple-bb
+ *
+ * SUBTEST: simple-bb-ctx
+ */
 
 #define PAGE_SIZE 4096
 
diff --git a/tests/i915/drm_fdinfo.c b/tests/i915/drm_fdinfo.c
index 1b1247553a32..be1d62a35988 100644
--- a/tests/i915/drm_fdinfo.c
+++ b/tests/i915/drm_fdinfo.c
@@ -29,6 +29,50 @@
 #include "i915/gem.h"
 #include "i915/gem_vm.h"
 #include "intel_ctx.h"
+/**
+ * TEST: drm fdinfo
+ * Description: Test the i915 drm fdinfo data
+ * Feature: client_busyness
+ * Run type: FULL
+ *
+ * SUBTEST: all-busy-check-all
+ *
+ * SUBTEST: all-busy-idle-check-all
+ *
+ * SUBTEST: basics
+ *
+ * SUBTEST: busy
+ *
+ * SUBTEST: busy-check-all
+ *
+ * SUBTEST: busy-hang
+ *
+ * SUBTEST: busy-idle
+ *
+ * SUBTEST: busy-idle-check-all
+ *
+ * SUBTEST: idle
+ *
+ * SUBTEST: isolation
+ *
+ * SUBTEST: most-busy-check-all
+ *
+ * SUBTEST: most-busy-idle-check-all
+ *
+ * SUBTEST: virtual-busy
+ *
+ * SUBTEST: virtual-busy-all
+ *
+ * SUBTEST: virtual-busy-hang
+ *
+ * SUBTEST: virtual-busy-hang-all
+ *
+ * SUBTEST: virtual-busy-idle
+ *
+ * SUBTEST: virtual-busy-idle-all
+ *
+ * SUBTEST: virtual-idle
+ */
 
 IGT_TEST_DESCRIPTION("Test the i915 drm fdinfo data");
 
diff --git a/tests/i915/gem_bad_reloc.c b/tests/i915/gem_bad_reloc.c
index 478e78a6660e..d5336b62d37b 100644
--- a/tests/i915/gem_bad_reloc.c
+++ b/tests/i915/gem_bad_reloc.c
@@ -41,6 +41,25 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem bad reloc
+ * Description:
+ *   Simulates SNA behaviour using negative self-relocations for STATE_BASE_ADDRESS command
+ *   packets.
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: negative-reloc
+ * Description:
+ *   SNA behaviour is compressing batch buffer which leads to negative relocation deltas.
+ *   Negative self-relocation happening with real offset 0.
+ *
+ * SUBTEST: negative-reloc-bltcopy
+ * Description: Exercising blitter operation with negative reloc.
+ *
+ * SUBTEST: negative-reloc-lut
+ * Description: Similar to previous test with flags for lut_based_execbuffer.
+ */
 
 IGT_TEST_DESCRIPTION("Simulates SNA behaviour using negative self-relocations"
 		     " for STATE_BASE_ADDRESS command packets.");
diff --git a/tests/i915/gem_barrier_race.c b/tests/i915/gem_barrier_race.c
index f446aab62263..0b1da7713520 100644
--- a/tests/i915/gem_barrier_race.c
+++ b/tests/i915/gem_barrier_race.c
@@ -17,6 +17,17 @@
 #include "i915/gem_create.h"
 #include "i915/gem_engine_topology.h"
 #include "i915/perf.h"
+/**
+ * TEST: gem barrier race
+ * Description: Exercise engine barriers and their interaction with other subsystems
+ * Feature: core
+ * Run type: FULL
+ *
+ * SUBTEST: remote-request
+ * Description:
+ *   Race intel_context_prepare_remote_request against
+ *   intel_context_active_acquire/release
+ */
 
 IGT_TEST_DESCRIPTION("Exercise engine barriers and their interaction with other subsystems");
 
diff --git a/tests/i915/gem_basic.c b/tests/i915/gem_basic.c
index 3dd790c6c1ac..8605429799aa 100644
--- a/tests/i915/gem_basic.c
+++ b/tests/i915/gem_basic.c
@@ -41,6 +41,30 @@
 #include "igt.h"
 #include "igt_types.h"
 #include "lib/igt_device_scan.h"
+/**
+ * TEST: gem basic
+ * Description: Tests basic gem_create and gem_close IOCTLs
+ *
+ * SUBTEST: bad-close
+ * Description: Verify that gem_close fails with bad params.
+ * Feature: gem_core
+ * Run type: BAT
+ *
+ * SUBTEST: create-close
+ * Description: Verify basic functionality of gem_create and gem_close.
+ * Feature: gem_core
+ * Run type: BAT
+ *
+ * SUBTEST: create-fd-close
+ * Description: Verify that closing drm driver is possible with opened gem object.
+ * Feature: gem_core
+ * Run type: BAT
+ *
+ * SUBTEST: multigpu-create-close
+ * Description: Verify basic functionality of gem_create and gem_close on multi-GPU.
+ * Feature: gem_core, multigpu
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Tests basic gem_create and gem_close IOCTLs");
 
diff --git a/tests/i915/gem_blits.c b/tests/i915/gem_blits.c
index 5fbb384dbe2e..acc1adc165f3 100644
--- a/tests/i915/gem_blits.c
+++ b/tests/i915/gem_blits.c
@@ -28,6 +28,13 @@
 #include "igt.h"
 #include "igt_x86.h"
 #include "i915/i915_blt.h"
+/**
+ * TEST: gem blits
+ * Feature: blitter
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ */
 
 #define BCS_SWCTRL 0x22200
 #define BCS_SRC_Y (1 << 0)
diff --git a/tests/i915/gem_busy.c b/tests/i915/gem_busy.c
index 08a500a9ec7a..38d66f8f292a 100644
--- a/tests/i915/gem_busy.c
+++ b/tests/i915/gem_busy.c
@@ -30,6 +30,45 @@
 #include "igt.h"
 #include "igt_rand.h"
 #include "igt_vgem.h"
+/**
+ * TEST: gem busy
+ * Description: Basic check of busy-ioctl ABI.
+ * Feature: cmd_submission
+ *
+ * SUBTEST: busy
+ * Description: Basic test to check busyness of each engine.
+ * Run type: FULL
+ *
+ * SUBTEST: close-race
+ * Description: Test to check race condition by randomly closing the handle using gem_close.
+ * Run type: FULL
+ *
+ * SUBTEST: extended
+ * Description: Extended test to check busyness of dwstore-capable engines.
+ * Run type: FULL
+ *
+ * SUBTEST: hang
+ * Description: Basic test to check hang state behaviour of engines with increased timeout.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-extended
+ * Description:
+ *   Extended test to check hang state behaviour of dwstore-capable engines with increased
+ *   timeout.
+ * Run type: FULL
+ *
+ * SUBTEST: parallel
+ * Description:
+ *   Extended test to check busyness of dwstore-capable engines while doing parallel
+ *   execution.
+ * Run type: FULL
+ *
+ * SUBTEST: semaphore
+ * Description:
+ *   Test to check busyness of engine on submitting a new batch while engine is busy in executing
+ *   previous batch.
+ * Run type: FULL
+ */
 
 #define PAGE_ALIGN(x) ALIGN(x, 4096)
 
diff --git a/tests/i915/gem_caching.c b/tests/i915/gem_caching.c
index 6e944f0acb7b..d24e6cce059b 100644
--- a/tests/i915/gem_caching.c
+++ b/tests/i915/gem_caching.c
@@ -40,6 +40,18 @@
 #include "i915/gem.h"
 #include "igt.h"
 #include "i915/i915_blt.h"
+/**
+ * TEST: gem caching
+ * Description: Test snoop consistency when touching partial cachelines.
+ * Feature: caching
+ * Run type: FULL
+ *
+ * SUBTEST: read-writes
+ *
+ * SUBTEST: reads
+ *
+ * SUBTEST: writes
+ */
 
 IGT_TEST_DESCRIPTION("Test snoop consistency when touching partial"
 		     " cachelines.");
diff --git a/tests/i915/gem_ccs.c b/tests/i915/gem_ccs.c
index d25e00fc89f3..ff6504b3c1da 100644
--- a/tests/i915/gem_ccs.c
+++ b/tests/i915/gem_ccs.c
@@ -15,6 +15,39 @@
 #include "lib/intel_chipset.h"
 #include "i915/i915_blt.h"
 #include "i915/intel_mocs.h"
+/**
+ * TEST: gem ccs
+ * Description: Exercise gen12 blitter with and without flatccs compression
+ * Run type: FULL
+ *
+ * SUBTEST: block-copy-compressed
+ * Description: Check block-copy flatccs compressed blit
+ * Feature: flat_ccs_mapping
+ *
+ * SUBTEST: block-copy-uncompressed
+ * Description: Check block-copy uncompressed blit
+ * Feature: ccs_uncompressed, flat_ccs_mapping
+ *
+ * SUBTEST: block-multicopy-compressed
+ * Description: Check block-multicopy flatccs compressed blit
+ * Feature: flat_ccs_mapping
+ *
+ * SUBTEST: block-multicopy-inplace
+ * Description: Check block-multicopy flatccs inplace decompression blit
+ * Feature: flat_ccs_mapping
+ *
+ * SUBTEST: ctrl-surf-copy
+ * Description: Check flatccs data can be copied from/to surface
+ * Feature: flat_ccs_mapping
+ *
+ * SUBTEST: ctrl-surf-copy-new-ctx
+ * Description: Check flatccs data are physically tagged and visible in different contexts
+ * Feature: flat_ccs_mapping
+ *
+ * SUBTEST: suspend-resume
+ * Description: Check flatccs data persists after suspend / resume (S0)
+ * Feature: flat_ccs_mapping, suspend
+ */
 
 IGT_TEST_DESCRIPTION("Exercise gen12 blitter with and without flatccs compression");
 
diff --git a/tests/i915/gem_close.c b/tests/i915/gem_close.c
index e1ae701c17a1..212fd8e9062a 100644
--- a/tests/i915/gem_close.c
+++ b/tests/i915/gem_close.c
@@ -25,6 +25,15 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_types.h"
+/**
+ * TEST: gem close
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ *
+ * SUBTEST: many-handles-one-vma
+ */
 
 static int batch_create(int fd)
 {
diff --git a/tests/i915/gem_close_race.c b/tests/i915/gem_close_race.c
index 9c646f4267af..2b90a98258e7 100644
--- a/tests/i915/gem_close_race.c
+++ b/tests/i915/gem_close_race.c
@@ -48,6 +48,51 @@
 #include "igt.h"
 #include "igt_aux.h"
 #include "igt_device_scan.h"
+/**
+ * TEST: gem close race
+ * Description: Test try to race gem_close against workload submission.
+ *
+ * SUBTEST: basic-process
+ * Description: Basic workload submission.
+ * Feature: synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: basic-threads
+ * Description:
+ *   Share buffer handle across different drm fd's and trying to race gem_close against
+ *   continuous workload with minimum timeout.
+ * Feature: synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: contexts
+ * Description:
+ *   Share buffer handle across different drm fd's and trying to race gem_close against
+ *   continuous workload in other contexts.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: gem-close-race
+ * Description:
+ *   Share buffer handle across different drm fd's and trying to race of gem_close against
+ *   continuous workload.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: multigpu-basic-process
+ * Description: Basic workload submission on multi-GPU machine.
+ * Feature: multigpu, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: multigpu-basic-threads
+ * Description: Run basic-threads race on multi-GPU machine.
+ * Feature: multigpu, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: process-exit
+ * Description: Test try to race gem_close against submission of continuous workload.
+ * Feature: synchronization
+ * Run type: FULL
+ */
 
 #define OBJECT_SIZE (256 * 1024)
 
diff --git a/tests/i915/gem_create.c b/tests/i915/gem_create.c
index c719ab6c7761..fc99189499b8 100644
--- a/tests/i915/gem_create.c
+++ b/tests/i915/gem_create.c
@@ -62,6 +62,56 @@
 #include "i915/gem_mman.h"
 #include "i915/intel_memory_region.h"
 #include "i915_drm.h"
+/**
+ * TEST: gem create
+ * Description:
+ *   Ensure that basic gem_create and gem_create_ext works and that invalid input combinations
+ *   are rejected.
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: busy-create
+ * Description: Create buffer objects while GPU is busy.
+ *
+ * SUBTEST: create-clear
+ * Description: Verify that all new objects are clear.
+ *
+ * SUBTEST: create-ext-cpu-access-big
+ * Description:
+ *   Verify the extreme cases with very large objects and.
+ *   I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS
+ *
+ * SUBTEST: create-ext-cpu-access-sanity-check
+ * Description:
+ *   Verify the basic functionally and expected ABI contract around.
+ *   I915_GEM_CREATE_EXT_FLAG_NEEDS_CPU_ACCESS
+ *
+ * SUBTEST: create-ext-placement-all
+ * Description: Create objects in every memory region using create_ext.
+ *
+ * SUBTEST: create-ext-placement-each
+ * Description: Create one object with memory pieces in each memory region using create_ext.
+ *
+ * SUBTEST: create-ext-placement-sanity-check
+ * Description: Exercise create_ext placements extension.
+ *
+ * SUBTEST: create-invalid-size
+ * Description: Try to create a gem object of invalid size 0 and check if ioctl returns error.
+ *
+ * SUBTEST: create-massive
+ * Description: Exercise creation of buffer object with impossible size and check for the expected error.
+ *
+ * SUBTEST: create-size-update
+ * Description: Try to create a gem object with size 15 and check actual created size.
+ *
+ * SUBTEST: create-valid-nonaligned
+ * Description:
+ *   Try to create an object with non-aligned size, check we got one with size aligned up to page
+ *   size and test we can write into the padded extra memory.
+ *
+ * SUBTEST: hog-create
+ * Description: Create buffer objects while GPU is busy.
+ */
 
 IGT_TEST_DESCRIPTION("Ensure that basic gem_create and gem_create_ext works"
 		     " and that invalid input combinations are rejected.");
diff --git a/tests/i915/gem_cs_tlb.c b/tests/i915/gem_cs_tlb.c
index 2117b41e47c1..ab09efa251b3 100644
--- a/tests/i915/gem_cs_tlb.c
+++ b/tests/i915/gem_cs_tlb.c
@@ -52,6 +52,14 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem cs tlb
+ * Description: Check whether we correctly invalidate the cs tlb.
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: engines
+ */
 
 IGT_TEST_DESCRIPTION("Check whether we correctly invalidate the cs tlb.");
 
diff --git a/tests/i915/gem_ctx_bad_destroy.c b/tests/i915/gem_ctx_bad_destroy.c
index 50bb9aa07066..90495da8ab2e 100644
--- a/tests/i915/gem_ctx_bad_destroy.c
+++ b/tests/i915/gem_ctx_bad_destroy.c
@@ -34,6 +34,20 @@
 #include <string.h>
 #include <errno.h>
 
+/**
+ * TEST: gem ctx bad destroy
+ * Description: Negative test cases for destroy contexts.
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: double-destroy
+ *
+ * SUBTEST: invalid-ctx
+ *
+ * SUBTEST: invalid-default-ctx
+ *
+ * SUBTEST: invalid-pad
+ */
 
 IGT_TEST_DESCRIPTION("Negative test cases for destroy contexts.");
 
diff --git a/tests/i915/gem_ctx_create.c b/tests/i915/gem_ctx_create.c
index 39f070af9439..14991a671938 100644
--- a/tests/i915/gem_ctx_create.c
+++ b/tests/i915/gem_ctx_create.c
@@ -35,6 +35,75 @@
 #include "igt.h"
 #include "igt_rand.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem ctx create
+ * Description: Test the context create ioctls
+ * Feature: context
+ *
+ * SUBTEST: active
+ * Description:
+ *   For each engine calculate the average performance of context creation execution and
+ *   exercise context reclaim
+ * Run type: FULL
+ *
+ * SUBTEST: active-all
+ * Description: Calculate the average performance of context creation and it's execution using all engines
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Description: Test random context creation
+ * Run type: BAT
+ *
+ * SUBTEST: basic-files
+ * Description: Exercise implicit per-fd context creation
+ * Run type: BAT
+ *
+ * SUBTEST: ext-param
+ * Description: Verify valid and invalid context extensions
+ * Run type: FULL
+ *
+ * SUBTEST: files
+ * Description: Exercise implicit per-fd context creation on 1 CPU for long duration
+ * Run type: FULL
+ *
+ * SUBTEST: forked-active
+ * Description:
+ *   For each engine calculate the average performance of context creation and execution on
+ *   multiple parallel processes
+ * Run type: FULL
+ *
+ * SUBTEST: forked-active-all
+ * Description:
+ *   Calculate the average performance of context creation and it's execution using all engines
+ *   on multiple parallel processes
+ * Run type: FULL
+ *
+ * SUBTEST: forked-files
+ * Description: Exercise implicit per-fd context creation on all CPUs for long duration
+ * Run type: FULL
+ *
+ * SUBTEST: hog
+ * Description:
+ *   For each engine calculate the average performance of context creation and execution while
+ *   all other engines are hogging the resources
+ * Run type: FULL
+ *
+ * SUBTEST: iris-pipeline
+ * Description: Set, validate and execute particular context params
+ * Run type: FULL
+ *
+ * SUBTEST: maximum-mem
+ * Description:
+ *   Create contexts upto available RAM size, calculate the average performance of their
+ *   execution on multiple parallel processes
+ * Run type: FULL
+ *
+ * SUBTEST: maximum-swap
+ * Description:
+ *   Create contexts upto available RAM+SWAP size, calculate the average performance of their
+ *   execution on multiple parallel processes
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Test the context create ioctls");
 
diff --git a/tests/i915/gem_ctx_engines.c b/tests/i915/gem_ctx_engines.c
index b87a21fa4e58..d15a7b7e5f67 100644
--- a/tests/i915/gem_ctx_engines.c
+++ b/tests/i915/gem_ctx_engines.c
@@ -43,6 +43,23 @@
 #include "igt.h"
 #include "igt_types.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem ctx engines
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: execute-allforone
+ *
+ * SUBTEST: execute-one
+ *
+ * SUBTEST: execute-oneforall
+ *
+ * SUBTEST: independent
+ *
+ * SUBTEST: invalid-engines
+ *
+ * SUBTEST: none
+ */
 
 #define engine_class(e, n) ((e)->engines[(n)].engine_class)
 #define engine_instance(e, n) ((e)->engines[(n)].engine_instance)
diff --git a/tests/i915/gem_ctx_exec.c b/tests/i915/gem_ctx_exec.c
index 3d94f01db914..4e37b2642085 100644
--- a/tests/i915/gem_ctx_exec.c
+++ b/tests/i915/gem_ctx_exec.c
@@ -47,6 +47,39 @@
 #include "igt_rand.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem ctx exec
+ * Description: Test context batch buffer execution.
+ * Feature: context
+ *
+ * SUBTEST: basic
+ * Description: Check the basic context batch buffer execution.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-close-race
+ * Description: Race the execution and interrupt handlers along a context, while closing it at a random time.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-invalid-context
+ * Description: Verify that execbuf with invalid context fails.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-nohangcheck
+ * Description: Verify that contexts are automatically shotdown on close, if hangchecking is disabled.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-norecovery
+ * Description: Check the status of context after a hang by setting and unsetting the RECOVERABLE.
+ * Run type: FULL
+ *
+ * SUBTEST: eviction
+ * Description: Check maximum number of buffers it can evict for a context.
+ * Run type: FULL
+ *
+ * SUBTEST: reset-pin-leak
+ * Description: Check if the kernel doesn't leak the vma pin_count for the last context on reset.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Test context batch buffer execution.");
 
diff --git a/tests/i915/gem_ctx_freq.c b/tests/i915/gem_ctx_freq.c
index 18e736c73da1..8e432cbdf8f5 100644
--- a/tests/i915/gem_ctx_freq.c
+++ b/tests/i915/gem_ctx_freq.c
@@ -34,6 +34,13 @@
 #include "igt_perf.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem ctx freq
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: sysfs
+ */
 
 #define SAMPLE_PERIOD (USEC_PER_SEC / 10)
 #define PMU_TOLERANCE 100
diff --git a/tests/i915/gem_ctx_isolation.c b/tests/i915/gem_ctx_isolation.c
index 2def529ac3b2..2c2da296d301 100644
--- a/tests/i915/gem_ctx_isolation.c
+++ b/tests/i915/gem_ctx_isolation.c
@@ -26,6 +26,29 @@
 #include "igt.h"
 #include "igt_dummyload.h"
 #include "igt_types.h"
+/**
+ * TEST: gem ctx isolation
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: clean
+ *
+ * SUBTEST: dirty-create
+ *
+ * SUBTEST: dirty-switch
+ *
+ * SUBTEST: nonpriv
+ *
+ * SUBTEST: nonpriv-switch
+ *
+ * SUBTEST: preservation
+ *
+ * SUBTEST: preservation-S3
+ *
+ * SUBTEST: preservation-S4
+ *
+ * SUBTEST: preservation-reset
+ */
 
 /* MAX_REG must be greater than the maximum register address. */
 #define MAX_REG 0x400000
diff --git a/tests/i915/gem_ctx_param.c b/tests/i915/gem_ctx_param.c
index d119ea74e0a4..ae52ee2fa1e6 100644
--- a/tests/i915/gem_ctx_param.c
+++ b/tests/i915/gem_ctx_param.c
@@ -31,6 +31,94 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "i915/gem_vm.h"
+/**
+ * TEST: gem ctx param
+ * Description: Basic test for context set/get param input validation.
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Description: Basic test for context get/set param ioctls using valid context
+ * Feature: context
+ *
+ * SUBTEST: basic-default
+ * Description: Basic test for context get/set param ioctls using default context
+ * Feature: context
+ *
+ * SUBTEST: get-priority-new-ctx
+ * Description:
+ *   Test performed with context param set to priority.
+ *   Verify that priority is default for newly created context
+ * Feature: context
+ *
+ * SUBTEST: invalid-ctx-get
+ * Description: Verify that context get param ioctl using invalid context returns relevant error
+ * Feature: context
+ *
+ * SUBTEST: invalid-ctx-set
+ * Description: Verify that context set param ioctl using invalid context returns relevant error
+ * Feature: context
+ *
+ * SUBTEST: invalid-get-engines
+ * Feature: context
+ *
+ * SUBTEST: invalid-get-no-zeromap
+ * Feature: context
+ *
+ * SUBTEST: invalid-get-ringsize
+ * Feature: context
+ *
+ * SUBTEST: invalid-param-get
+ * Description: Checks that fetching context parameters using an unused param value is erroneous
+ * Feature: context
+ *
+ * SUBTEST: invalid-param-set
+ * Description: Checks that setting context parameters using an unused param value is erroneous
+ * Feature: context
+ *
+ * SUBTEST: invalid-set-no-zeromap
+ * Feature: context
+ *
+ * SUBTEST: invalid-set-ringsize
+ * Feature: context
+ *
+ * SUBTEST: invalid-size-get
+ * Description: Verify that context get param ioctl returns valid size for valid context
+ * Feature: context
+ *
+ * SUBTEST: invalid-size-set
+ * Description: Verify that context set param ioctl using invalid size returns relevant error
+ * Feature: context
+ *
+ * SUBTEST: non-root-set
+ * Description: Verify that context set param ioctl returns relevant error in non root mode
+ * Feature: context
+ *
+ * SUBTEST: root-set
+ * Description: Verify that context set param ioctl works fine in root mode
+ * Feature: context
+ *
+ * SUBTEST: set-priority-invalid-size
+ * Description:
+ *   Test performed with context param set to priority.
+ *   Verify that relevant error is returned on setting invalid ctx size with default priority
+ * Feature: context
+ *
+ * SUBTEST: set-priority-not-supported
+ * Description:
+ *   Verify that context set param ioctl returns relevant error if driver doesn't supports
+ *   assigning custom priorities from userspace
+ * Feature: context, no-set-priority
+ *
+ * SUBTEST: set-priority-range
+ * Description:
+ *   Test performed with context param set to priority.
+ *   Change priority range to test value overflow
+ * Feature: context
+ *
+ * SUBTEST: vm
+ * Description: Tests that multiple contexts can share the same VMA
+ * Feature: context
+ */
 
 IGT_TEST_DESCRIPTION("Basic test for context set/get param input validation.");
 
diff --git a/tests/i915/gem_ctx_persistence.c b/tests/i915/gem_ctx_persistence.c
index 9fb528186162..40281ef4209e 100644
--- a/tests/i915/gem_ctx_persistence.c
+++ b/tests/i915/gem_ctx_persistence.c
@@ -45,6 +45,75 @@
 #include "ioctl_wrappers.h" /* gem_wait()! */
 #include "intel_allocator.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem ctx persistence
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: engines-cleanup
+ *
+ * SUBTEST: engines-hang
+ *
+ * SUBTEST: engines-hostile
+ *
+ * SUBTEST: engines-hostile-preempt
+ *
+ * SUBTEST: engines-mixed
+ *
+ * SUBTEST: engines-mixed-process
+ *
+ * SUBTEST: engines-persistence
+ *
+ * SUBTEST: engines-queued
+ *
+ * SUBTEST: file
+ *
+ * SUBTEST: hang
+ *
+ * SUBTEST: heartbeat-close
+ *
+ * SUBTEST: heartbeat-hang
+ *
+ * SUBTEST: heartbeat-hostile
+ *
+ * SUBTEST: heartbeat-many
+ *
+ * SUBTEST: heartbeat-stop
+ *
+ * SUBTEST: hostile
+ *
+ * SUBTEST: idempotent
+ *
+ * SUBTEST: legacy-engines-cleanup
+ *
+ * SUBTEST: legacy-engines-hang
+ *
+ * SUBTEST: legacy-engines-hostile
+ *
+ * SUBTEST: legacy-engines-hostile-preempt
+ *
+ * SUBTEST: legacy-engines-mixed
+ *
+ * SUBTEST: legacy-engines-mixed-process
+ *
+ * SUBTEST: legacy-engines-persistence
+ *
+ * SUBTEST: legacy-engines-queued
+ *
+ * SUBTEST: many-contexts
+ *
+ * SUBTEST: process
+ *
+ * SUBTEST: processes
+ *
+ * SUBTEST: saturated-hostile
+ *
+ * SUBTEST: saturated-hostile-nopreempt
+ *
+ * SUBTEST: smoketest
+ *
+ * SUBTEST: userptr
+ */
 
 #define RESET_TIMEOUT_MS 2 * MSEC_PER_SEC; /* default: 640ms */
 static unsigned long reset_timeout_ms = RESET_TIMEOUT_MS;
diff --git a/tests/i915/gem_ctx_shared.c b/tests/i915/gem_ctx_shared.c
index 3d73db581c4e..078557bd1234 100644
--- a/tests/i915/gem_ctx_shared.c
+++ b/tests/i915/gem_ctx_shared.c
@@ -47,6 +47,40 @@
 #include "igt_vgem.h"
 #include "sw_sync.h"
 #include "sync_file.h"
+/**
+ * TEST: gem ctx shared
+ * Description: Test shared contexts.
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: Q-in-order
+ *
+ * SUBTEST: Q-independent
+ *
+ * SUBTEST: Q-out-order
+ *
+ * SUBTEST: Q-promotion
+ *
+ * SUBTEST: Q-smoketest
+ *
+ * SUBTEST: Q-smoketest-all
+ *
+ * SUBTEST: create-shared-gtt
+ *
+ * SUBTEST: detached-shared-gtt
+ *
+ * SUBTEST: disjoint-timelines
+ *
+ * SUBTEST: exec-shared-gtt
+ *
+ * SUBTEST: exec-single-timeline
+ *
+ * SUBTEST: exhaust-shared-gtt
+ *
+ * SUBTEST: exhaust-shared-gtt-lrc
+ *
+ * SUBTEST: single-timeline
+ */
 
 #define LO 0
 #define HI 1
diff --git a/tests/i915/gem_ctx_sseu.c b/tests/i915/gem_ctx_sseu.c
index 7685511f0734..78748c24d055 100644
--- a/tests/i915/gem_ctx_sseu.c
+++ b/tests/i915/gem_ctx_sseu.c
@@ -44,6 +44,20 @@
 #include "igt_perf.h"
 #include "igt_sysfs.h"
 #include "ioctl_wrappers.h"
+/**
+ * TEST: gem ctx sseu
+ * Description: Test context render powergating programming.
+ * Feature: pm_sseu
+ * Run type: FULL
+ *
+ * SUBTEST: engines
+ *
+ * SUBTEST: invalid-args
+ *
+ * SUBTEST: invalid-sseu
+ *
+ * SUBTEST: mmap-args
+ */
 
 IGT_TEST_DESCRIPTION("Test context render powergating programming.");
 
diff --git a/tests/i915/gem_ctx_switch.c b/tests/i915/gem_ctx_switch.c
index 4e46b7634858..b0066ab27abd 100644
--- a/tests/i915/gem_ctx_switch.c
+++ b/tests/i915/gem_ctx_switch.c
@@ -45,6 +45,371 @@
 #include "i915/gem_ring.h"
 #include "i915/gem_vm.h"
 #include "igt.h"
+/**
+ * TEST: gem ctx switch
+ * Feature: context
+ * Run type: FULL
+ *
+ * SUBTEST: all-heavy
+ *
+ * SUBTEST: all-light
+ *
+ * SUBTEST: bcs0
+ *
+ * SUBTEST: bcs0-forked
+ *
+ * SUBTEST: bcs0-forked-heavy
+ *
+ * SUBTEST: bcs0-forked-heavy-interruptible
+ *
+ * SUBTEST: bcs0-forked-heavy-queue
+ *
+ * SUBTEST: bcs0-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: bcs0-forked-interruptible
+ *
+ * SUBTEST: bcs0-forked-queue
+ *
+ * SUBTEST: bcs0-forked-queue-interruptible
+ *
+ * SUBTEST: bcs0-heavy
+ *
+ * SUBTEST: bcs0-heavy-interruptible
+ *
+ * SUBTEST: bcs0-heavy-queue
+ *
+ * SUBTEST: bcs0-heavy-queue-interruptible
+ *
+ * SUBTEST: bcs0-interruptible
+ *
+ * SUBTEST: bcs0-queue
+ *
+ * SUBTEST: bcs0-queue-interruptible
+ *
+ * SUBTEST: legacy-blt
+ *
+ * SUBTEST: legacy-blt-forked
+ *
+ * SUBTEST: legacy-blt-forked-heavy
+ *
+ * SUBTEST: legacy-blt-forked-heavy-interruptible
+ *
+ * SUBTEST: legacy-blt-forked-heavy-queue
+ *
+ * SUBTEST: legacy-blt-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-blt-forked-interruptible
+ *
+ * SUBTEST: legacy-blt-forked-queue
+ *
+ * SUBTEST: legacy-blt-forked-queue-interruptible
+ *
+ * SUBTEST: legacy-blt-heavy
+ *
+ * SUBTEST: legacy-blt-heavy-interruptible
+ *
+ * SUBTEST: legacy-blt-heavy-queue
+ *
+ * SUBTEST: legacy-blt-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-blt-interruptible
+ *
+ * SUBTEST: legacy-blt-queue
+ *
+ * SUBTEST: legacy-blt-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd1
+ *
+ * SUBTEST: legacy-bsd1-forked
+ *
+ * SUBTEST: legacy-bsd1-forked-heavy
+ *
+ * SUBTEST: legacy-bsd1-forked-heavy-interruptible
+ *
+ * SUBTEST: legacy-bsd1-forked-heavy-queue
+ *
+ * SUBTEST: legacy-bsd1-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd1-forked-interruptible
+ *
+ * SUBTEST: legacy-bsd1-forked-queue
+ *
+ * SUBTEST: legacy-bsd1-forked-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd1-heavy
+ *
+ * SUBTEST: legacy-bsd1-heavy-interruptible
+ *
+ * SUBTEST: legacy-bsd1-heavy-queue
+ *
+ * SUBTEST: legacy-bsd1-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd1-interruptible
+ *
+ * SUBTEST: legacy-bsd1-queue
+ *
+ * SUBTEST: legacy-bsd1-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd2
+ *
+ * SUBTEST: legacy-bsd2-forked
+ *
+ * SUBTEST: legacy-bsd2-forked-heavy
+ *
+ * SUBTEST: legacy-bsd2-forked-heavy-interruptible
+ *
+ * SUBTEST: legacy-bsd2-forked-heavy-queue
+ *
+ * SUBTEST: legacy-bsd2-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd2-forked-interruptible
+ *
+ * SUBTEST: legacy-bsd2-forked-queue
+ *
+ * SUBTEST: legacy-bsd2-forked-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd2-heavy
+ *
+ * SUBTEST: legacy-bsd2-heavy-interruptible
+ *
+ * SUBTEST: legacy-bsd2-heavy-queue
+ *
+ * SUBTEST: legacy-bsd2-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-bsd2-interruptible
+ *
+ * SUBTEST: legacy-bsd2-queue
+ *
+ * SUBTEST: legacy-bsd2-queue-interruptible
+ *
+ * SUBTEST: legacy-default
+ *
+ * SUBTEST: legacy-default-forked
+ *
+ * SUBTEST: legacy-default-forked-heavy
+ *
+ * SUBTEST: legacy-default-forked-heavy-interruptible
+ *
+ * SUBTEST: legacy-default-forked-heavy-queue
+ *
+ * SUBTEST: legacy-default-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-default-forked-interruptible
+ *
+ * SUBTEST: legacy-default-forked-queue
+ *
+ * SUBTEST: legacy-default-forked-queue-interruptible
+ *
+ * SUBTEST: legacy-default-heavy
+ *
+ * SUBTEST: legacy-default-heavy-interruptible
+ *
+ * SUBTEST: legacy-default-heavy-queue
+ *
+ * SUBTEST: legacy-default-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-default-interruptible
+ *
+ * SUBTEST: legacy-default-queue
+ *
+ * SUBTEST: legacy-default-queue-interruptible
+ *
+ * SUBTEST: legacy-render
+ *
+ * SUBTEST: legacy-render-forked
+ *
+ * SUBTEST: legacy-render-forked-heavy
+ *
+ * SUBTEST: legacy-render-forked-heavy-interruptible
+ *
+ * SUBTEST: legacy-render-forked-heavy-queue
+ *
+ * SUBTEST: legacy-render-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-render-forked-interruptible
+ *
+ * SUBTEST: legacy-render-forked-queue
+ *
+ * SUBTEST: legacy-render-forked-queue-interruptible
+ *
+ * SUBTEST: legacy-render-heavy
+ *
+ * SUBTEST: legacy-render-heavy-interruptible
+ *
+ * SUBTEST: legacy-render-heavy-queue
+ *
+ * SUBTEST: legacy-render-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-render-interruptible
+ *
+ * SUBTEST: legacy-render-queue
+ *
+ * SUBTEST: legacy-render-queue-interruptible
+ *
+ * SUBTEST: legacy-vebox
+ *
+ * SUBTEST: legacy-vebox-forked
+ *
+ * SUBTEST: legacy-vebox-forked-heavy
+ *
+ * SUBTEST: legacy-vebox-forked-heavy-interruptible
+ *
+ * SUBTEST: legacy-vebox-forked-heavy-queue
+ *
+ * SUBTEST: legacy-vebox-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-vebox-forked-interruptible
+ *
+ * SUBTEST: legacy-vebox-forked-queue
+ *
+ * SUBTEST: legacy-vebox-forked-queue-interruptible
+ *
+ * SUBTEST: legacy-vebox-heavy
+ *
+ * SUBTEST: legacy-vebox-heavy-interruptible
+ *
+ * SUBTEST: legacy-vebox-heavy-queue
+ *
+ * SUBTEST: legacy-vebox-heavy-queue-interruptible
+ *
+ * SUBTEST: legacy-vebox-interruptible
+ *
+ * SUBTEST: legacy-vebox-queue
+ *
+ * SUBTEST: legacy-vebox-queue-interruptible
+ *
+ * SUBTEST: queue-heavy
+ *
+ * SUBTEST: queue-light
+ *
+ * SUBTEST: rcs0
+ *
+ * SUBTEST: rcs0-forked
+ *
+ * SUBTEST: rcs0-forked-heavy
+ *
+ * SUBTEST: rcs0-forked-heavy-interruptible
+ *
+ * SUBTEST: rcs0-forked-heavy-queue
+ *
+ * SUBTEST: rcs0-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: rcs0-forked-interruptible
+ *
+ * SUBTEST: rcs0-forked-queue
+ *
+ * SUBTEST: rcs0-forked-queue-interruptible
+ *
+ * SUBTEST: rcs0-heavy
+ *
+ * SUBTEST: rcs0-heavy-interruptible
+ *
+ * SUBTEST: rcs0-heavy-queue
+ *
+ * SUBTEST: rcs0-heavy-queue-interruptible
+ *
+ * SUBTEST: rcs0-interruptible
+ *
+ * SUBTEST: rcs0-queue
+ *
+ * SUBTEST: rcs0-queue-interruptible
+ *
+ * SUBTEST: vcs0
+ *
+ * SUBTEST: vcs0-forked
+ *
+ * SUBTEST: vcs0-forked-heavy
+ *
+ * SUBTEST: vcs0-forked-heavy-interruptible
+ *
+ * SUBTEST: vcs0-forked-heavy-queue
+ *
+ * SUBTEST: vcs0-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: vcs0-forked-interruptible
+ *
+ * SUBTEST: vcs0-forked-queue
+ *
+ * SUBTEST: vcs0-forked-queue-interruptible
+ *
+ * SUBTEST: vcs0-heavy
+ *
+ * SUBTEST: vcs0-heavy-interruptible
+ *
+ * SUBTEST: vcs0-heavy-queue
+ *
+ * SUBTEST: vcs0-heavy-queue-interruptible
+ *
+ * SUBTEST: vcs0-interruptible
+ *
+ * SUBTEST: vcs0-queue
+ *
+ * SUBTEST: vcs0-queue-interruptible
+ *
+ * SUBTEST: vcs1
+ *
+ * SUBTEST: vcs1-forked
+ *
+ * SUBTEST: vcs1-forked-heavy
+ *
+ * SUBTEST: vcs1-forked-heavy-interruptible
+ *
+ * SUBTEST: vcs1-forked-heavy-queue
+ *
+ * SUBTEST: vcs1-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: vcs1-forked-interruptible
+ *
+ * SUBTEST: vcs1-forked-queue
+ *
+ * SUBTEST: vcs1-forked-queue-interruptible
+ *
+ * SUBTEST: vcs1-heavy
+ *
+ * SUBTEST: vcs1-heavy-interruptible
+ *
+ * SUBTEST: vcs1-heavy-queue
+ *
+ * SUBTEST: vcs1-heavy-queue-interruptible
+ *
+ * SUBTEST: vcs1-interruptible
+ *
+ * SUBTEST: vcs1-queue
+ *
+ * SUBTEST: vcs1-queue-interruptible
+ *
+ * SUBTEST: vecs0
+ *
+ * SUBTEST: vecs0-forked
+ *
+ * SUBTEST: vecs0-forked-heavy
+ *
+ * SUBTEST: vecs0-forked-heavy-interruptible
+ *
+ * SUBTEST: vecs0-forked-heavy-queue
+ *
+ * SUBTEST: vecs0-forked-heavy-queue-interruptible
+ *
+ * SUBTEST: vecs0-forked-interruptible
+ *
+ * SUBTEST: vecs0-forked-queue
+ *
+ * SUBTEST: vecs0-forked-queue-interruptible
+ *
+ * SUBTEST: vecs0-heavy
+ *
+ * SUBTEST: vecs0-heavy-interruptible
+ *
+ * SUBTEST: vecs0-heavy-queue
+ *
+ * SUBTEST: vecs0-heavy-queue-interruptible
+ *
+ * SUBTEST: vecs0-interruptible
+ *
+ * SUBTEST: vecs0-queue
+ *
+ * SUBTEST: vecs0-queue-interruptible
+ */
 
 #define INTERRUPTIBLE 0x1
 #define QUEUE 0x2
diff --git a/tests/i915/gem_eio.c b/tests/i915/gem_eio.c
index 8dbaa7a75903..370d40b39e1c 100644
--- a/tests/i915/gem_eio.c
+++ b/tests/i915/gem_eio.c
@@ -52,6 +52,99 @@
 #include "igt_stats.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem eio
+ * Description: Test that specific ioctls report a wedged GPU (EIO).
+ * Run type: FULL
+ *
+ * SUBTEST: banned
+ * Feature: reset
+ *
+ * SUBTEST: context-create
+ * Feature: reset
+ *
+ * SUBTEST: create
+ * Description: Validate i915_gem_create_ioctl, while gpu is wedged for fb scanout.
+ * Feature: reset
+ *
+ * SUBTEST: create-ext
+ * Description:
+ *   Validate i915_gem_create_ext_ioctl and checks if returns clear backing store while gpu is
+ *   wedged for fb scanout.
+ * Feature: reset
+ *
+ * SUBTEST: execbuf
+ * Feature: reset
+ *
+ * SUBTEST: hibernate
+ * Feature: hibernate, reset
+ *
+ * SUBTEST: in-flight-10ms
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-1us
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-contexts-10ms
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-contexts-1us
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-contexts-immediate
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-external
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-immediate
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-internal-10ms
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-internal-1us
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-internal-immediate
+ * Feature: reset
+ *
+ * SUBTEST: in-flight-suspend
+ * Feature: reset
+ *
+ * SUBTEST: kms
+ * Feature: kms_gem_interop, reset
+ *
+ * SUBTEST: reset-stress
+ * Feature: reset
+ *
+ * SUBTEST: suspend
+ * Feature: reset, suspend
+ *
+ * SUBTEST: throttle
+ * Feature: reset
+ *
+ * SUBTEST: unwedge-stress
+ * Feature: reset
+ *
+ * SUBTEST: wait-10ms
+ * Feature: reset
+ *
+ * SUBTEST: wait-1us
+ * Feature: reset
+ *
+ * SUBTEST: wait-immediate
+ * Feature: reset
+ *
+ * SUBTEST: wait-wedge-10ms
+ * Feature: reset
+ *
+ * SUBTEST: wait-wedge-1us
+ * Feature: reset
+ *
+ * SUBTEST: wait-wedge-immediate
+ * Feature: reset
+ */
 
 IGT_TEST_DESCRIPTION("Test that specific ioctls report a wedged GPU (EIO).");
 
diff --git a/tests/i915/gem_evict_alignment.c b/tests/i915/gem_evict_alignment.c
index 0b560ab03ccf..f04f24972eb7 100644
--- a/tests/i915/gem_evict_alignment.c
+++ b/tests/i915/gem_evict_alignment.c
@@ -47,6 +47,23 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem evict alignment
+ * Description: Run a couple of big batches to force the unbind on misalignment code.
+ * Run type: FULL
+ *
+ * SUBTEST: major-hang
+ *
+ * SUBTEST: major-interruptible
+ *
+ * SUBTEST: major-normal
+ *
+ * SUBTEST: minor-hang
+ *
+ * SUBTEST: minor-interruptible
+ *
+ * SUBTEST: minor-normal
+ */
 
 IGT_TEST_DESCRIPTION("Run a couple of big batches to force the unbind on"
 		     " misalignment code.");
diff --git a/tests/i915/gem_evict_everything.c b/tests/i915/gem_evict_everything.c
index 120f890728df..87f854bf88cf 100644
--- a/tests/i915/gem_evict_everything.c
+++ b/tests/i915/gem_evict_everything.c
@@ -48,6 +48,67 @@
 #include "igt.h"
 
 #include "eviction_common.c"
+/**
+ * TEST: gem evict everything
+ * Description: Run a couple of big batches to force the eviction code.
+ * Run type: FULL
+ *
+ * SUBTEST: forked-interruptible
+ *
+ * SUBTEST: forked-mempressure-interruptible
+ *
+ * SUBTEST: forked-mempressure-normal
+ *
+ * SUBTEST: forked-multifd-interruptible
+ *
+ * SUBTEST: forked-multifd-mempressure-interruptible
+ *
+ * SUBTEST: forked-multifd-mempressure-normal
+ *
+ * SUBTEST: forked-multifd-normal
+ *
+ * SUBTEST: forked-normal
+ *
+ * SUBTEST: forked-swapping-interruptible
+ *
+ * SUBTEST: forked-swapping-mempressure-interruptible
+ *
+ * SUBTEST: forked-swapping-mempressure-normal
+ *
+ * SUBTEST: forked-swapping-multifd-interruptible
+ *
+ * SUBTEST: forked-swapping-multifd-mempressure-interruptible
+ *
+ * SUBTEST: forked-swapping-multifd-mempressure-normal
+ *
+ * SUBTEST: forked-swapping-multifd-normal
+ *
+ * SUBTEST: forked-swapping-normal
+ *
+ * SUBTEST: major-hang
+ *
+ * SUBTEST: major-interruptible
+ *
+ * SUBTEST: major-normal
+ *
+ * SUBTEST: minor-hang
+ *
+ * SUBTEST: minor-interruptible
+ *
+ * SUBTEST: minor-normal
+ *
+ * SUBTEST: mlocked-hang
+ *
+ * SUBTEST: mlocked-interruptible
+ *
+ * SUBTEST: mlocked-normal
+ *
+ * SUBTEST: swapping-hang
+ *
+ * SUBTEST: swapping-interruptible
+ *
+ * SUBTEST: swapping-normal
+ */
 
 IGT_TEST_DESCRIPTION("Run a couple of big batches to force the eviction"
 		     " code.");
diff --git a/tests/i915/gem_exec_alignment.c b/tests/i915/gem_exec_alignment.c
index a9fcd2a747d1..32db9840a344 100644
--- a/tests/i915/gem_exec_alignment.c
+++ b/tests/i915/gem_exec_alignment.c
@@ -45,6 +45,24 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_types.h"
+/**
+ * TEST: gem exec alignment
+ * Description: Exercises the basic execbuffer using object alignments
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: forked
+ *
+ * SUBTEST: many
+ *
+ * SUBTEST: pi
+ *
+ * SUBTEST: pi-isolated
+ *
+ * SUBTEST: pi-shared
+ *
+ * SUBTEST: single
+ */
 
 IGT_TEST_DESCRIPTION("Exercises the basic execbuffer using object alignments");
 
diff --git a/tests/i915/gem_exec_async.c b/tests/i915/gem_exec_async.c
index 173bc4648a5a..1153c0bf2e30 100644
--- a/tests/i915/gem_exec_async.c
+++ b/tests/i915/gem_exec_async.c
@@ -24,6 +24,16 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem exec async
+ * Description: Check that we can issue concurrent writes across the engines.
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: concurrent-writes
+ *
+ * SUBTEST: forked-writes
+ */
 
 IGT_TEST_DESCRIPTION("Check that we can issue concurrent writes across the engines.");
 
diff --git a/tests/i915/gem_exec_await.c b/tests/i915/gem_exec_await.c
index 4935cf395b2e..c7f949c9cd2b 100644
--- a/tests/i915/gem_exec_await.c
+++ b/tests/i915/gem_exec_await.c
@@ -31,6 +31,15 @@
 #include "igt_rand.h"
 #include "igt_sysfs.h"
 #include "igt_vgem.h"
+/**
+ * TEST: gem exec await
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: wide-all
+ *
+ * SUBTEST: wide-contexts
+ */
 
 static double elapsed(const struct timespec *start, const struct timespec *end)
 {
diff --git a/tests/i915/gem_exec_balancer.c b/tests/i915/gem_exec_balancer.c
index 1c655e583c51..d1d92e6ba689 100644
--- a/tests/i915/gem_exec_balancer.c
+++ b/tests/i915/gem_exec_balancer.c
@@ -38,6 +38,123 @@
 #include "igt_sysfs.h"
 #include "igt_types.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec balancer
+ * Description: Exercise in-kernel load-balancing
+ * Run type: FULL
+ *
+ * SUBTEST: bonded-chain
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: bonded-dual
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: bonded-false-hang
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: bonded-pair
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: bonded-semaphore
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: bonded-sync
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: bonded-true-hang
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: busy
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: fairslice
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: full
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: full-late
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: full-late-pulse
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: full-pulse
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: hang
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: hog
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: indices
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: individual
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: invalid-balancer
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: invalid-bonds
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: nohangcheck
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: noheartbeat
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: nop
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-balancer
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-bb-first
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-contexts
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-dmabuf-import-out-fence
+ * Description: Regression test to check that dmabuf imported sync file can handle fence array
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-keep-in-fence
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-keep-submit-fence
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-ordering
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: parallel-out-fence
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: persistence
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: semaphore
+ * Feature: cmd_submission, media_scalability, multictx
+ *
+ * SUBTEST: sequential
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: sliced
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: smoke
+ * Feature: cmd_submission, media_scalability
+ *
+ * SUBTEST: waits
+ * Feature: cmd_submission, media_scalability
+ */
 
 IGT_TEST_DESCRIPTION("Exercise in-kernel load-balancing");
 
diff --git a/tests/i915/gem_exec_basic.c b/tests/i915/gem_exec_basic.c
index ca4fc7b961df..437ce0954557 100644
--- a/tests/i915/gem_exec_basic.c
+++ b/tests/i915/gem_exec_basic.c
@@ -25,6 +25,17 @@
 #include "igt_collection.h"
 
 #include "i915/gem_create.h"
+/**
+ * TEST: gem exec basic
+ * Description: Basic sanity check of execbuf-ioctl rings.
+ * Feature: cmd_submission
+ * Run type: BAT
+ *
+ * SUBTEST: basic
+ * Description:
+ *   Check basic functionality of GEM_EXECBUFFER2 ioctl on every ring and iterating over memory
+ *   regions.
+ */
 
 IGT_TEST_DESCRIPTION("Basic sanity check of execbuf-ioctl rings.");
 
diff --git a/tests/i915/gem_exec_big.c b/tests/i915/gem_exec_big.c
index 4619bda81981..7f07cf6c69db 100644
--- a/tests/i915/gem_exec_big.c
+++ b/tests/i915/gem_exec_big.c
@@ -48,6 +48,16 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem exec big
+ * Description: Run a large nop batch to stress test the error capture code.
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: exhaustive
+ *
+ * SUBTEST: single
+ */
 
 IGT_TEST_DESCRIPTION("Run a large nop batch to stress test the error capture"
 		     " code.");
diff --git a/tests/i915/gem_exec_capture.c b/tests/i915/gem_exec_capture.c
index 9c391192d952..faa997ca8af1 100644
--- a/tests/i915/gem_exec_capture.c
+++ b/tests/i915/gem_exec_capture.c
@@ -31,6 +31,36 @@
 #include "igt_device.h"
 #include "igt_rand.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: gem exec capture
+ * Description: Check that we capture the user specified objects on a hang
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: capture
+ *
+ * SUBTEST: capture-invisible
+ * Description:
+ *   Check that the kernel doesn't crash if the pages can't be copied from the CPU during error
+ *   capture.
+ *
+ * SUBTEST: capture-recoverable
+ * Description: Verify that the kernel rejects EXEC_OBJECT_CAPTURE with recoverable contexts.
+ *
+ * SUBTEST: many-256M-incremental
+ *
+ * SUBTEST: many-2M-incremental
+ *
+ * SUBTEST: many-2M-zero
+ *
+ * SUBTEST: many-4K-incremental
+ *
+ * SUBTEST: many-4K-zero
+ *
+ * SUBTEST: pi
+ *
+ * SUBTEST: userptr
+ */
 
 #define MAX_RESET_TIME	600
 
diff --git a/tests/i915/gem_exec_create.c b/tests/i915/gem_exec_create.c
index 449aa5b2e905..89e9a8ec8ad3 100644
--- a/tests/i915/gem_exec_create.c
+++ b/tests/i915/gem_exec_create.c
@@ -46,6 +46,32 @@
 
 #include "i915_drm.h"
 #include "i915/intel_memory_region.h"
+/**
+ * TEST: gem exec create
+ * Description:
+ *   This test overloads the driver with transient active objects and checks if we don't kill the
+ *   system under the memory pressure some of the symptoms this test look for include mysterious
+ *   hangs.
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic
+ * Description: Check if we kill system by overloading it with active objects iterating over all engines.
+ * Run type: BAT
+ *
+ * SUBTEST: forked
+ * Description: Concurrently overloads system with active objects and checks if we kill system.
+ * Run type: FULL
+ *
+ * SUBTEST: legacy
+ * Description:
+ *   Check if we kill the system by overloading it with active objects iterating over legacy
+ *   engines.
+ * Run type: FULL
+ *
+ * SUBTEST: madvise
+ * Description: This test does a forced reclaim, behaving like a bad application leaking its bo cache.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("This test overloads the driver with transient active objects"
 		     " and checks if we don't kill the system under the memory pressure"
diff --git a/tests/i915/gem_exec_endless.c b/tests/i915/gem_exec_endless.c
index 77719de83b67..25ad16898761 100644
--- a/tests/i915/gem_exec_endless.c
+++ b/tests/i915/gem_exec_endless.c
@@ -30,6 +30,13 @@
 #include "igt_sysfs.h"
 #include "igt_types.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec endless
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: dispatch
+ */
 
 #define MAX_ENGINES 64
 
diff --git a/tests/i915/gem_exec_fair.c b/tests/i915/gem_exec_fair.c
index 8208ab404e80..5268efdc8ce2 100644
--- a/tests/i915/gem_exec_fair.c
+++ b/tests/i915/gem_exec_fair.c
@@ -26,6 +26,98 @@
 #include "igt_vgem.h"
 #include "ioctl_wrappers.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec fair
+ * Description: Check that GPU time and execution order is fairly distributed across clients
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: basic-deadline
+ *
+ * SUBTEST: basic-flow
+ *
+ * SUBTEST: basic-none
+ *
+ * SUBTEST: basic-none-rrul
+ *
+ * SUBTEST: basic-none-share
+ *
+ * SUBTEST: basic-none-solo
+ *
+ * SUBTEST: basic-none-vip
+ *
+ * SUBTEST: basic-pace
+ *
+ * SUBTEST: basic-pace-share
+ *
+ * SUBTEST: basic-pace-solo
+ *
+ * SUBTEST: basic-sync
+ *
+ * SUBTEST: basic-throttle
+ *
+ * SUBTEST: deadline-prio
+ *
+ * SUBTEST: fair-flow
+ *
+ * SUBTEST: fair-flow-ping
+ *
+ * SUBTEST: fair-flow-share
+ *
+ * SUBTEST: fair-flow-solo
+ *
+ * SUBTEST: fair-half
+ *
+ * SUBTEST: fair-half-solo
+ *
+ * SUBTEST: fair-next
+ *
+ * SUBTEST: fair-next-ping
+ *
+ * SUBTEST: fair-next-share
+ *
+ * SUBTEST: fair-next-solo
+ *
+ * SUBTEST: fair-none
+ *
+ * SUBTEST: fair-none-ping
+ *
+ * SUBTEST: fair-none-rrul
+ *
+ * SUBTEST: fair-none-share
+ *
+ * SUBTEST: fair-none-solo
+ *
+ * SUBTEST: fair-none-vip
+ *
+ * SUBTEST: fair-pace
+ *
+ * SUBTEST: fair-pace-ping
+ *
+ * SUBTEST: fair-pace-share
+ *
+ * SUBTEST: fair-pace-solo
+ *
+ * SUBTEST: fair-spare
+ *
+ * SUBTEST: fair-spare-solo
+ *
+ * SUBTEST: fair-sync
+ *
+ * SUBTEST: fair-sync-solo
+ *
+ * SUBTEST: fair-sync-vip
+ *
+ * SUBTEST: fair-throttle
+ *
+ * SUBTEST: fair-throttle-rrul
+ *
+ * SUBTEST: fair-throttle-share
+ *
+ * SUBTEST: fair-throttle-solo
+ *
+ * SUBTEST: fair-throttle-vip
+ */
 
 IGT_TEST_DESCRIPTION("Check that GPU time and execution order is fairly distributed across clients");
 
diff --git a/tests/i915/gem_exec_fence.c b/tests/i915/gem_exec_fence.c
index c2d874f84b91..ede9b5a6e698 100644
--- a/tests/i915/gem_exec_fence.c
+++ b/tests/i915/gem_exec_fence.c
@@ -35,6 +35,246 @@
 #include "igt_vgem.h"
 #include "intel_ctx.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec fence
+ * Description: Check that execbuf waits for explicit fences
+ *
+ * SUBTEST: await-hang
+ * Description: Check for explicit fence with async wait on each engine with a pending gpu hang.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: basic-await
+ * Description: Basic check for explicit fence with async wait on each engine.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: basic-busy
+ * Description: Basic check for explicit fence on each busy engine.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: basic-busy-all
+ * Description: Basic check for composite fence on all busy engines.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: basic-wait
+ * Description: Basic check for explicit fence with additinal wait time on each busy engine.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: basic-wait-all
+ * Description: Basic check for composite fence with additional wait on all busy engines.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: busy-hang
+ * Description: Check for explicit fence on each busy engine with a pending gpu hang.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: busy-hang-all
+ * Description: Check for composite fence on all busy engines with a pending gpu hang.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: concurrent
+ * Description: Check blocking bonded fences on each engine.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: expired-history
+ * Description: Verifies long history of fences are expired.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: invalid-fence-array
+ * Description: Verifies invalid fence-array pointers are rejected.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: invalid-timeline-fence-array
+ * Description:
+ *   Verifies invalid execbuf parameters in drm_i915_gem_execbuffer_ext_timeline_fences
+ *   are rejected
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: keep-in-fence
+ * Description: Check in-fence is not overwritten with out-fence on each engine.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: long-history
+ * Description: Verifies accumulation of long history of fences.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: nb-await
+ * Description: Check for explicit fence with non-blocking wait on each engine.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: nb-await-hang
+ * Description: Check for explicit fence with non-blocking async wait on each engine with a pending gpu hang.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: parallel
+ * Description: Check for EXEC_FENCE_SUBMIT in parallel execution scenarios on each engine.
+ * Feature: cmd_submission, multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: submit
+ * Description: Check timeslicing on submit-fence.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: submit-chain
+ * Description: Check launching a chain of spinners across all engines using submit-fence.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: submit3
+ * Description: Check timeslicing on submit-fence by submitting coupled batches.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: submit67
+ * Description:
+ *   Check timeslicing on submit-fence by submitting more coupled batches than can possibly fit
+ *   into the ELSP.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-backward-timeline-chain-engines
+ * Description:
+ *   Engine chaining tests to verify ordering of timeline syncobjs with backward timeline
+ *   points.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-channel
+ * Description: Verifies two clients racing for syncobj using channel.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-export
+ * Description: Verify exporting of fence-array syncobj signaled by i915.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-import
+ * Description: Verifies creating of a syncobj from explicit fence.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-invalid-flags
+ * Description: Verifies that invalid fence flags in fence-array are rejected.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-invalid-wait
+ * Description: Verifies that submitting an execbuf with a wait on a syncobj that doesn't exists is rejected.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-repeat
+ * Description: Verifies that waiting & signaling a same fence-array syncobj within the same execbuf works.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-signal
+ * Description: Verifies proper signaling of a fence-array syncobj through execbuf.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-stationary-timeline-chain-engines
+ * Description:
+ *   Engine chaining tests to verify ordering of timeline syncobj with stationary timeline
+ *   points.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-chain-engines
+ * Description: Engine chaining tests to verify ordering of timeline syncobjs through execbuf.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-export
+ * Description: Verify exporting of timeline syncobj signaled by i915
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-invalid-flags
+ * Description:
+ *   Verifies that invalid fence flags in drm_i915_gem_execbuffer_ext_timeline_fences are
+ *   rejected
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-invalid-wait
+ * Description:
+ *   Verifies that submitting an execbuf with a wait on a timeline syncobj point that does not
+ *   exists is rejected
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-multiple-ext-nodes
+ * Description: Verify that passing multiple execbuffer_ext nodes works
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-repeat
+ * Description:
+ *   Verifies that waiting & signaling a same timeline syncobj point within the same execbuf
+ *   fworks
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-signal
+ * Description: Verifies proper signaling of a timeline syncobj through execbuf
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-unused-fence
+ * Description:
+ *   Verifies that a timeline syncobj passed into
+ *   drm_i915_gem_execbuffer_ext_timeline_fences but with no signal/wait flag is left
+ *   untouched
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-timeline-wait
+ * Description: Verifies that waiting on a timeline syncobj point between engines works
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-unused-fence
+ * Description: Verifies that a syncobj passed into execbuf but with no signal/wait flag is left untouched.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: syncobj-wait
+ * Description: Verifies that waiting on a timeline syncobj point between engines works.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: wait-hang
+ * Description:
+ *   Check for explicit fence with additional wait time on each busy engine with a pending gpu
+ *   hang.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: wait-hang-all
+ * Description:
+ *   Check for composite fence with additional wait on all busy engines and with a pending gpu
+ *   hang.
+ * Feature: cmd_submission, synchronization
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Check that execbuf waits for explicit fences");
 
diff --git a/tests/i915/gem_exec_flush.c b/tests/i915/gem_exec_flush.c
index 42ddbc529ec6..e213bda5edb3 100644
--- a/tests/i915/gem_exec_flush.c
+++ b/tests/i915/gem_exec_flush.c
@@ -28,6 +28,1502 @@
 #include "i915/gem_ring.h"
 #include "igt.h"
 #include "igt_x86.h"
+/**
+ * TEST: gem exec flush
+ * Description: Basic check of flushing after batches
+ * Run type: FULL
+ *
+ * SUBTEST: basic-batch-kernel-default-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: basic-batch-kernel-default-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-batch-kernel-default-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-uc-pro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-uc-prw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-uc-ro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-uc-rw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-uc-set-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-pro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-prw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-ro-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-ro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-rw-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-rw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wb-set-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-blt-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-blt-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-blt-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-bsd-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-bsd-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-bsd-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-bsd1-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-bsd1-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-bsd1-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-bsd2-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-bsd2-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-bsd2-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-default-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-default-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-default-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-render-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-render-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-render-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-vebox-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-cpu-vebox-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-cpu-vebox-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-blt-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-blt-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-blt-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-bsd-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-bsd-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-bsd-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-bsd1-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-bsd1-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-bsd1-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-bsd2-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-bsd2-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-bsd2-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-default-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-default-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-default-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-render-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-render-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-render-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-vebox-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-gtt-vebox-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-gtt-vebox-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-blt-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-kernel-blt-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-blt-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-bsd-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-kernel-bsd-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-bsd-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-bsd1-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-kernel-bsd1-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-bsd1-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-bsd2-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-kernel-bsd2-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-bsd2-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-render-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-kernel-render-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-render-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-vebox-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-kernel-vebox-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-kernel-vebox-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-blt-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-blt-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-blt-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-bsd-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-bsd-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-bsd-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-bsd1-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-bsd1-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-bsd1-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-bsd2-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-bsd2-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-bsd2-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-default-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-default-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-default-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-render-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-render-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-render-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-vebox-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-user-vebox-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-user-vebox-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-blt-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-blt-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-blt-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-bsd-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-bsd-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-bsd-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-bsd1-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-bsd1-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-bsd1-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-bsd2-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-bsd2-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-bsd2-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-default-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-default-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-default-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-render-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-render-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-render-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-vebox-cmd
+ * Feature: cmd_submission, command_parser
+ *
+ * SUBTEST: batch-wc-vebox-uc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-wc-vebox-wb
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-pro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-prw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-ro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-rw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: stream-set-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-pro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-prw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-ro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-rw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: uc-set-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-pro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-prw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-ro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-rw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wb-set-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-pro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-prw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-ro-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-before-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-rw-vebox-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-blt-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-bsd-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-bsd1
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-bsd1-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-bsd2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-bsd2-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-default
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-default-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-render-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-set-vebox-interruptible
+ * Feature: cmd_submission
+ */
 
 IGT_TEST_DESCRIPTION("Basic check of flushing after batches");
 
diff --git a/tests/i915/gem_exec_gttfill.c b/tests/i915/gem_exec_gttfill.c
index d6c8f21920a6..496ad6e8bb16 100644
--- a/tests/i915/gem_exec_gttfill.c
+++ b/tests/i915/gem_exec_gttfill.c
@@ -26,6 +26,29 @@
 #include "igt.h"
 #include "igt_device_scan.h"
 #include "igt_rand.h"
+/**
+ * TEST: gem exec gttfill
+ * Description: Fill the GTT with batches.
+ *
+ * SUBTEST: all-engines
+ * Description: Stress test check behaviour/correctness of handling batches to fill gtt
+ * Feature: cmd_submission, gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Description: Checks if it can handle enough batches to fill gtt
+ * Feature: cmd_submission, gtt
+ * Run type: BAT
+ *
+ * SUBTEST: engines
+ * Description: Checks the correctness of handling enough batches to fill gtt for each engine
+ * Feature: cmd_submission, gtt
+ * Run type: FULL
+ *
+ * SUBTEST: multigpu-basic
+ * Feature: cmd_submission, gtt, multigpu
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Fill the GTT with batches.");
 
diff --git a/tests/i915/gem_exec_latency.c b/tests/i915/gem_exec_latency.c
index 4838a70820a3..9a9e43babe4d 100644
--- a/tests/i915/gem_exec_latency.c
+++ b/tests/i915/gem_exec_latency.c
@@ -48,6 +48,36 @@
 
 #include "i915/gem.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem exec latency
+ * Run type: FULL
+ *
+ * SUBTEST: context-preempt
+ *
+ * SUBTEST: context-switch
+ *
+ * SUBTEST: dispatch
+ *
+ * SUBTEST: dispatch-queued
+ *
+ * SUBTEST: execution-latency
+ *
+ * SUBTEST: live-dispatch
+ *
+ * SUBTEST: live-dispatch-queued
+ *
+ * SUBTEST: poll
+ *
+ * SUBTEST: preemption
+ *
+ * SUBTEST: rthog-submit
+ *
+ * SUBTEST: synchronisation
+ *
+ * SUBTEST: synchronisation-queued
+ *
+ * SUBTEST: wakeup-latency
+ */
 
 #define ENGINE_FLAGS  (I915_EXEC_RING_MASK | I915_EXEC_BSD_MASK)
 
diff --git a/tests/i915/gem_exec_lut_handle.c b/tests/i915/gem_exec_lut_handle.c
index 064308666773..c5e8f1d72fd8 100644
--- a/tests/i915/gem_exec_lut_handle.c
+++ b/tests/i915/gem_exec_lut_handle.c
@@ -40,6 +40,13 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem exec lut handle
+ * Description: Exercises the basic execbuffer using the handle LUT interface.
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Exercises the basic execbuffer using the handle LUT"
 		     " interface.");
diff --git a/tests/i915/gem_exec_nop.c b/tests/i915/gem_exec_nop.c
index 497f57f0827b..1d44456d06fa 100644
--- a/tests/i915/gem_exec_nop.c
+++ b/tests/i915/gem_exec_nop.c
@@ -48,6 +48,61 @@
 #include "igt_sysfs.h"
 #include "intel_ctx.h"
 
+/**
+ * TEST: gem exec nop
+ * Run type: FULL
+ *
+ * SUBTEST: basic-parallel
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-sequential
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-series
+ * Feature: cmd_submission
+ *
+ * SUBTEST: context-sequential
+ * Feature: cmd_submission
+ *
+ * SUBTEST: forked-sequential
+ * Feature: cmd_submission
+ *
+ * SUBTEST: headless
+ * Feature: cmd_submission
+ *
+ * SUBTEST: independent
+ * Feature: cmd_submission
+ *
+ * SUBTEST: multiple
+ * Feature: cmd_submission
+ *
+ * SUBTEST: parallel
+ * Feature: cmd_submission
+ *
+ * SUBTEST: poll
+ * Feature: cmd_submission
+ *
+ * SUBTEST: poll-sequential
+ * Feature: cmd_submission
+ *
+ * SUBTEST: preempt
+ * Feature: cmd_submission, multitile
+ *
+ * SUBTEST: sequential
+ * Feature: cmd_submission
+ *
+ * SUBTEST: series
+ * Feature: cmd_submission
+ *
+ * SUBTEST: signal
+ * Feature: cmd_submission, multitile
+ *
+ * SUBTEST: signal-all
+ * Feature: cmd_submission, multitile
+ *
+ * SUBTEST: single
+ * Feature: cmd_submission
+ */
 
 #define ENGINE_FLAGS  (I915_EXEC_RING_MASK | I915_EXEC_BSD_MASK)
 
diff --git a/tests/i915/gem_exec_parallel.c b/tests/i915/gem_exec_parallel.c
index 705b22cb9f8f..0e42aa364ca7 100644
--- a/tests/i915/gem_exec_parallel.c
+++ b/tests/i915/gem_exec_parallel.c
@@ -33,6 +33,31 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_gt.h"
+/**
+ * TEST: gem exec parallel
+ * Description: Exercise filling buffers by many clients working in parallel.
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic
+ * Description: Check basic functionality per engine.
+ * Run type: FULL
+ *
+ * SUBTEST: contexts
+ * Description: Check with many contexts.
+ * Run type: FULL
+ *
+ * SUBTEST: engines
+ * Description: Check with engines working in parallel.
+ * Run type: BAT
+ *
+ * SUBTEST: fds
+ * Description: Check with many fds.
+ * Run type: FULL
+ *
+ * SUBTEST: userptr
+ * Description: Check basic userptr thrashing.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Exercise filling buffers by many clients working in parallel.");
 
diff --git a/tests/i915/gem_exec_params.c b/tests/i915/gem_exec_params.c
index d0805d330f7a..bd7ec2cd1f39 100644
--- a/tests/i915/gem_exec_params.c
+++ b/tests/i915/gem_exec_params.c
@@ -44,6 +44,109 @@
 #include "igt.h"
 #include "igt_device.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec params
+ * Run type: FULL
+ *
+ * SUBTEST: DR1-dirt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: DR4-dirt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: batch-first
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cliprects-invalid
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cliprects_ptr-dirt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-batch-start-offset
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd-ring
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd1-flag-on-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd1-flag-on-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd1-flag-on-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd2-flag-on-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd2-flag-on-render
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-bsd2-flag-on-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-fence-in
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-fence-in-submit
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-flag
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-ring
+ * Feature: cmd_submission
+ *
+ * SUBTEST: invalid-ring2
+ * Feature: cmd_submission
+ *
+ * SUBTEST: larger-than-life-batch
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmapped
+ * Feature: cmd_submission
+ *
+ * SUBTEST: no-blt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: no-bsd
+ * Feature: cmd_submission
+ *
+ * SUBTEST: no-vebox
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly
+ * Feature: cmd_submission
+ *
+ * SUBTEST: rel-constants-invalid
+ * Feature: cmd_submission
+ *
+ * SUBTEST: rel-constants-invalid-rel-gen5
+ * Feature: cmd_submission
+ *
+ * SUBTEST: rel-constants-invalid-ring
+ * Feature: cmd_submission
+ *
+ * SUBTEST: rs-invalid
+ * Feature: cmd_submission
+ *
+ * SUBTEST: rsvd2-dirt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: secure-non-master
+ * Feature: cmd_submission, obsolete
+ *
+ * SUBTEST: secure-non-root
+ * Feature: cmd_submission, obsolete
+ *
+ * SUBTEST: sol-reset-invalid
+ * Feature: cmd_submission
+ *
+ * SUBTEST: sol-reset-not-gen7
+ * Feature: cmd_submission
+ */
 
 #define ALIGNMENT (1 << 22)
 
diff --git a/tests/i915/gem_exec_reloc.c b/tests/i915/gem_exec_reloc.c
index 3ce89ca64962..c591f374dff2 100644
--- a/tests/i915/gem_exec_reloc.c
+++ b/tests/i915/gem_exec_reloc.c
@@ -31,6 +31,599 @@
 #include "igt_dummyload.h"
 #include "igt_kms.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec reloc
+ * Description: Basic sanity check of execbuf-ioctl relocations.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-concurrent0
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-concurrent16
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-gtt
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-cpu-gtt-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-cpu-gtt-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-cpu-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-read
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-read-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-read-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-wc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-wc-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-cpu-wc-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-gtt
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-cpu
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-cpu-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-cpu-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-read
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-read-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-read-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-wc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-wc-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-gtt-wc-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-range
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-range-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-scanout
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-softpin
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-cpu
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-cpu-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-cpu-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-gtt
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-wc-gtt-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-wc-gtt-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-wc-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-read
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-read-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-wc-read-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-cpu
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-cpu-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-cpu-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-gtt
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-write-gtt-active
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-write-gtt-noreloc
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: basic-write-read
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-read-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-read-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-wc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-wc-active
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic-write-wc-noreloc
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-12
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-13
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-14
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-15
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-16
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-17
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-18
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-19
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-20
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-21
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-22
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-23
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-24
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-25
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-26
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-27
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-28
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-29
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-30
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-31
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-32
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-gtt-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: cpu-gtt-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: cpu-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-read-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-read-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-wc-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: cpu-wc-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: gpu
+ * Feature: cmd_submission
+ *
+ * SUBTEST: gtt-12
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-13
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-14
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-15
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-16
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-17
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-18
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-19
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-20
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-21
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-22
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-23
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-24
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-25
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-26
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-27
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-28
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-29
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-30
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-31
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-32
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-cpu-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-cpu-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-read-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-read-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-wc-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: gtt-wc-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: invalid-domains
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-12
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-13
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-14
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-15
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-16
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-17
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-18
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-19
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-20
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-21
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-22
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-23
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-24
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-25
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-26
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-27
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-28
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-29
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-30
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-31
+ * Feature: cmd_submission
+ *
+ * SUBTEST: mmap-32
+ * Feature: cmd_submission
+ *
+ * SUBTEST: range-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: range-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-12
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-13
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-14
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-15
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-16
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-17
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-18
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-19
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-20
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-21
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-22
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-23
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-24
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-25
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-26
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-27
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-28
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-29
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-30
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-31
+ * Feature: cmd_submission
+ *
+ * SUBTEST: readonly-32
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-12
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-13
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-14
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-15
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-16
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-17
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-18
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-19
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-20
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-21
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-22
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-23
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-24
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-25
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-26
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-27
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-28
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-29
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-30
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-31
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-32
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-cpu-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-cpu-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-gtt-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: wc-gtt-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: wc-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-read-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wc-read-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: write-cpu-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: write-cpu-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: write-gtt-hang
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: write-gtt-interruptible
+ * Feature: cmd_submission, gtt
+ *
+ * SUBTEST: write-read-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: write-read-interruptible
+ * Feature: cmd_submission
+ *
+ * SUBTEST: write-wc-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: write-wc-interruptible
+ * Feature: cmd_submission
+ */
 
 IGT_TEST_DESCRIPTION("Basic sanity check of execbuf-ioctl relocations.");
 
diff --git a/tests/i915/gem_exec_schedule.c b/tests/i915/gem_exec_schedule.c
index ab1dd7749baf..d17d07893f07 100644
--- a/tests/i915/gem_exec_schedule.c
+++ b/tests/i915/gem_exec_schedule.c
@@ -44,6 +44,188 @@
 #include "igt_vgem.h"
 #include "intel_ctx.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem exec schedule
+ * Description: Check that we can control the order of execution
+ * Run type: FULL
+ *
+ * SUBTEST: deep
+ * Feature: cmd_submission
+ *
+ * SUBTEST: fairslice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: fairslice-all
+ * Feature: cmd_submission
+ *
+ * SUBTEST: fifo
+ * Feature: cmd_submission
+ *
+ * SUBTEST: implicit-boths
+ * Feature: cmd_submission
+ *
+ * SUBTEST: implicit-read-write
+ * Feature: cmd_submission
+ *
+ * SUBTEST: implicit-write-read
+ * Feature: cmd_submission
+ *
+ * SUBTEST: in-order
+ * Feature: cmd_submission
+ *
+ * SUBTEST: independent
+ * Feature: cmd_submission
+ *
+ * SUBTEST: lateslice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: manyslice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: noreorder
+ * Feature: cmd_submission
+ *
+ * SUBTEST: noreorder-corked
+ * Feature: cmd_submission
+ *
+ * SUBTEST: noreorder-priority
+ * Feature: cmd_submission
+ *
+ * SUBTEST: out-order
+ * Feature: cmd_submission
+ *
+ * SUBTEST: pi-common
+ * Feature: cmd_submission
+ *
+ * SUBTEST: pi-distinct-iova
+ * Feature: cmd_submission
+ *
+ * SUBTEST: pi-ringfull
+ * Feature: cmd_submission
+ *
+ * SUBTEST: pi-shared-iova
+ * Feature: cmd_submission
+ *
+ * SUBTEST: pi-userfault
+ * Feature: cmd_submission
+ *
+ * SUBTEST: preempt
+ * Feature: cmd_submission
+ *
+ * SUBTEST: preempt-contexts
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-engines
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-hang
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-other
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-other-chain
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-queue
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-queue-chain
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-queue-contexts
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-queue-contexts-chain
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-self
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preempt-user
+ * Feature: cmd_submission, multictx
+ *
+ * SUBTEST: preemptive-hang
+ * Feature: cmd_submission
+ *
+ * SUBTEST: promotion
+ * Feature: cmd_submission
+ *
+ * SUBTEST: reorder-wide
+ * Feature: cmd_submission
+ *
+ * SUBTEST: semaphore-codependency
+ * Feature: cmd_submission
+ *
+ * SUBTEST: semaphore-noskip
+ * Feature: cmd_submission
+ *
+ * SUBTEST: semaphore-power
+ * Feature: cmd_submission
+ *
+ * SUBTEST: semaphore-resolve
+ * Feature: cmd_submission
+ *
+ * SUBTEST: semaphore-user
+ * Feature: cmd_submission
+ *
+ * SUBTEST: smoketest
+ * Feature: cmd_submission
+ *
+ * SUBTEST: smoketest-all
+ * Feature: cmd_submission
+ *
+ * SUBTEST: submit-early-slice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: submit-golden-slice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: submit-late-slice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: thriceslice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: timeslicing
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-fairslice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-fairslice-all
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-independent
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-lateslice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-semaphore-codependency
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-semaphore-noskip
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-semaphore-resolve
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-semaphore-user
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-submit-early-slice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-submit-golden-slice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: u-submit-late-slice
+ * Feature: cmd_submission
+ *
+ * SUBTEST: wide
+ * Feature: cmd_submission
+ */
 
 #define LO 0
 #define HI 1
diff --git a/tests/i915/gem_exec_store.c b/tests/i915/gem_exec_store.c
index 7d23bcd5b420..19c1a060e3b0 100644
--- a/tests/i915/gem_exec_store.c
+++ b/tests/i915/gem_exec_store.c
@@ -34,6 +34,27 @@
 #include "igt.h"
 #include "igt_device.h"
 #include "igt_gt.h"
+/**
+ * TEST: gem exec store
+ * Description: Exercise store dword functionality using execbuf-ioctl
+ * Feature: cmd_submission
+ *
+ * SUBTEST: basic
+ * Description: Verify that all capable engines can store dwords to a common buffer object
+ * Run type: BAT
+ *
+ * SUBTEST: cachelines
+ * Description: Verify that each capable engine can store a dword to different cachelines of a buffer object
+ * Run type: FULL
+ *
+ * SUBTEST: dword
+ * Description: Verify that each capable engine can store a dword to a buffer object
+ * Run type: FULL
+ *
+ * SUBTEST: pages
+ * Description: Verify that each capable engine can store a dword to various page-sized buffer objects
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Exercise store dword functionality using execbuf-ioctl");
 
diff --git a/tests/i915/gem_exec_suspend.c b/tests/i915/gem_exec_suspend.c
index 8d56093faa00..de1864224438 100644
--- a/tests/i915/gem_exec_suspend.c
+++ b/tests/i915/gem_exec_suspend.c
@@ -36,6 +36,87 @@
 #include "igt_dummyload.h"
 #include "igt_gt.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: gem exec suspend
+ * Description: Exercise simple execbufs runs across various suspend/resume cycles.
+ * Feature: cmd_submission, suspend
+ *
+ * SUBTEST: basic
+ * Description: Check basic functionality without any suspend/resume cycle.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-S0
+ * Description: Check with suspend-to-idle target state.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-S3
+ * Description: Check full cycle of suspend-to-mem.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-S3-devices
+ * Description: Check with suspend-to-mem with devices only.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-S4
+ * Description: Check full cycle of suspend-to-disk.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-S4-devices
+ * Description: Check with suspend-to-disk with devices only.
+ * Run type: FULL
+ *
+ * SUBTEST: cached
+ * Description: Check without suspend/resume cycle state with cached object.
+ * Run type: FULL
+ *
+ * SUBTEST: cached-S3
+ * Description: Check suspend-to-mem state with cached object.
+ * Run type: FULL
+ *
+ * SUBTEST: cached-S4
+ * Description: Check suspend-to-disk state with cached object.
+ * Run type: FULL
+ *
+ * SUBTEST: fixed
+ * Description: Check without suspend/resume cycle state with fixed object.
+ * Run type: FULL
+ *
+ * SUBTEST: fixed-S3
+ * Description: Check suspend-to-mem state with fixed object.
+ * Run type: FULL
+ *
+ * SUBTEST: fixed-S4
+ * Description: Check suspend-to-disk state with fixed object.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-S3
+ * Description: Check full cycle of suspend-to-mem with a pending GPU hang.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-S4
+ * Description: Check full cycle of suspend-to-disk with a pending GPU hang.
+ * Run type: FULL
+ *
+ * SUBTEST: power-S0
+ * Description: Check power consumption during idle state.
+ * Run type: FULL
+ *
+ * SUBTEST: power-S3
+ * Description: Check power consumption during suspend-to-mem state.
+ * Run type: FULL
+ *
+ * SUBTEST: uncached
+ * Description: Check without suspend/resume cycle state with uncached object.
+ * Run type: FULL
+ *
+ * SUBTEST: uncached-S3
+ * Description: Check suspend-to-mem state with uncached object.
+ * Run type: FULL
+ *
+ * SUBTEST: uncached-S4
+ * Description: Check suspend-to-disk state with uncached object.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Exercise simple execbufs runs across various suspend/resume cycles.");
 
diff --git a/tests/i915/gem_exec_whisper.c b/tests/i915/gem_exec_whisper.c
index 29d96cdcaa8e..3a1ca995c9c5 100644
--- a/tests/i915/gem_exec_whisper.c
+++ b/tests/i915/gem_exec_whisper.c
@@ -37,6 +37,195 @@
 #include "igt_rand.h"
 #include "igt_sysfs.h"
 #include "intel_ctx.h"
+/**
+ * TEST: gem exec whisper
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: basic-contexts
+ *
+ * SUBTEST: basic-contexts-all
+ *
+ * SUBTEST: basic-contexts-forked
+ *
+ * SUBTEST: basic-contexts-forked-all
+ *
+ * SUBTEST: basic-contexts-priority
+ *
+ * SUBTEST: basic-contexts-priority-all
+ *
+ * SUBTEST: basic-fds
+ *
+ * SUBTEST: basic-fds-all
+ *
+ * SUBTEST: basic-fds-forked
+ *
+ * SUBTEST: basic-fds-forked-all
+ *
+ * SUBTEST: basic-fds-priority
+ *
+ * SUBTEST: basic-fds-priority-all
+ *
+ * SUBTEST: basic-forked
+ *
+ * SUBTEST: basic-forked-all
+ *
+ * SUBTEST: basic-normal
+ *
+ * SUBTEST: basic-normal-all
+ *
+ * SUBTEST: basic-queues
+ *
+ * SUBTEST: basic-queues-all
+ *
+ * SUBTEST: basic-queues-forked
+ *
+ * SUBTEST: basic-queues-forked-all
+ *
+ * SUBTEST: basic-queues-priority
+ *
+ * SUBTEST: basic-queues-priority-all
+ *
+ * SUBTEST: basic-sync
+ *
+ * SUBTEST: basic-sync-all
+ *
+ * SUBTEST: chain
+ *
+ * SUBTEST: chain-all
+ *
+ * SUBTEST: chain-forked
+ *
+ * SUBTEST: chain-forked-all
+ *
+ * SUBTEST: chain-interruptible
+ *
+ * SUBTEST: chain-interruptible-all
+ *
+ * SUBTEST: chain-sync
+ *
+ * SUBTEST: chain-sync-all
+ *
+ * SUBTEST: contexts-chain
+ *
+ * SUBTEST: contexts-chain-all
+ *
+ * SUBTEST: contexts-engine
+ *
+ * SUBTEST: contexts-forked-engine
+ *
+ * SUBTEST: contexts-interruptible
+ *
+ * SUBTEST: contexts-interruptible-all
+ *
+ * SUBTEST: contexts-interruptible-engine
+ *
+ * SUBTEST: contexts-priority-engine
+ *
+ * SUBTEST: contexts-sync
+ *
+ * SUBTEST: contexts-sync-all
+ *
+ * SUBTEST: contexts-sync-engine
+ *
+ * SUBTEST: fds-chain
+ *
+ * SUBTEST: fds-chain-all
+ *
+ * SUBTEST: fds-engine
+ *
+ * SUBTEST: fds-forked-engine
+ *
+ * SUBTEST: fds-interruptible
+ *
+ * SUBTEST: fds-interruptible-all
+ *
+ * SUBTEST: fds-interruptible-engine
+ *
+ * SUBTEST: fds-priority-engine
+ *
+ * SUBTEST: fds-sync
+ *
+ * SUBTEST: fds-sync-all
+ *
+ * SUBTEST: fds-sync-engine
+ *
+ * SUBTEST: forked-engine
+ *
+ * SUBTEST: hang-chain
+ *
+ * SUBTEST: hang-chain-forked
+ *
+ * SUBTEST: hang-chain-sync
+ *
+ * SUBTEST: hang-contexts
+ *
+ * SUBTEST: hang-contexts-chain
+ *
+ * SUBTEST: hang-contexts-forked
+ *
+ * SUBTEST: hang-contexts-priority
+ *
+ * SUBTEST: hang-contexts-sync
+ *
+ * SUBTEST: hang-fds
+ *
+ * SUBTEST: hang-fds-chain
+ *
+ * SUBTEST: hang-fds-forked
+ *
+ * SUBTEST: hang-fds-priority
+ *
+ * SUBTEST: hang-fds-sync
+ *
+ * SUBTEST: hang-forked
+ *
+ * SUBTEST: hang-normal
+ *
+ * SUBTEST: hang-queues
+ *
+ * SUBTEST: hang-queues-chain
+ *
+ * SUBTEST: hang-queues-forked
+ *
+ * SUBTEST: hang-queues-priority
+ *
+ * SUBTEST: hang-queues-sync
+ *
+ * SUBTEST: hang-sync
+ *
+ * SUBTEST: interruptible
+ *
+ * SUBTEST: interruptible-all
+ *
+ * SUBTEST: interruptible-engine
+ *
+ * SUBTEST: normal-engine
+ *
+ * SUBTEST: queues-chain
+ *
+ * SUBTEST: queues-chain-all
+ *
+ * SUBTEST: queues-engine
+ *
+ * SUBTEST: queues-forked-engine
+ *
+ * SUBTEST: queues-interruptible
+ *
+ * SUBTEST: queues-interruptible-all
+ *
+ * SUBTEST: queues-interruptible-engine
+ *
+ * SUBTEST: queues-priority-engine
+ *
+ * SUBTEST: queues-sync
+ *
+ * SUBTEST: queues-sync-all
+ *
+ * SUBTEST: queues-sync-engine
+ *
+ * SUBTEST: sync-engine
+ */
 
 #define ENGINE_MASK  (I915_EXEC_RING_MASK | I915_EXEC_BSD_MASK)
 
diff --git a/tests/i915/gem_exercise_blt.c b/tests/i915/gem_exercise_blt.c
index fb11fb925c17..af86d5edc2ab 100644
--- a/tests/i915/gem_exercise_blt.c
+++ b/tests/i915/gem_exercise_blt.c
@@ -10,6 +10,18 @@
 #include "lib/intel_chipset.h"
 #include "i915/i915_blt.h"
 #include "i915/intel_mocs.h"
+/**
+ * TEST: gem exercise blt
+ * Description: Exercise blitter commands
+ * Feature: blitter
+ * Run type: FULL
+ *
+ * SUBTEST: fast-copy
+ * Description: Check fast-copy blit
+ *
+ * SUBTEST: fast-copy-emit
+ * Description: Check multiple fast-copy in one batch
+ */
 
 IGT_TEST_DESCRIPTION("Exercise blitter commands");
 
diff --git a/tests/i915/gem_fd_exhaustion.c b/tests/i915/gem_fd_exhaustion.c
index a6463685e1c7..75485c1cbef3 100644
--- a/tests/i915/gem_fd_exhaustion.c
+++ b/tests/i915/gem_fd_exhaustion.c
@@ -34,6 +34,12 @@
 #include <limits.h>
 
 #include "i915/gem_create.h"
+/**
+ * TEST: gem fd exhaustion
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 igt_simple_main
 {
diff --git a/tests/i915/gem_fence_thrash.c b/tests/i915/gem_fence_thrash.c
index 89a5ae29d295..f8ac29dd78f7 100644
--- a/tests/i915/gem_fence_thrash.c
+++ b/tests/i915/gem_fence_thrash.c
@@ -43,6 +43,25 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_x86.h"
+/**
+ * TEST: gem fence thrash
+ * Feature: gtt, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: bo-copy
+ *
+ * SUBTEST: bo-write-verify-none
+ *
+ * SUBTEST: bo-write-verify-threaded-none
+ *
+ * SUBTEST: bo-write-verify-threaded-x
+ *
+ * SUBTEST: bo-write-verify-threaded-y
+ *
+ * SUBTEST: bo-write-verify-x
+ *
+ * SUBTEST: bo-write-verify-y
+ */
 
 #define PAGE_SIZE 4096
 #define CACHELINE 64
diff --git a/tests/i915/gem_fence_upload.c b/tests/i915/gem_fence_upload.c
index 67487d671970..b239c0e7872d 100644
--- a/tests/i915/gem_fence_upload.c
+++ b/tests/i915/gem_fence_upload.c
@@ -41,6 +41,22 @@
 #include "drm.h"
 #include "i915_drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem fence upload
+ * Run type: FULL
+ *
+ * SUBTEST: performance
+ *
+ * SUBTEST: thread-contention
+ *
+ * SUBTEST: thread-performance-both
+ *
+ * SUBTEST: thread-performance-read
+ *
+ * SUBTEST: thread-performance-write
+ *
+ * SUBTEST: wc-contention
+ */
 
 #define OBJECT_SIZE (1024*1024) /* restricted to 1MiB alignment on i915 fences */
 
diff --git a/tests/i915/gem_fenced_exec_thrash.c b/tests/i915/gem_fenced_exec_thrash.c
index a9597d801505..f22f16f683cb 100644
--- a/tests/i915/gem_fenced_exec_thrash.c
+++ b/tests/i915/gem_fenced_exec_thrash.c
@@ -33,6 +33,24 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem fenced exec thrash
+ * Description: Test execbuf fence accounting.
+ * Feature: gtt, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: 2-spare-fences
+ *
+ * SUBTEST: no-spare-fences
+ *
+ * SUBTEST: no-spare-fences-busy
+ *
+ * SUBTEST: no-spare-fences-busy-interruptible
+ *
+ * SUBTEST: no-spare-fences-interruptible
+ *
+ * SUBTEST: too-many-fences
+ */
 
 IGT_TEST_DESCRIPTION("Test execbuf fence accounting.");
 
diff --git a/tests/i915/gem_flink_basic.c b/tests/i915/gem_flink_basic.c
index 2620bc55daf0..7feabf61a303 100644
--- a/tests/i915/gem_flink_basic.c
+++ b/tests/i915/gem_flink_basic.c
@@ -38,6 +38,27 @@
 
 #include "igt.h"
 #include "igt_types.h"
+/**
+ * TEST: gem flink basic
+ * Description: Tests for flink - a way to export a gem object by name
+ * Feature: xorg_dri2
+ * Run type: BAT
+ *
+ * SUBTEST: bad-flink
+ * Description: Verify that GEM_FLINK ioctl with invalid gem object fails.
+ *
+ * SUBTEST: bad-open
+ * Description: Verify that GEM_OPEN ioctl with invalid flink name fails.
+ *
+ * SUBTEST: basic
+ * Description: Check if gem object can be exported to global namespace and then opened.
+ *
+ * SUBTEST: double-flink
+ * Description: Tests that multiple flinks for the same gem object share the same name.
+ *
+ * SUBTEST: flink-lifetime
+ * Description: Tests flink lifetime by referencing from multiple descriptors.
+ */
 
 IGT_TEST_DESCRIPTION("Tests for flink - a way to export a gem object by name");
 
diff --git a/tests/i915/gem_flink_race.c b/tests/i915/gem_flink_race.c
index 70e133d708c0..5ebf1969b992 100644
--- a/tests/i915/gem_flink_race.c
+++ b/tests/i915/gem_flink_race.c
@@ -35,6 +35,16 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_stats.h"
+/**
+ * TEST: gem flink race
+ * Description: Check for flink/open vs. gem close races.
+ * Feature: xorg_dri2
+ * Run type: FULL
+ *
+ * SUBTEST: flink_close
+ *
+ * SUBTEST: flink_name
+ */
 
 IGT_TEST_DESCRIPTION("Check for flink/open vs. gem close races.");
 
diff --git a/tests/i915/gem_gpgpu_fill.c b/tests/i915/gem_gpgpu_fill.c
index 74a227f678e7..f350e9fbb6d0 100644
--- a/tests/i915/gem_gpgpu_fill.c
+++ b/tests/i915/gem_gpgpu_fill.c
@@ -48,6 +48,13 @@
 #include "igt_collection.h"
 #include "intel_bufops.h"
 #include "i915/intel_memory_region.h"
+/**
+ * TEST: gem gpgpu fill
+ * Feature: compute
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ */
 
 #define WIDTH 64
 #define HEIGHT 64
diff --git a/tests/i915/gem_gtt_cpu_tlb.c b/tests/i915/gem_gtt_cpu_tlb.c
index 8000e58cc5d3..4f4af6a7b9b5 100644
--- a/tests/i915/gem_gtt_cpu_tlb.c
+++ b/tests/i915/gem_gtt_cpu_tlb.c
@@ -43,6 +43,14 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem gtt cpu tlb
+ * Description: Check whether gtt tlbs for cpu access are correctly invalidated.
+ * Feature: gtt, mapping
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check whether gtt tlbs for cpu access are correctly"
 		     " invalidated.");
diff --git a/tests/i915/gem_gtt_hog.c b/tests/i915/gem_gtt_hog.c
index 15a6139ea152..4c8158c6d85a 100644
--- a/tests/i915/gem_gtt_hog.c
+++ b/tests/i915/gem_gtt_hog.c
@@ -42,6 +42,12 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem gtt hog
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 static const uint32_t canary = 0xdeadbeef;
 
diff --git a/tests/i915/gem_gtt_speed.c b/tests/i915/gem_gtt_speed.c
index 272091fdbf31..a0e37b19e6ad 100644
--- a/tests/i915/gem_gtt_speed.c
+++ b/tests/i915/gem_gtt_speed.c
@@ -42,6 +42,12 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem gtt speed
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define OBJECT_SIZE 16384
 
diff --git a/tests/i915/gem_huc_copy.c b/tests/i915/gem_huc_copy.c
index ea32b705ab7c..5a217c9840ea 100644
--- a/tests/i915/gem_huc_copy.c
+++ b/tests/i915/gem_huc_copy.c
@@ -35,6 +35,17 @@
 #include "drm.h"
 #include "i915/gem.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem huc copy
+ * Description: A very simple workload for the HuC.
+ * Feature: huc
+ * Run type: BAT
+ *
+ * SUBTEST: huc-copy
+ * Description:
+ *   Make sure that Huc firmware worksby copying a char array using Hucand verifying the copied
+ *   result
+ */
 
 IGT_TEST_DESCRIPTION("A very simple workload for the HuC.");
 
diff --git a/tests/i915/gem_linear_blits.c b/tests/i915/gem_linear_blits.c
index 4899af585355..4c3576503ca3 100644
--- a/tests/i915/gem_linear_blits.c
+++ b/tests/i915/gem_linear_blits.c
@@ -49,6 +49,23 @@
 #include "igt.h"
 #include "igt_types.h"
 #include "i915/i915_blt.h"
+/**
+ * TEST: gem linear blits
+ * Description: Test doing many blits with a working set larger than the aperture size.
+ * Feature: blitter
+ *
+ * SUBTEST: basic
+ * Description: Basic blitter functionality check with 2 buffers
+ * Run type: BAT
+ *
+ * SUBTEST: interruptible
+ * Description: Test with interrupts in between the parent process
+ * Run type: FULL
+ *
+ * SUBTEST: normal
+ * Description: The intent is to push beyond the working GTT size to force the driver to rebind the buffers
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Test doing many blits with a working set larger than the"
 		     " aperture size.");
diff --git a/tests/i915/gem_lmem_evict.c b/tests/i915/gem_lmem_evict.c
index 71a066de3104..9a8974b3ce09 100644
--- a/tests/i915/gem_lmem_evict.c
+++ b/tests/i915/gem_lmem_evict.c
@@ -7,6 +7,15 @@
 #include "igt_kmod.h"
 #include "i915/gem_create.h"
 #include "i915/gem.h"
+/**
+ * TEST: gem lmem evict
+ * Description: Force tiny lmem size for easily testing eviction scenarios.
+ * Feature: local_memory
+ * Run type: FULL
+ *
+ * SUBTEST: dontneed-evict-race
+ * Description: Regression test to verify that madvise will sync against busy dma-resv object for lmem
+ */
 
 IGT_TEST_DESCRIPTION("Force tiny lmem size for easily testing eviction scenarios.");
 
diff --git a/tests/i915/gem_lmem_swapping.c b/tests/i915/gem_lmem_swapping.c
index 55b044ecdd63..c3be8c53f20f 100644
--- a/tests/i915/gem_lmem_swapping.c
+++ b/tests/i915/gem_lmem_swapping.c
@@ -24,6 +24,95 @@
 #include "drm.h"
 #include "i915/i915_blt.h"
 #include "i915/intel_mocs.h"
+/**
+ * TEST: gem lmem swapping
+ * Description: Exercise local memory swapping.
+ * Feature: local_memory
+ *
+ * SUBTEST: basic
+ * Description: Exercise local memory swapping to system memory
+ * Run type: BAT
+ *
+ * SUBTEST: heavy-multi
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: heavy-random
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: heavy-verify-multi
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: heavy-verify-multi-ccs
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: heavy-verify-random
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: heavy-verify-random-ccs
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: massive
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: massive-random
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: parallel-multi
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: parallel-random
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: parallel-random-engines
+ * Description: Exercise local memory swapping to system memory
+ * Run type: BAT
+ *
+ * SUBTEST: parallel-random-verify
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: parallel-random-verify-ccs
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: random
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: random-engines
+ * Description: Exercise local memory swapping to system memory
+ * Run type: BAT
+ *
+ * SUBTEST: smem-oom
+ * Description: Exercise local memory swapping during exhausting system memory
+ * Run type: FULL
+ *
+ * SUBTEST: verify
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: verify-ccs
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ *
+ * SUBTEST: verify-random
+ * Description: Exercise local memory swapping to system memory
+ * Run type: BAT
+ *
+ * SUBTEST: verify-random-ccs
+ * Description: Exercise local memory swapping to system memory
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Exercise local memory swapping.");
 
diff --git a/tests/i915/gem_lut_handle.c b/tests/i915/gem_lut_handle.c
index 32f76aaa07f2..cdd56a5d842a 100644
--- a/tests/i915/gem_lut_handle.c
+++ b/tests/i915/gem_lut_handle.c
@@ -39,6 +39,13 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem lut handle
+ * Description: Exercises the basic execbuffer using the handle LUT interface.
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Exercises the basic execbuffer using the handle LUT"
 		     " interface.");
diff --git a/tests/i915/gem_madvise.c b/tests/i915/gem_madvise.c
index 2502d84c7738..17653cc4ad53 100644
--- a/tests/i915/gem_madvise.c
+++ b/tests/i915/gem_madvise.c
@@ -38,6 +38,31 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem madvise
+ * Description: Checks that the kernel reports EFAULT when trying to use purged bo.
+ * Run type: FULL
+ *
+ * SUBTEST: dontneed-after-mmap
+ * Description:
+ *   Check signal for Segmentation Fault and bus error after obtaining a purgeable object and
+ *   calling for sighandler.
+ * Feature: caching, mapping
+ *
+ * SUBTEST: dontneed-before-exec
+ * Description: Check if EXECBUFFER2 reports EFAULT when trying to submit purged bo for GPU.
+ * Feature: caching, gtt, mapping
+ *
+ * SUBTEST: dontneed-before-mmap
+ * Description:
+ *   Check signal for Segmentation Fault and bus error before obtaining a purgeable object and
+ *   calling for sighandler.
+ * Feature: caching, mapping
+ *
+ * SUBTEST: dontneed-before-pwrite
+ * Description: Check if PWRITE reports EFAULT when trying to use purged bo for write operation.
+ * Feature: caching, gtt, mapping
+ */
 
 IGT_TEST_DESCRIPTION("Checks that the kernel reports EFAULT when trying to use"
 		     " purged bo.");
diff --git a/tests/i915/gem_media_fill.c b/tests/i915/gem_media_fill.c
index e418047c2e74..07e7b3ccba63 100644
--- a/tests/i915/gem_media_fill.c
+++ b/tests/i915/gem_media_fill.c
@@ -45,6 +45,14 @@
 #include "drm.h"
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem media fill
+ * Description: Basic test for the media_fill() function, a very simple workload for the Media pipeline.
+ * Feature: media
+ * Run type: FULL
+ *
+ * SUBTEST: media-fill
+ */
 
 IGT_TEST_DESCRIPTION("Basic test for the media_fill() function, a very simple"
 		     " workload for the Media pipeline.");
diff --git a/tests/i915/gem_media_vme.c b/tests/i915/gem_media_vme.c
index 3ea70386cfea..38ebd157d9fd 100644
--- a/tests/i915/gem_media_vme.c
+++ b/tests/i915/gem_media_vme.c
@@ -35,6 +35,14 @@
 #include "drm.h"
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem media vme
+ * Description: A very simple workload for the VME media block.
+ * Feature: media
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("A very simple workload for the VME media block.");
 
diff --git a/tests/i915/gem_mmap.c b/tests/i915/gem_mmap.c
index 61f862a8e275..421c6f859f02 100644
--- a/tests/i915/gem_mmap.c
+++ b/tests/i915/gem_mmap.c
@@ -38,6 +38,63 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem mmap
+ * Description: Basic MMAP IOCTL tests for memory regions.
+ * Feature: mapping
+ *
+ * SUBTEST: bad-object
+ * Description: Verify mapping to invalid gem objects won't be created.
+ * Run type: FULL
+ *
+ * SUBTEST: bad-offset
+ * Description: Verify mapping to gem object with invalid offset won't be created.
+ * Run type: FULL
+ *
+ * SUBTEST: bad-size
+ * Description: Verify mapping to gem object with invalid size won't be created.
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Description:
+ *   Test basics of newly mapped gem object like default content, write and read coherency,
+ *   mapping existence after gem_close and unmapping.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-small-bo
+ * Description:
+ *   Test the write read coherency and simultaneous access of different pages of a small buffer
+ *   object.
+ * Run type: FULL
+ *
+ * SUBTEST: big-bo
+ * Description:
+ *   Test the write read coherency and simultaneous access of different pages of a big buffer
+ *   object.
+ * Run type: FULL
+ *
+ * SUBTEST: huge-bo
+ * Description:
+ *   Test the write read coherency and simultaneous access of different pages of a huge buffer
+ *   object.
+ * Run type: FULL
+ *
+ * SUBTEST: pf-nonblock
+ * Description:
+ *   Verify that GTT page faults are asynchronous to GPU rendering and completes within a
+ *   specific time.
+ * Run type: FULL
+ *
+ * SUBTEST: short-mmap
+ * Description: Map small buffer object though direct CPU access, bypassing GPU.
+ * Run type: FULL
+ *
+ * SUBTEST: swap-bo
+ * Description:
+ *   Test the write read coherency and simultaneous access of different pages while swapping
+ *   buffer object.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Basic MMAP IOCTL tests for memory regions.");
 
diff --git a/tests/i915/gem_mmap_gtt.c b/tests/i915/gem_mmap_gtt.c
index c14ab50eeee7..f053302ebc48 100644
--- a/tests/i915/gem_mmap_gtt.c
+++ b/tests/i915/gem_mmap_gtt.c
@@ -47,6 +47,494 @@
 #include "igt_sysfs.h"
 #include "igt_x86.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem mmap gtt
+ * Description: Ensure that all operations around MMAP_GTT ioctl works.
+ *
+ * SUBTEST: bad-object
+ * Description: Verify mapping to invalid gem objects fails.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Description: Basic checks of GEM_MMAP_GTT ioctl.
+ * Feature: gtt
+ * Run type: BAT
+ *
+ * SUBTEST: basic-copy
+ * Description: Test copy between two GTT mmappings.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-read
+ * Description: Test to read content from GTT mmapped object.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-read-write
+ * Description: Check basic read->write order of a GTT mmapped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-read-write-distinct
+ * Description: Check distinct read->write order of a GTT mmapped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-short
+ * Description: Test mmaping less than the full object.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-small-bo
+ * Description: Check mmap access to a small buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-small-bo-tiledX
+ * Description:
+ *   Check mmap access to a small X-tiled buffer object by CPU directly and through GTT in
+ *   sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-small-bo-tiledY
+ * Description:
+ *   Check mmap access to a small Y-tiled buffer object by CPU directly and through GTT in
+ *   sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-small-copy
+ * Description: Check page by page copying between two GTT mmapped normal-small bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-small-copy-XY
+ * Description: Check page by page copying between two GTT mmapped tiled-small bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-small-copy-odd
+ * Description: Check page by page copying between two GTT mmapped odd tiled-small bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-wc
+ * Description:
+ *   Check the performance of WC writes with WC reads of GTT and WC writes of GTT with WB writes of.
+ *   CPU.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-write
+ * Description: Test to write content to GTT mmapped object.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-write-cpu-read-gtt
+ * Description: Check coherency between GTT and CPU mmappings with LLC.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-write-gtt
+ * Description: Test creates a prefault object into GTT and writes into it from another GTT mmapped.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-write-read
+ * Description: Check basic write->read order of a GTT mmapped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: basic-write-read-distinct
+ * Description: Check distinct write->read order of a GTT mmapped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: big-bo
+ * Description: Check mmap access to a big buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: big-bo-tiledX
+ * Description: Check mmap access to a big X-tiled buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: big-bo-tiledY
+ * Description: Check mmap access to a big Y-tiled buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: big-copy
+ * Description: Check page by page copying between two GTT mmapped normal-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: big-copy-XY
+ * Description: Check page by page copying between two GTT mmapped tiled-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: big-copy-odd
+ * Description: Check page by page copying between two GTT mmapped odd tiled-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: clflush
+ * Description: Check the userspace clflushing of the GTT mmap.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: close-race
+ * Description:
+ *   Test to check that a few threads opening and closing handles cause explosion in other threads
+ *   in the process of mmaping that handle.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: coherency
+ * Description: Check whether a write through the GTT is immediately visible to the CPU.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-basic-small-copy
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped normal-small bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-basic-small-copy-XY
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped tiled-small bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-basic-small-copy-odd
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped odd tiled-small bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-big-copy
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped normal-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-big-copy-XY
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped tiled-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-big-copy-odd
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped odd tiled-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-huge-copy
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped normal-huge bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-huge-copy-XY
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped tiled-huge bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-huge-copy-odd
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped odd tiled-huge bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-medium-copy
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped normal-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-medium-copy-XY
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped tiled-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-medium-copy-odd
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped odd tiled-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-swap-copy
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped normal-huge bo's larger than physical memory and resulting in
+ *   thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-swap-copy-XY
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped tiled-huge bo's larger than physical memory and resulting in
+ *   thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: cpuset-swap-copy-odd
+ * Description:
+ *   Add forked contention with lighter variant (single cpu) and check page by page copying
+ *   between two GTT mmapped odd tiled-huge bo's larger than physical memory and resulting in
+ *   thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: fault-concurrent
+ * Description: Excercise concurrent pagefaulting of a GTT mmaped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: fault-concurrent-X
+ * Description: Excercise concurrent pagefaulting of a X-tiled GTT mmaped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: fault-concurrent-Y
+ * Description: Excercise concurrent pagefaulting of a Y-tiled GTT mmaped bo.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: flink-race
+ * Description:
+ *   Test to check that a few threads opening and closing flink handles cause explosion in other
+ *   threads in the process of mmaping that handle.
+ * Feature: gtt, xorg_dri2
+ * Run type: FULL
+ *
+ * SUBTEST: forked-basic-small-copy
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped normal-small
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-basic-small-copy-XY
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped tiled-small
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-basic-small-copy-odd
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped odd tiled-small
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-big-copy
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped normal-big
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-big-copy-XY
+ * Description: Add forked contention and check page by page copying between two GTT mmapped tiled-big bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-big-copy-odd
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped odd tiled-big
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-huge-copy
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped normal-huge
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-huge-copy-XY
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped tiled-huge
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-huge-copy-odd
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped odd tiled-huge
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-medium-copy
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped normal-medium
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-medium-copy-XY
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped tiled-medium
+ *   bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-medium-copy-odd
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped odd
+ *   tiled-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-swap-copy
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped normal-huge
+ *   bo's larger than physical memory and resulting in thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-swap-copy-XY
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped tiled-huge bo's
+ *   larger than physical memory and resulting in thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: forked-swap-copy-odd
+ * Description:
+ *   Add forked contention and check page by page copying between two GTT mmapped odd tiled-huge
+ *   bo's larger than physical memory and resulting in thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: hang
+ * Description: Check read/writes across a GPU reset.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: hang-busy
+ * Description: Exercise the GTT mmap revocation for a reset on a busy object.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: hang-user
+ * Description: Mix a busy hang with GTT and userptr.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: huge-bo
+ * Description: Check mmap access to a huge buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: huge-bo-tiledX
+ * Description: Check mmap access to a huge X-tiled buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: huge-bo-tiledY
+ * Description: Check mmap access to a huge Y-tiled buffer object by CPU directly and through GTT in sequence.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: huge-copy
+ * Description: Check page by page copying between two GTT mmapped normal-huge bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: huge-copy-XY
+ * Description: Check page by page copying between two GTT mmapped tiled-huge bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: huge-copy-odd
+ * Description: Check page by page copying between two GTT mmapped odd tiled-huge bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: isolation
+ * Description:
+ *   Test mmap_offset lifetime, closing the object on another file should not affect the local
+ *   mmap_offset.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: medium-copy
+ * Description: Check page by page copying between two GTT mmapped normal-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: medium-copy-XY
+ * Description: Check page by page copying between two GTT mmapped tiled-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: medium-copy-odd
+ * Description: Check page by page copying between two GTT mmapped odd tiled-medium bo's.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: pf-nonblock
+ * Description: Check that the initial pagefault is non-blocking.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: ptrace
+ * Description: Inspect a GTT mmap using ptrace().
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: swap-copy
+ * Description:
+ *   Check page by page copying between two GTT mmapped normal-huge bo's larger than physical
+ *   memory and resulting in thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: swap-copy-XY
+ * Description:
+ *   Check page by page copying between two GTT mmapped tiled-huge bo's larger than physical
+ *   memory and resulting in thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: swap-copy-odd
+ * Description:
+ *   Check page by page copying between two GTT mmapped odd tiled-huge bo's larger than physical
+ *   memory and resulting in thrashing of swap space.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST: zero-extend
+ * Description: Test MMAP_GTT extension validity.
+ * Feature: gtt
+ * Run type: FULL
+ */
 
 #ifndef PAGE_SIZE
 #define PAGE_SIZE 4096
diff --git a/tests/i915/gem_mmap_offset.c b/tests/i915/gem_mmap_offset.c
index 962fc1b739ea..c02ee70e3298 100644
--- a/tests/i915/gem_mmap_offset.c
+++ b/tests/i915/gem_mmap_offset.c
@@ -38,6 +38,42 @@
 #include "i915/intel_memory_region.h"
 #include "igt.h"
 #include "igt_x86.h"
+/**
+ * TEST: gem mmap offset
+ * Description: Basic MMAP_OFFSET IOCTL tests for mem regions
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: bad-extensions
+ *
+ * SUBTEST: bad-flags
+ *
+ * SUBTEST: bad-object
+ * Description: Verify mapping to invalid gem objects won't be created
+ *
+ * SUBTEST: basic-uaf
+ * Description: Check buffer object mapping persists after gem_close
+ *
+ * SUBTEST: blt-coherency
+ *
+ * SUBTEST: clear
+ *
+ * SUBTEST: close-race
+ * Description: Check race between close and mmap offset between threads
+ *
+ * SUBTEST: isolation
+ *
+ * SUBTEST: oob-read
+ * Description: Check for out-of-bound access in vm_access
+ *
+ * SUBTEST: open-flood
+ *
+ * SUBTEST: perf
+ *
+ * SUBTEST: pf-nonblock
+ *
+ * SUBTEST: ptrace
+ */
 
 IGT_TEST_DESCRIPTION("Basic MMAP_OFFSET IOCTL tests for mem regions\n");
 
diff --git a/tests/i915/gem_mmap_wc.c b/tests/i915/gem_mmap_wc.c
index 6dc7bae49548..ce1c190838af 100644
--- a/tests/i915/gem_mmap_wc.c
+++ b/tests/i915/gem_mmap_wc.c
@@ -39,6 +39,73 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem mmap wc
+ * Run type: FULL
+ *
+ * SUBTEST: bad-object
+ * Feature: caching, mapping
+ *
+ * SUBTEST: bad-offset
+ * Feature: caching, mapping
+ *
+ * SUBTEST: bad-size
+ * Feature: caching, mapping
+ *
+ * SUBTEST: close
+ * Feature: caching, mapping
+ *
+ * SUBTEST: coherency
+ * Feature: caching, mapping
+ *
+ * SUBTEST: copy
+ * Feature: caching, mapping
+ *
+ * SUBTEST: fault-concurrent
+ * Feature: caching, mapping
+ *
+ * SUBTEST: invalid-flags
+ * Feature: caching, mapping
+ *
+ * SUBTEST: pf-nonblock
+ * Feature: caching, mapping
+ *
+ * SUBTEST: read
+ * Feature: caching, mapping
+ *
+ * SUBTEST: read-write
+ * Feature: caching, mapping
+ *
+ * SUBTEST: read-write-distinct
+ * Feature: caching, mapping
+ *
+ * SUBTEST: set-cache-level
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write-cpu-read-wc
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write-cpu-read-wc-unflushed
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write-gtt-read-wc
+ * Feature: caching, gtt, mapping
+ *
+ * SUBTEST: write-prefaulted
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write-read
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write-read-distinct
+ * Feature: caching, mapping
+ *
+ * SUBTEST: write-wc-read-gtt
+ * Feature: caching, gtt, mapping
+ */
 
 static int OBJECT_SIZE = 16*1024*1024;
 
diff --git a/tests/i915/gem_partial_pwrite_pread.c b/tests/i915/gem_partial_pwrite_pread.c
index 474149d48f42..1b533ef3097c 100644
--- a/tests/i915/gem_partial_pwrite_pread.c
+++ b/tests/i915/gem_partial_pwrite_pread.c
@@ -38,6 +38,68 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem partial pwrite pread
+ * Description: Test pwrite/pread consistency when touching partial cachelines.
+ * Feature: caching, mapping
+ * Run type: FULL
+ *
+ * SUBTEST: reads
+ * Description:
+ *   Verify if pread is consistent while accessing partial cachelines with default caching
+ *   level
+ *
+ * SUBTEST: reads-display
+ * Description:
+ *   Verify if pread is consistent while accessing partial cachelines with display caching
+ *   level
+ *
+ * SUBTEST: reads-snoop
+ * Description: Verify if pread is consistent while accessing partial cachelines with snoop caching level
+ *
+ * SUBTEST: reads-uncached
+ * Description:
+ *   Verify if pread is consistent while accessing partial cachelines with uncached caching
+ *   level
+ *
+ * SUBTEST: write
+ * Description:
+ *   Verify if pwrite is consistent while accessing partial cachelines with default caching
+ *   level
+ *
+ * SUBTEST: write-display
+ * Description:
+ *   Verify if pwrite is consistent while accessing partial cachelines with display caching
+ *   level
+ *
+ * SUBTEST: write-snoop
+ * Description: Verify if pwrite is consistent while accessing partial cachelines with snoop caching level
+ *
+ * SUBTEST: write-uncached
+ * Description:
+ *   Verify if pwrite is consistent while accessing partial cachelines with uncached caching
+ *   level
+ *
+ * SUBTEST: writes-after-reads
+ * Description:
+ *   Verify if both pread, pwrite are consistent while accessing partial cachelines with
+ *   default caching level
+ *
+ * SUBTEST: writes-after-reads-display
+ * Description:
+ *   Verify if both pread, pwrite are consistent while accessing partial cachelines with
+ *   display caching level
+ *
+ * SUBTEST: writes-after-reads-snoop
+ * Description:
+ *   Verify if both pread, pwrite are consistent while accessing partial cachelines with snoop
+ *   caching level
+ *
+ * SUBTEST: writes-after-reads-uncached
+ * Description:
+ *   Verify if both pread, pwrite are consistent while accessing partial cachelines with
+ *   uncached caching level
+ */
 
 IGT_TEST_DESCRIPTION("Test pwrite/pread consistency when touching partial"
 		     " cachelines.");
diff --git a/tests/i915/gem_pipe_control_store_loop.c b/tests/i915/gem_pipe_control_store_loop.c
index 59959a3742d5..5e6ef049085b 100644
--- a/tests/i915/gem_pipe_control_store_loop.c
+++ b/tests/i915/gem_pipe_control_store_loop.c
@@ -43,6 +43,18 @@
 #include "drm.h"
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem pipe control store loop
+ * Description: Test (TLB-)Coherency of pipe_control QW writes.
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: fresh-buffer
+ * Description: Checks tlb consistency of the pipe_control with fresh buffer.
+ *
+ * SUBTEST: reused-buffer
+ * Description: Checks tlb consistency of the pipe_control with reused buffer.
+ */
 
 IGT_TEST_DESCRIPTION("Test (TLB-)Coherency of pipe_control QW writes.");
 
diff --git a/tests/i915/gem_ppgtt.c b/tests/i915/gem_ppgtt.c
index c3102857a203..368f8b17db75 100644
--- a/tests/i915/gem_ppgtt.c
+++ b/tests/i915/gem_ppgtt.c
@@ -39,6 +39,27 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_debugfs.h"
+/**
+ * TEST: gem ppgtt
+ * Run type: FULL
+ *
+ * SUBTEST: blt-vs-render-ctx0
+ * Feature: mapping
+ *
+ * SUBTEST: blt-vs-render-ctxN
+ * Feature: mapping
+ *
+ * SUBTEST: flink-and-close-vma-leak
+ * Feature: mapping, xorg_dri2
+ *
+ * SUBTEST: shrink-vs-evict-any
+ * Description: Regression test to verify GTT eviction can't randomly fail due to object lock contention
+ * Feature: mapping
+ *
+ * SUBTEST: shrink-vs-evict-pinned
+ * Description: Regression test to verify GTT eviction can't randomly fail due to object lock contention
+ * Feature: mapping
+ */
 
 #define WIDTH 512
 #define STRIDE (WIDTH*4)
diff --git a/tests/i915/gem_pread.c b/tests/i915/gem_pread.c
index a8bf2b0540d7..1dbded440125 100644
--- a/tests/i915/gem_pread.c
+++ b/tests/i915/gem_pread.c
@@ -45,6 +45,23 @@
 #include "drm.h"
 #include "i915/gem_create.h"
 #include "igt_vgem.h"
+/**
+ * TEST: gem pread
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: bench
+ *
+ * SUBTEST: display
+ *
+ * SUBTEST: exhaustion
+ *
+ * SUBTEST: self
+ *
+ * SUBTEST: snoop
+ *
+ * SUBTEST: uncached
+ */
 
 #define MiB(x) ((x) * 1024 * 1024)
 
diff --git a/tests/i915/gem_pread_after_blit.c b/tests/i915/gem_pread_after_blit.c
index 3b56f787aa3f..fc6ee4408539 100644
--- a/tests/i915/gem_pread_after_blit.c
+++ b/tests/i915/gem_pread_after_blit.c
@@ -47,6 +47,35 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem pread after blit
+ * Description: Test pread behavior when getting values out of just-drawn-to buffers.
+ * Run type: FULL
+ *
+ * SUBTEST: default-hang
+ *
+ * SUBTEST: default-interruptible
+ *
+ * SUBTEST: default-normal
+ *
+ * SUBTEST: display-hang
+ *
+ * SUBTEST: display-interruptible
+ *
+ * SUBTEST: display-normal
+ *
+ * SUBTEST: snooped-hang
+ *
+ * SUBTEST: snooped-interruptible
+ *
+ * SUBTEST: snooped-normal
+ *
+ * SUBTEST: uncached-hang
+ *
+ * SUBTEST: uncached-interruptible
+ *
+ * SUBTEST: uncached-normal
+ */
 
 IGT_TEST_DESCRIPTION("Test pread behavior when getting values out of"
 		     " just-drawn-to buffers.");
diff --git a/tests/i915/gem_pwrite.c b/tests/i915/gem_pwrite.c
index 6e3f833cd88c..8471f963df0b 100644
--- a/tests/i915/gem_pwrite.c
+++ b/tests/i915/gem_pwrite.c
@@ -46,6 +46,73 @@
 #include "igt.h"
 #include "igt_rand.h"
 #include "igt_vgem.h"
+/**
+ * TEST: gem pwrite
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: basic-exhaustion
+ *
+ * SUBTEST: basic-random
+ *
+ * SUBTEST: basic-self
+ *
+ * SUBTEST: bench
+ *
+ * SUBTEST: big-cpu-backwards
+ *
+ * SUBTEST: big-cpu-fbr
+ *
+ * SUBTEST: big-cpu-forwards
+ *
+ * SUBTEST: big-cpu-random
+ *
+ * SUBTEST: big-gtt-backwards
+ *
+ * SUBTEST: big-gtt-fbr
+ *
+ * SUBTEST: big-gtt-forwards
+ *
+ * SUBTEST: big-gtt-random
+ *
+ * SUBTEST: display
+ *
+ * SUBTEST: huge-cpu-backwards
+ *
+ * SUBTEST: huge-cpu-fbr
+ *
+ * SUBTEST: huge-cpu-forwards
+ *
+ * SUBTEST: huge-cpu-random
+ *
+ * SUBTEST: huge-gtt-backwards
+ *
+ * SUBTEST: huge-gtt-fbr
+ *
+ * SUBTEST: huge-gtt-forwards
+ *
+ * SUBTEST: huge-gtt-random
+ *
+ * SUBTEST: small-cpu-backwards
+ *
+ * SUBTEST: small-cpu-fbr
+ *
+ * SUBTEST: small-cpu-forwards
+ *
+ * SUBTEST: small-cpu-random
+ *
+ * SUBTEST: small-gtt-backwards
+ *
+ * SUBTEST: small-gtt-fbr
+ *
+ * SUBTEST: small-gtt-forwards
+ *
+ * SUBTEST: small-gtt-random
+ *
+ * SUBTEST: snoop
+ *
+ * SUBTEST: uncached
+ */
 
 #define MiB(x) ((x) * 1024 * 1024)
 
diff --git a/tests/i915/gem_pwrite_snooped.c b/tests/i915/gem_pwrite_snooped.c
index e6a10747d5cb..7135dca57cbc 100644
--- a/tests/i915/gem_pwrite_snooped.c
+++ b/tests/i915/gem_pwrite_snooped.c
@@ -37,6 +37,14 @@
 #include "drm.h"
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem pwrite snooped
+ * Description: pwrite to a snooped bo then make it uncached and check that the GPU sees the data.
+ * Feature: gtt, mapping
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION(
    "pwrite to a snooped bo then make it uncached and check that the GPU sees the data.");
diff --git a/tests/i915/gem_pxp.c b/tests/i915/gem_pxp.c
index 2f27abd582e3..7668834dbf10 100644
--- a/tests/i915/gem_pxp.c
+++ b/tests/i915/gem_pxp.c
@@ -7,6 +7,85 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include <fcntl.h>
+/**
+ * TEST: gem pxp
+ * Description: Test PXP that manages protected content through arbitrated HW-PXP-session
+ * Run type: FULL
+ *
+ * SUBTEST: create-protected-buffer
+ * Feature: PXP
+ *
+ * SUBTEST: create-regular-buffer
+ * Description: Verify protected buffer on supported hw:
+ * Feature: PXP
+ *
+ * SUBTEST: create-regular-context-1
+ * Description: Verify protected context on supported hw:
+ * Feature: PXP
+ *
+ * SUBTEST: create-regular-context-2
+ * Feature: PXP
+ *
+ * SUBTEST: create-valid-protected-context
+ * Feature: PXP
+ *
+ * SUBTEST: display-protected-crc
+ * Description: Test the display CRC
+ * Feature: PXP
+ *
+ * SUBTEST: dmabuf-shared-protected-dst-is-context-refcounted
+ * Feature: PXP, prime
+ *
+ * SUBTEST: fail-invalid-protected-context
+ * Feature: PXP
+ *
+ * SUBTEST: hw-rejects-pxp-buffer
+ * Description: Verify protected buffer on unsupported hw:
+ * Feature: PXP
+ *
+ * SUBTEST: hw-rejects-pxp-context
+ * Description: Verify protected context on unsupported hw:
+ * Feature: PXP
+ *
+ * SUBTEST: protected-encrypted-src-copy-not-readible
+ * Feature: PXP
+ *
+ * SUBTEST: protected-raw-src-copy-not-readible
+ * Feature: PXP
+ *
+ * SUBTEST: regular-baseline-src-copy-readible
+ * Description: Verify protected render operations:
+ * Feature: PXP
+ *
+ * SUBTEST: reject-modify-context-protection-off-1
+ * Feature: PXP
+ *
+ * SUBTEST: reject-modify-context-protection-off-2
+ * Feature: PXP
+ *
+ * SUBTEST: reject-modify-context-protection-off-3
+ * Feature: PXP
+ *
+ * SUBTEST: reject-modify-context-protection-on
+ * Description: Verify protected context integrity:
+ * Feature: PXP
+ *
+ * SUBTEST: verify-pxp-execution-after-suspend-resume
+ * Feature: PXP
+ *
+ * SUBTEST: verify-pxp-key-change-after-suspend-resume
+ * Description: Verify suspend-resume teardown management:
+ * Feature: PXP
+ *
+ * SUBTEST: verify-pxp-stale-buf-execution
+ * Feature: PXP
+ *
+ * SUBTEST: verify-pxp-stale-buf-optout-execution
+ * Feature: PXP
+ *
+ * SUBTEST: verify-pxp-stale-ctx-execution
+ * Feature: PXP
+ */
 
 IGT_TEST_DESCRIPTION("Test PXP that manages protected content through arbitrated HW-PXP-session");
 /* Note: PXP = "Protected Xe Path" */
diff --git a/tests/i915/gem_read_read_speed.c b/tests/i915/gem_read_read_speed.c
index 7c5c90f79356..7eeba7c6ae42 100644
--- a/tests/i915/gem_read_read_speed.c
+++ b/tests/i915/gem_read_read_speed.c
@@ -42,6 +42,67 @@
 #include "i915/gem.h"
 #include "igt.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: gem read read speed
+ * Description: Test speed of concurrent reads between engines.
+ * Run type: FULL
+ *
+ * SUBTEST: read-read-1024x1024
+ *
+ * SUBTEST: read-read-128x128
+ *
+ * SUBTEST: read-read-2048x2048
+ *
+ * SUBTEST: read-read-256x256
+ *
+ * SUBTEST: read-read-4096x4096
+ *
+ * SUBTEST: read-read-512x512
+ *
+ * SUBTEST: read-read-8192x8192
+ *
+ * SUBTEST: read-write-1024x1024
+ *
+ * SUBTEST: read-write-128x128
+ *
+ * SUBTEST: read-write-2048x2048
+ *
+ * SUBTEST: read-write-256x256
+ *
+ * SUBTEST: read-write-4096x4096
+ *
+ * SUBTEST: read-write-512x512
+ *
+ * SUBTEST: read-write-8192x8192
+ *
+ * SUBTEST: write-read-1024x1024
+ *
+ * SUBTEST: write-read-128x128
+ *
+ * SUBTEST: write-read-2048x2048
+ *
+ * SUBTEST: write-read-256x256
+ *
+ * SUBTEST: write-read-4096x4096
+ *
+ * SUBTEST: write-read-512x512
+ *
+ * SUBTEST: write-read-8192x8192
+ *
+ * SUBTEST: write-write-1024x1024
+ *
+ * SUBTEST: write-write-128x128
+ *
+ * SUBTEST: write-write-2048x2048
+ *
+ * SUBTEST: write-write-256x256
+ *
+ * SUBTEST: write-write-4096x4096
+ *
+ * SUBTEST: write-write-512x512
+ *
+ * SUBTEST: write-write-8192x8192
+ */
 
 IGT_TEST_DESCRIPTION("Test speed of concurrent reads between engines.");
 
diff --git a/tests/i915/gem_readwrite.c b/tests/i915/gem_readwrite.c
index 2d437dec3a7b..fdc68e315ba2 100644
--- a/tests/i915/gem_readwrite.c
+++ b/tests/i915/gem_readwrite.c
@@ -38,6 +38,21 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem readwrite
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: beyond-EOB
+ *
+ * SUBTEST: new-obj
+ *
+ * SUBTEST: read-bad-handle
+ *
+ * SUBTEST: read-write
+ *
+ * SUBTEST: write-bad-handle
+ */
 
 #define OBJECT_SIZE 16384
 
diff --git a/tests/i915/gem_reg_read.c b/tests/i915/gem_reg_read.c
index 79facc1f29cf..5f63c02f749e 100644
--- a/tests/i915/gem_reg_read.c
+++ b/tests/i915/gem_reg_read.c
@@ -32,6 +32,17 @@
 #include <sys/utsname.h>
 #include <time.h>
 
+/**
+ * TEST: gem reg read
+ * Feature: gem_core
+ * Run type: FULL
+ *
+ * SUBTEST: bad-register
+ *
+ * SUBTEST: timestamp-monotonic
+ *
+ * SUBTEST: timestamp-moving
+ */
 
 static bool is_x86_64;
 static bool has_proper_timestamp;
diff --git a/tests/i915/gem_render_copy.c b/tests/i915/gem_render_copy.c
index 2c150b2b065c..657509647078 100644
--- a/tests/i915/gem_render_copy.c
+++ b/tests/i915/gem_render_copy.c
@@ -48,6 +48,126 @@
 #include "igt.h"
 #include "igt_x86.h"
 #include "intel_bufops.h"
+/**
+ * TEST: gem render copy
+ * Description: Basic test for the render_copy() function.
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: linear
+ * Description: Test render_copy() from a mixed-tiled to a linear buffer.
+ *
+ * SUBTEST: linear-to-vebox-y-tiled
+ * Description: Test vebox_copy() from a linear to a y-tiled buffer.
+ *
+ * SUBTEST: linear-to-vebox-yf-tiled
+ * Description: Test vebox_copy() from a linear to a yf-tiled buffer.
+ *
+ * SUBTEST: mixed-tiled-to-y-tiled-ccs
+ * Description: Test render_copy() from a mixed-tiled to a y-tiled-ccs buffer.
+ *
+ * SUBTEST: mixed-tiled-to-yf-tiled-ccs
+ * Description: Test render_copy() from a mixed-tiled to a yf-tiled-ccs buffer.
+ *
+ * SUBTEST: x-tiled
+ * Description: Test render_copy() from a mixed-tiled to a x-tiled buffer.
+ *
+ * SUBTEST: x-tiled-to-vebox-y-tiled
+ * Description: Test vebox_copy() from a x-tiled to a y-tiled buffer.
+ *
+ * SUBTEST: x-tiled-to-vebox-yf-tiled
+ * Description: Test vebox_copy() from a x-tiled to a yf-tiled buffer.
+ *
+ * SUBTEST: y-tiled
+ * Description: Test render_copy() from a mixed-tiled to a y-tiled buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-linear
+ * Description: Test render_copy() from a y-tiled-ccs to a linear buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-x-tiled
+ * Description: Test render_copy() from a y-tiled-ccs to a x-tiled buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-y-tiled
+ * Description: Test render_copy() from a y-tiled-ccs to a y-tiled buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-y-tiled-ccs
+ * Description: Test render_copy() from a y-tiled-ccs to a y-tiled-ccs buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-y-tiled-mc-ccs
+ * Description: Test render_copy() and vebox_copy() from a y-tiled-ccs to a y-tiled-mc-ccs buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-yf-tiled
+ * Description: Test render_copy() from a y-tiled-ccs to a yf-tiled buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-yf-tiled-ccs
+ * Description: Test render_copy() from a y-tiled-ccs to a yf-tiled-ccs buffer.
+ *
+ * SUBTEST: y-tiled-ccs-to-yf-tiled-mc-ccs
+ * Description: Test render_copy() and vebox_copy() from a y-tiled-ccs to a yf-tiled-mc-ccs buffer.
+ *
+ * SUBTEST: y-tiled-mc-ccs-to-vebox-y-tiled
+ * Description: Test vebox_copy() from a y-tiled-mc-ccs to a y-tiled buffer.
+ *
+ * SUBTEST: y-tiled-mc-ccs-to-vebox-yf-tiled
+ * Description: Test vebox_copy() from a y-tiled-mc-ccs to a yf-tiled buffer.
+ *
+ * SUBTEST: y-tiled-mc-ccs-to-y-tiled-ccs
+ * Description: Test render_copy() and vebox_copy() from a y-tiled-mc-ccs to a y-tiled-ccs buffer.
+ *
+ * SUBTEST: y-tiled-mc-ccs-to-yf-tiled-ccs
+ * Description: Test render_copy() and vebox_copy() from a y-tiled-mc-ccs to a yf-tiled-ccs buffer.
+ *
+ * SUBTEST: y-tiled-to-vebox-linear
+ * Description: Test vebox_copy() from a y-tiled to a linear buffer.
+ *
+ * SUBTEST: y-tiled-to-vebox-x-tiled
+ * Description: Test vebox_copy() from a y-tiled to a x-tiled buffer.
+ *
+ * SUBTEST: y-tiled-to-vebox-y-tiled
+ * Description: Test vebox_copy() from a y-tiled to a y-tiled buffer.
+ *
+ * SUBTEST: y-tiled-to-vebox-yf-tiled
+ * Description: Test vebox_copy() from a y-tiled to a yf-tiled buffer.
+ *
+ * SUBTEST: yf-tiled
+ * Description: Test render_copy() from a mixed-tiled to a yf-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-ccs-to-linear
+ * Description: Test render_copy() from a yf-tiled-ccs to a linear buffer.
+ *
+ * SUBTEST: yf-tiled-ccs-to-x-tiled
+ * Description: Test render_copy() from a yf-tiled-ccs to a x-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-ccs-to-y-tiled
+ * Description: Test render_copy() from a yf-tiled-ccs to a y-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-ccs-to-y-tiled-ccs
+ * Description: Test render_copy() from a yf-tiled-ccs to a y-tiled-ccs buffer.
+ *
+ * SUBTEST: yf-tiled-ccs-to-yf-tiled
+ * Description: Test render_copy() from a yf-tiled-ccs to a yf-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-ccs-to-yf-tiled-ccs
+ * Description: Test render_copy() from a yf-tiled-ccs to a yf-tiled-ccs buffer.
+ *
+ * SUBTEST: yf-tiled-mc-ccs-to-vebox-y-tiled
+ * Description: Test vebox_copy() from a yf-tiled-mc-ccs to a y-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-mc-ccs-to-vebox-yf-tiled
+ * Description: Test vebox_copy() from a yf-tiled-mc-ccs to a yf-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-to-vebox-linear
+ * Description: Test vebox_copy() from a yf-tiled to a linear buffer.
+ *
+ * SUBTEST: yf-tiled-to-vebox-x-tiled
+ * Description: Test vebox_copy() from a yf-tiled to a x-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-to-vebox-y-tiled
+ * Description: Test vebox_copy() from a yf-tiled to a y-tiled buffer.
+ *
+ * SUBTEST: yf-tiled-to-vebox-yf-tiled
+ * Description: Test vebox_copy() from a yf-tiled to a yf-tiled buffer.
+ */
 
 IGT_TEST_DESCRIPTION("Basic test for the render_copy() function.");
 
diff --git a/tests/i915/gem_render_copy_redux.c b/tests/i915/gem_render_copy_redux.c
index 5e1daccf1801..0cb2936d383e 100644
--- a/tests/i915/gem_render_copy_redux.c
+++ b/tests/i915/gem_render_copy_redux.c
@@ -48,6 +48,23 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem render copy redux
+ * Description: Advanced test for the render_copy() function.
+ * Run type: FULL
+ *
+ * SUBTEST: flink
+ * Feature: mapping, xorg_dri2
+ *
+ * SUBTEST: flink-interruptible
+ * Feature: mapping, xorg_dri2
+ *
+ * SUBTEST: interruptible
+ * Feature: mapping
+ *
+ * SUBTEST: normal
+ * Feature: mapping
+ */
 
 IGT_TEST_DESCRIPTION("Advanced test for the render_copy() function.");
 
diff --git a/tests/i915/gem_render_linear_blits.c b/tests/i915/gem_render_linear_blits.c
index c2f2c0788ef9..1fcfb019b426 100644
--- a/tests/i915/gem_render_linear_blits.c
+++ b/tests/i915/gem_render_linear_blits.c
@@ -49,6 +49,22 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem render linear blits
+ * Feature: mapping
+ *
+ * SUBTEST: aperture-shrink
+ * Run type: FULL
+ *
+ * SUBTEST: aperture-thrash
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Run type: BAT
+ *
+ * SUBTEST: swap-thrash
+ * Run type: FULL
+ */
 
 #define WIDTH 512
 #define STRIDE (WIDTH*4)
diff --git a/tests/i915/gem_render_tiled_blits.c b/tests/i915/gem_render_tiled_blits.c
index 3becf576fef5..ba9e62a2565d 100644
--- a/tests/i915/gem_render_tiled_blits.c
+++ b/tests/i915/gem_render_tiled_blits.c
@@ -48,6 +48,33 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem render tiled blits
+ * Description:
+ *   Tests performs cyclic forward, backward and random blits on tiled buffer objects using render
+ *   engine with various working set sizes and compares outputs with expected ones.
+ * Feature: mapping
+ *
+ * SUBTEST: aperture-shrink
+ * Description:
+ *   Check with working set size larger than aperture size and a helper process to shrink buffer
+ *   object caches.
+ * Run type: FULL
+ *
+ * SUBTEST: aperture-thrash
+ * Description: Check with working set size larger than aperture size.
+ * Run type: FULL
+ *
+ * SUBTEST: basic
+ * Description: Check basic functionality.
+ * Run type: BAT
+ *
+ * SUBTEST: swap-thrash
+ * Description:
+ *   Check with working set size larger than system memory size resulting in usage and thrashing
+ *   of swap space.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Tests performs cyclic forward, backward and random blits on tiled buffer "
 		      "objects using render engine with various working set sizes and compares "
diff --git a/tests/i915/gem_request_retire.c b/tests/i915/gem_request_retire.c
index 9e163bd3af60..9e074706d259 100644
--- a/tests/i915/gem_request_retire.c
+++ b/tests/i915/gem_request_retire.c
@@ -49,6 +49,14 @@
 #include "i915/gem.h"
 #include "igt.h"
 #include "igt_types.h"
+/**
+ * TEST: gem request retire
+ * Description: Collection of tests targeting request retirement code paths.
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: retire-vma-not-inactive
+ */
 
 IGT_TEST_DESCRIPTION("Collection of tests targeting request retirement code"
 		     " paths.");
diff --git a/tests/i915/gem_reset_stats.c b/tests/i915/gem_reset_stats.c
index 7b003d88b664..b58f49210eb4 100644
--- a/tests/i915/gem_reset_stats.c
+++ b/tests/i915/gem_reset_stats.c
@@ -47,6 +47,184 @@
 #include "igt.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem reset stats
+ * Run type: FULL
+ *
+ * SUBTEST: ban-blt
+ *
+ * SUBTEST: ban-bsd
+ *
+ * SUBTEST: ban-bsd1
+ *
+ * SUBTEST: ban-bsd2
+ *
+ * SUBTEST: ban-ctx-blt
+ *
+ * SUBTEST: ban-ctx-bsd
+ *
+ * SUBTEST: ban-ctx-bsd1
+ *
+ * SUBTEST: ban-ctx-bsd2
+ *
+ * SUBTEST: ban-ctx-default
+ *
+ * SUBTEST: ban-ctx-render
+ *
+ * SUBTEST: ban-ctx-vebox
+ *
+ * SUBTEST: ban-default
+ *
+ * SUBTEST: ban-render
+ *
+ * SUBTEST: ban-vebox
+ *
+ * SUBTEST: close-pending-blt
+ *
+ * SUBTEST: close-pending-bsd
+ *
+ * SUBTEST: close-pending-bsd1
+ *
+ * SUBTEST: close-pending-bsd2
+ *
+ * SUBTEST: close-pending-ctx-blt
+ *
+ * SUBTEST: close-pending-ctx-bsd
+ *
+ * SUBTEST: close-pending-ctx-bsd1
+ *
+ * SUBTEST: close-pending-ctx-bsd2
+ *
+ * SUBTEST: close-pending-ctx-default
+ *
+ * SUBTEST: close-pending-ctx-render
+ *
+ * SUBTEST: close-pending-ctx-vebox
+ *
+ * SUBTEST: close-pending-default
+ *
+ * SUBTEST: close-pending-fork-blt
+ *
+ * SUBTEST: close-pending-fork-bsd
+ *
+ * SUBTEST: close-pending-fork-bsd1
+ *
+ * SUBTEST: close-pending-fork-bsd2
+ *
+ * SUBTEST: close-pending-fork-default
+ *
+ * SUBTEST: close-pending-fork-render
+ *
+ * SUBTEST: close-pending-fork-reverse-blt
+ *
+ * SUBTEST: close-pending-fork-reverse-bsd
+ *
+ * SUBTEST: close-pending-fork-reverse-bsd1
+ *
+ * SUBTEST: close-pending-fork-reverse-bsd2
+ *
+ * SUBTEST: close-pending-fork-reverse-default
+ *
+ * SUBTEST: close-pending-fork-reverse-render
+ *
+ * SUBTEST: close-pending-fork-reverse-vebox
+ *
+ * SUBTEST: close-pending-fork-vebox
+ *
+ * SUBTEST: close-pending-render
+ *
+ * SUBTEST: close-pending-vebox
+ *
+ * SUBTEST: defer-hangcheck-blt
+ *
+ * SUBTEST: defer-hangcheck-bsd
+ *
+ * SUBTEST: defer-hangcheck-bsd1
+ *
+ * SUBTEST: defer-hangcheck-bsd2
+ *
+ * SUBTEST: defer-hangcheck-default
+ *
+ * SUBTEST: defer-hangcheck-render
+ *
+ * SUBTEST: defer-hangcheck-vebox
+ *
+ * SUBTEST: params
+ *
+ * SUBTEST: params-ctx
+ *
+ * SUBTEST: reset-count-blt
+ *
+ * SUBTEST: reset-count-bsd
+ *
+ * SUBTEST: reset-count-bsd1
+ *
+ * SUBTEST: reset-count-bsd2
+ *
+ * SUBTEST: reset-count-ctx-blt
+ *
+ * SUBTEST: reset-count-ctx-bsd
+ *
+ * SUBTEST: reset-count-ctx-bsd1
+ *
+ * SUBTEST: reset-count-ctx-bsd2
+ *
+ * SUBTEST: reset-count-ctx-default
+ *
+ * SUBTEST: reset-count-ctx-render
+ *
+ * SUBTEST: reset-count-ctx-vebox
+ *
+ * SUBTEST: reset-count-default
+ *
+ * SUBTEST: reset-count-render
+ *
+ * SUBTEST: reset-count-vebox
+ *
+ * SUBTEST: reset-stats-blt
+ *
+ * SUBTEST: reset-stats-bsd
+ *
+ * SUBTEST: reset-stats-bsd1
+ *
+ * SUBTEST: reset-stats-bsd2
+ *
+ * SUBTEST: reset-stats-ctx-blt
+ *
+ * SUBTEST: reset-stats-ctx-bsd
+ *
+ * SUBTEST: reset-stats-ctx-bsd1
+ *
+ * SUBTEST: reset-stats-ctx-bsd2
+ *
+ * SUBTEST: reset-stats-ctx-default
+ *
+ * SUBTEST: reset-stats-ctx-render
+ *
+ * SUBTEST: reset-stats-ctx-vebox
+ *
+ * SUBTEST: reset-stats-default
+ *
+ * SUBTEST: reset-stats-render
+ *
+ * SUBTEST: reset-stats-vebox
+ *
+ * SUBTEST: shared-reset-domain
+ *
+ * SUBTEST: unrelated-ctx-blt
+ *
+ * SUBTEST: unrelated-ctx-bsd
+ *
+ * SUBTEST: unrelated-ctx-bsd1
+ *
+ * SUBTEST: unrelated-ctx-bsd2
+ *
+ * SUBTEST: unrelated-ctx-default
+ *
+ * SUBTEST: unrelated-ctx-render
+ *
+ * SUBTEST: unrelated-ctx-vebox
+ */
 
 #define RS_NO_ERROR      0
 #define RS_BATCH_ACTIVE  (1 << 0)
diff --git a/tests/i915/gem_ringfill.c b/tests/i915/gem_ringfill.c
index afcd7b73ede2..576e35ea84a0 100644
--- a/tests/i915/gem_ringfill.c
+++ b/tests/i915/gem_ringfill.c
@@ -41,6 +41,117 @@
 
 #include <signal.h>
 #include <sys/ioctl.h>
+/**
+ * TEST: gem ringfill
+ * Description:
+ *   Exercise many tiny batchbuffer operations, in the hope of catching failure to manage the ring
+ *   properly near full.
+ *
+ * SUBTEST: basic-all
+ * Description: Basic check to fill the ring upto maximum on all engines simultaneously.
+ * Feature: cmd_submission
+ * Run type: BAT
+ *
+ * SUBTEST: engines-S3
+ * Description: Handle a full ring across suspend cycle.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-S4
+ * Description: Handle a full ring across hibernate cycle.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-basic
+ * Description: Basic check how the driver handles a full ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-bomb
+ * Description:
+ *   Fills the ring upto maximim parallely using fork with different fd's along with
+ *   interruptions.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-child
+ * Description: Check to fill the ring parallely using fork.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-fd
+ * Description: Fills the ring upto maximim parallely using fork with different fd's.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-forked
+ * Description: Check to fill the ring parallely using fork.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-hang
+ * Description: Exercise many batchbuffer operations along with a hang batch until ring is full.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: engines-interruptible
+ * Description:
+ *   Exercise all potential injection sites by using igt_sigiter interface to repeat the
+ *   ringfill testing.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-S3
+ * Description: Handle a full ring across suspend cycle - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-S4
+ * Description: Handle a full ring across hibernate cycle - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-basic
+ * Description: Basic check how the driver handles a full ring - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-bomb
+ * Description:
+ *   Fills the ring upto maximim parallely using fork with different fd's along with
+ *   interruptions - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-child
+ * Description: Check to fill the ring parallely using fork - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-fd
+ * Description: Fills the ring upto maximim parallely using fork with different fd's - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-forked
+ * Description: Check to fill the ring parallely using fork - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-hang
+ * Description:
+ *   Exercise many batchbuffer operations along with a hang batch until ring is full - on legacy
+ *   ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-interruptible
+ * Description:
+ *   Exercise all potential injection sites by using igt_sigiter interface to repeat the
+ *   ringfill testing - on legacy ring.
+ * Feature: cmd_submission, multitile
+ * Run type: FULL
+ */
 
 #define INTERRUPTIBLE 0x1
 #define HANG 0x2
diff --git a/tests/i915/gem_set_tiling_vs_blt.c b/tests/i915/gem_set_tiling_vs_blt.c
index 5e3bf6a12482..cee4591b8d08 100644
--- a/tests/i915/gem_set_tiling_vs_blt.c
+++ b/tests/i915/gem_set_tiling_vs_blt.c
@@ -57,6 +57,21 @@
 #include "drm.h"
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem set tiling vs blt
+ * Description: Check for proper synchronization of tiling changes vs. tiled gpu access.
+ * Feature: blitter, gtt
+ * Run type: FULL
+ *
+ * SUBTEST: tiled-to-tiled
+ * Description: Check for proper synchronization of tiled->tiled transition.
+ *
+ * SUBTEST: tiled-to-untiled
+ * Description: Check for proper synchronization of tiled->untiled transition.
+ *
+ * SUBTEST: untiled-to-tiled
+ * Description: Check for proper synchronization of untiled->tiled transition.
+ */
 
 IGT_TEST_DESCRIPTION("Check for proper synchronization of tiling changes vs."
 		     " tiled gpu access.");
diff --git a/tests/i915/gem_set_tiling_vs_gtt.c b/tests/i915/gem_set_tiling_vs_gtt.c
index 2f890e83bd90..30b69bb8b0ad 100644
--- a/tests/i915/gem_set_tiling_vs_gtt.c
+++ b/tests/i915/gem_set_tiling_vs_gtt.c
@@ -38,6 +38,14 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem set tiling vs gtt
+ * Description: Check set_tiling vs gtt mmap coherency.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check set_tiling vs gtt mmap coherency.");
 
diff --git a/tests/i915/gem_set_tiling_vs_pwrite.c b/tests/i915/gem_set_tiling_vs_pwrite.c
index 6bec7f27ed6d..328682d945ae 100644
--- a/tests/i915/gem_set_tiling_vs_pwrite.c
+++ b/tests/i915/gem_set_tiling_vs_pwrite.c
@@ -38,6 +38,14 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem set tiling vs pwrite
+ * Description: Check set_tiling vs pwrite coherency.
+ * Feature: gtt
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check set_tiling vs pwrite coherency.");
 
diff --git a/tests/i915/gem_shrink.c b/tests/i915/gem_shrink.c
index 380d2c846f83..a65792c84137 100644
--- a/tests/i915/gem_shrink.c
+++ b/tests/i915/gem_shrink.c
@@ -33,6 +33,113 @@
 #include "igt_gt.h"
 #include "igt_debugfs.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: gem shrink
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST: execbuf1
+ *
+ * SUBTEST: execbuf1-oom
+ *
+ * SUBTEST: execbuf1-sanitycheck
+ *
+ * SUBTEST: execbuf1-userptr
+ *
+ * SUBTEST: execbuf1-userptr-dirty
+ *
+ * SUBTEST: execbufN
+ *
+ * SUBTEST: execbufN-oom
+ *
+ * SUBTEST: execbufN-sanitycheck
+ *
+ * SUBTEST: execbufN-userptr
+ *
+ * SUBTEST: execbufN-userptr-dirty
+ *
+ * SUBTEST: execbufX
+ *
+ * SUBTEST: execbufX-oom
+ *
+ * SUBTEST: execbufX-sanitycheck
+ *
+ * SUBTEST: execbufX-userptr
+ *
+ * SUBTEST: execbufX-userptr-dirty
+ *
+ * SUBTEST: get-pages
+ *
+ * SUBTEST: get-pages-dirty
+ *
+ * SUBTEST: get-pages-dirty-oom
+ *
+ * SUBTEST: get-pages-dirty-sanitycheck
+ *
+ * SUBTEST: get-pages-dirty-userptr
+ *
+ * SUBTEST: get-pages-dirty-userptr-dirty
+ *
+ * SUBTEST: get-pages-oom
+ *
+ * SUBTEST: get-pages-sanitycheck
+ *
+ * SUBTEST: get-pages-userptr
+ *
+ * SUBTEST: get-pages-userptr-dirty
+ *
+ * SUBTEST: hang
+ *
+ * SUBTEST: hang-oom
+ *
+ * SUBTEST: hang-sanitycheck
+ *
+ * SUBTEST: hang-userptr
+ *
+ * SUBTEST: hang-userptr-dirty
+ *
+ * SUBTEST: mmap-cpu
+ *
+ * SUBTEST: mmap-cpu-oom
+ *
+ * SUBTEST: mmap-cpu-sanitycheck
+ *
+ * SUBTEST: mmap-cpu-userptr
+ *
+ * SUBTEST: mmap-cpu-userptr-dirty
+ *
+ * SUBTEST: mmap-gtt
+ *
+ * SUBTEST: mmap-gtt-oom
+ *
+ * SUBTEST: mmap-gtt-sanitycheck
+ *
+ * SUBTEST: mmap-gtt-userptr
+ *
+ * SUBTEST: mmap-gtt-userptr-dirty
+ *
+ * SUBTEST: pread
+ *
+ * SUBTEST: pread-oom
+ *
+ * SUBTEST: pread-sanitycheck
+ *
+ * SUBTEST: pread-userptr
+ *
+ * SUBTEST: pread-userptr-dirty
+ *
+ * SUBTEST: pwrite
+ *
+ * SUBTEST: pwrite-oom
+ *
+ * SUBTEST: pwrite-sanitycheck
+ *
+ * SUBTEST: pwrite-userptr
+ *
+ * SUBTEST: pwrite-userptr-dirty
+ *
+ * SUBTEST: reclaim
+ */
 
 #ifndef MADV_FREE
 #define MADV_FREE 8
diff --git a/tests/i915/gem_softpin.c b/tests/i915/gem_softpin.c
index 8717860b2d11..8365c5c83644 100644
--- a/tests/i915/gem_softpin.c
+++ b/tests/i915/gem_softpin.c
@@ -31,6 +31,119 @@
 #include "igt.h"
 #include "igt_rand.h"
 #include "intel_allocator.h"
+/**
+ * TEST: gem softpin
+ * Description:
+ *   Tests softpin feature with normal usage, invalid inputs scenarios and couple of eviction
+ *   tests which copy buffers between CPU and GPU.
+ * Feature: mapping
+ *
+ * SUBTEST: 32b-excludes-last-page
+ * Description: Check the last 32b page is excluded.
+ * Run type: FULL
+ *
+ * SUBTEST: allocator-basic
+ * Description: Check that we can place objects at start/end of the GTT using the allocator.
+ * Run type: BAT
+ *
+ * SUBTEST: allocator-basic-reserve
+ * Description: Check that if we can reserve a space for an object starting from a given offset.
+ * Run type: BAT
+ *
+ * SUBTEST: allocator-evict
+ * Description: Exercise eviction with softpinning.
+ * Run type: FULL
+ *
+ * SUBTEST: allocator-fork
+ * Description: Check if multiple processes can use alloctor.
+ * Run type: FULL
+ *
+ * SUBTEST: allocator-nopin
+ * Description: Check that we can combine manual placement with automatic GTT placement.
+ * Run type: FULL
+ *
+ * SUBTEST: allocator-nopin-reserve
+ * Description:
+ *   Check that we can combine manual placement with automatic GTT placement and
+ *   reserves/unreserves space for objects.
+ * Run type: FULL
+ *
+ * SUBTEST: evict-active
+ * Description: Check eviction with active bo.
+ * Run type: FULL
+ *
+ * SUBTEST: evict-active-interruptible
+ * Description: Check eviction with active bo with interrupts.
+ * Run type: FULL
+ *
+ * SUBTEST: evict-hang
+ * Description: Check eviction of softpinned bo with hung batch.
+ * Run type: FULL
+ *
+ * SUBTEST: evict-prime
+ * Description: Check eviction of vma on importing prime fd in reopened drm fds
+ * Run type: FULL
+ *
+ * SUBTEST: evict-prime-sanity-check
+ * Description: Check eviction of vma on importing prime fd in reopened drm fd in single thread
+ * Run type: FULL
+ *
+ * SUBTEST: evict-single-offset
+ * Description: Use same offset for all engines and for different handles.
+ * Run type: FULL
+ *
+ * SUBTEST: evict-snoop
+ * Description: Check eviction against snooping.
+ * Run type: FULL
+ *
+ * SUBTEST: evict-snoop-interruptible
+ * Description: Check eviction against snooping with interrupts.
+ * Run type: FULL
+ *
+ * SUBTEST: full
+ * Description: Check the total occupancy by using pad-to-size to fill the entire GTT.
+ * Run type: FULL
+ *
+ * SUBTEST: invalid
+ * Description: Check that invalid inputs are handled correctly.
+ * Run type: FULL
+ *
+ * SUBTEST: noreloc
+ * Description: Check that noreloc support works.
+ * Run type: FULL
+ *
+ * SUBTEST: noreloc-S3
+ * Description: Check noreloc survives after suspend to RAM/resume cycle.
+ * Run type: FULL
+ *
+ * SUBTEST: noreloc-S4
+ * Description: Check noreloc survives after suspend to disk/resume cycle.
+ * Run type: FULL
+ *
+ * SUBTEST: noreloc-interruptible
+ * Description: Check noreloc support with interruptible.
+ * Run type: FULL
+ *
+ * SUBTEST: overlap
+ * Description: Check all the possible pages aligned overlaps.
+ * Run type: FULL
+ *
+ * SUBTEST: reverse
+ * Description: Check that if the user demands the vma will be swapped.
+ * Run type: FULL
+ *
+ * SUBTEST: safe-alignment
+ * Description: Check start offset and alignment detection.
+ * Run type: BAT
+ *
+ * SUBTEST: softpin
+ * Description: Check softpinning of a gem buffer object.
+ * Run type: FULL
+ *
+ * SUBTEST: zero
+ * Description: Check full placement control under full-ppGTT.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Tests softpin feature with normal usage, invalid inputs"
 		     " scenarios and couple of eviction tests which copy buffers"
diff --git a/tests/i915/gem_spin_batch.c b/tests/i915/gem_spin_batch.c
index 7dc68ebc73b1..0a6c088da630 100644
--- a/tests/i915/gem_spin_batch.c
+++ b/tests/i915/gem_spin_batch.c
@@ -25,6 +25,46 @@
 #include "i915/gem.h"
 #include "i915/gem_ring.h"
 #include "igt.h"
+/**
+ * TEST: gem spin batch
+ * Run type: FULL
+ *
+ * SUBTEST: engines
+ * Feature: context, igt_core
+ *
+ * SUBTEST: legacy
+ * Feature: context, igt_core
+ *
+ * SUBTEST: legacy-resubmit
+ * Feature: context, igt_core
+ *
+ * SUBTEST: legacy-resubmit-new
+ * Feature: context, igt_core, multictx
+ *
+ * SUBTEST: resubmit
+ * Feature: context, igt_core
+ *
+ * SUBTEST: resubmit-all
+ * Feature: context, igt_core, multictx
+ *
+ * SUBTEST: resubmit-new
+ * Feature: context, igt_core, multictx
+ *
+ * SUBTEST: resubmit-new-all
+ * Feature: context, igt_core, multictx
+ *
+ * SUBTEST: spin-all
+ * Feature: igt_core, multictx
+ *
+ * SUBTEST: spin-all-new
+ * Feature: igt_core, multictx
+ *
+ * SUBTEST: spin-each
+ * Feature: igt_core, multictx
+ *
+ * SUBTEST: user-each
+ * Feature: igt_core, multictx
+ */
 
 #define MAX_ERROR 5 /* % */
 
diff --git a/tests/i915/gem_streaming_writes.c b/tests/i915/gem_streaming_writes.c
index 883fe4293772..2c59c08f6c83 100644
--- a/tests/i915/gem_streaming_writes.c
+++ b/tests/i915/gem_streaming_writes.c
@@ -40,6 +40,35 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem streaming writes
+ * Description: Test of streaming writes into active GPU sources
+ * Run type: FULL
+ *
+ * SUBTEST: batch-cpu
+ *
+ * SUBTEST: batch-gtt
+ *
+ * SUBTEST: batch-reverse-cpu
+ *
+ * SUBTEST: batch-reverse-gtt
+ *
+ * SUBTEST: batch-reverse-wc
+ *
+ * SUBTEST: batch-wc
+ *
+ * SUBTEST: cpu
+ *
+ * SUBTEST: cpu-sync
+ *
+ * SUBTEST: gtt
+ *
+ * SUBTEST: gtt-sync
+ *
+ * SUBTEST: wc
+ *
+ * SUBTEST: wc-sync
+ */
 
 #define OBJECT_SIZE 1024*1024
 #define CHUNK_SIZE 32
diff --git a/tests/i915/gem_stress.c b/tests/i915/gem_stress.c
index 3765ab14bdba..625b0e915ff5 100644
--- a/tests/i915/gem_stress.c
+++ b/tests/i915/gem_stress.c
@@ -61,6 +61,13 @@
 #include <sys/time.h>
 
 #include <drm.h>
+/**
+ * TEST: gem stress
+ * Description: General gem coherency test.
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("General gem coherency test.");
 
diff --git a/tests/i915/gem_sync.c b/tests/i915/gem_sync.c
index e7dc6637abc0..1c7e51a92bfa 100644
--- a/tests/i915/gem_sync.c
+++ b/tests/i915/gem_sync.c
@@ -32,6 +32,231 @@
 #include "igt_gt.h"
 #include "igt.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: gem sync
+ * Description: Basic check of ring<->ring write synchronisation.
+ *
+ * SUBTEST: active
+ * Description: Exercise waiting while keeping the GPU busy on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: active-each
+ * Description: Exercise waiting while keeping the GPU busy.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: active-wakeup
+ * Description: Measure wakeup latency while also scheduling the next batch on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: active-wakeup-each
+ * Description: Measure wakeup latency while also scheduling the next batch.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: basic-all
+ * Description: Basic test to wait upon a batch on all rings.
+ * Feature: synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: basic-each
+ * Description: Check synchronisation of ring.
+ * Feature: multitile, synchronization
+ * Run type: BAT
+ *
+ * SUBTEST: basic-many-each
+ * Description: Create race condition and see if we can catch interrupts.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: basic-store-all
+ * Description: Basic version of store synchronisation test.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: basic-store-each
+ * Description: Check that store synchronisation works.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: default
+ * Description: Check synchronisation of rings on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: double-wakeup
+ * Description: Double stress test for nop + sync on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: double-wakeup-each
+ * Description: Double stress test for nop + sync.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked
+ * Description: Check synchronisation of ring with parallel executions on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-all
+ * Description: Parallel execution of batch on all rings and then wait.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-each
+ * Description:
+ *   Forked variant of sync_ring, which checks synchronisation of ring with parallel
+ *   executions.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-store
+ * Description: Check store synchronisation works with parallel multiple executions on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-store-all
+ * Description: Parallel execution of store synchronisation.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-store-each
+ * Description: Forked variant of store_ring, check if parallel store synchronisation works.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-switch
+ * Description: Check sync after context switch parallelly on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forked-switch-each
+ * Description: Check sync after context switch parallelly.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: idle
+ * Description: Exercise and measure idle requests on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-active
+ * Description: Exercise waiting while keeping the GPU busy for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-active-wakeup
+ * Description: Measure wakeup latency while also scheduling the next batch for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-default
+ * Description: Check synchronisation of rings for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-double-wakeup
+ * Description: Double stress test for nop + sync for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-forked
+ * Description: Check synchronisation of ring with parallel executions for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-forked-store
+ * Description:
+ *   Check store synchronisation works with parallel multiple executions for each legacy
+ *   engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-forked-switch
+ * Description: Check sync after context switch parallelly for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-idle
+ * Description: Exercise and measure idle requests for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-many
+ * Description: Create race condition and see if we can catch interrupts for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-store
+ * Description: Check that store synchronisation works for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-switch
+ * Description: Check sync after context switch for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-wakeup
+ * Description: Stress for nop + sync for each legacy engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: many
+ * Description: Create race condition and see if we can catch interrupts on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: preempt
+ * Description: For each context engine check how priority of task are submitted when engine is already busy.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: preempt-all
+ * Description:
+ *   Check and measure how well we can submit a second high priority task when the engine is already
+ *   busy with a low priority task on all engines.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: store
+ * Description: Check that store synchronisation works on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: store-all
+ * Description: Extended version of existing basic-store-all test.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: switch
+ * Description: Check sync after context switch on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: switch-each
+ * Description: Check sync after context switch.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: wait-all
+ * Description: Extended version of existing basic-all test.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: wakeup
+ * Description: Stress for nop + sync on each engine.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: wakeup-each
+ * Description: Stress test for nop + sync.
+ * Feature: multitile, synchronization
+ * Run type: FULL
+ */
 
 #define MAX_PRIO I915_CONTEXT_MAX_USER_PRIORITY
 #define MIN_PRIO I915_CONTEXT_MIN_USER_PRIORITY
diff --git a/tests/i915/gem_tiled_blits.c b/tests/i915/gem_tiled_blits.c
index 5e7ed0c4e062..8c3951c6fb0d 100644
--- a/tests/i915/gem_tiled_blits.c
+++ b/tests/i915/gem_tiled_blits.c
@@ -54,6 +54,23 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem tiled blits
+ * Description: Test doing many tiled blits, with a working set larger than the aperture size.
+ * Feature: gtt, mapping
+ *
+ * SUBTEST: basic
+ * Description: Check basic functionality.
+ * Run type: BAT
+ *
+ * SUBTEST: interruptible
+ * Description: Check with interrupts in parallel execution.
+ * Run type: FULL
+ *
+ * SUBTEST: normal
+ * Description: Check with parallel execution.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Test doing many tiled blits, with a working set larger"
 		     " than the aperture size.");
diff --git a/tests/i915/gem_tiled_fence_blits.c b/tests/i915/gem_tiled_fence_blits.c
index a3a0221d627f..539601e5af73 100644
--- a/tests/i915/gem_tiled_fence_blits.c
+++ b/tests/i915/gem_tiled_fence_blits.c
@@ -45,6 +45,21 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_x86.h"
+/**
+ * TEST: gem tiled fence blits
+ * Description:
+ *   Tests fence management problems related to tiled blits by performing many blits on tiled
+ *   buffer objects with fences enabled and with working set larger than the aperture size.
+ * Feature: gtt, mapping
+ *
+ * SUBTEST: basic
+ * Description: Check basic functionality.
+ * Run type: BAT
+ *
+ * SUBTEST: normal
+ * Description: Check with parallel execution.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Tests fence management problems related to tiled blits by performing "
 		     "many blits on tiled buffer objects with fences enabled and with working "
diff --git a/tests/i915/gem_tiled_partial_pwrite_pread.c b/tests/i915/gem_tiled_partial_pwrite_pread.c
index 95fb69c659cf..a7e845e32d1d 100644
--- a/tests/i915/gem_tiled_partial_pwrite_pread.c
+++ b/tests/i915/gem_tiled_partial_pwrite_pread.c
@@ -38,6 +38,18 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: gem tiled partial pwrite pread
+ * Description: Test pwrite/pread consistency when touching partial cachelines.
+ * Feature: gtt, mapping
+ * Run type: FULL
+ *
+ * SUBTEST: reads
+ *
+ * SUBTEST: writes
+ *
+ * SUBTEST: writes-after-reads
+ */
 
 IGT_TEST_DESCRIPTION("Test pwrite/pread consistency when touching partial"
 		     " cachelines.");
diff --git a/tests/i915/gem_tiled_pread_basic.c b/tests/i915/gem_tiled_pread_basic.c
index 2b4cec6e7259..ddf9f0f56875 100644
--- a/tests/i915/gem_tiled_pread_basic.c
+++ b/tests/i915/gem_tiled_pread_basic.c
@@ -48,6 +48,14 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem tiled pread basic
+ * Description: Test pread behavior on tiled objects with respect to the reported swizzling value.
+ * Feature: gtt, mapping
+ * Run type: BAT
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Test pread behavior on tiled objects with respect to the"
 		     " reported swizzling value.");
diff --git a/tests/i915/gem_tiled_pread_pwrite.c b/tests/i915/gem_tiled_pread_pwrite.c
index 2d21dfb76a76..3331e61ad4d4 100644
--- a/tests/i915/gem_tiled_pread_pwrite.c
+++ b/tests/i915/gem_tiled_pread_pwrite.c
@@ -58,6 +58,14 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem tiled pread pwrite
+ * Description: Test swizzling by testing pwrite does the inverse of pread.
+ * Feature: gtt, mapping
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Test swizzling by testing pwrite does the inverse of"
 		     " pread.");
diff --git a/tests/i915/gem_tiled_swapping.c b/tests/i915/gem_tiled_swapping.c
index f4bdce738ebb..fb633ecabee3 100644
--- a/tests/i915/gem_tiled_swapping.c
+++ b/tests/i915/gem_tiled_swapping.c
@@ -58,6 +58,16 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem tiled swapping
+ * Description: Exercise swizzle code for swapping.
+ * Feature: gtt, mapping
+ * Run type: FULL
+ *
+ * SUBTEST: non-threaded
+ *
+ * SUBTEST: threaded
+ */
 
 IGT_TEST_DESCRIPTION("Exercise swizzle code for swapping.");
 
diff --git a/tests/i915/gem_tiled_wb.c b/tests/i915/gem_tiled_wb.c
index e9efbdf238c7..7f1afbc90b59 100644
--- a/tests/i915/gem_tiled_wb.c
+++ b/tests/i915/gem_tiled_wb.c
@@ -45,6 +45,16 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem tiled wb
+ * Description:
+ *   This is a test of write-combining mmap's behavior on tiled objects with respect to the reported
+ *   swizzling value.
+ * Feature: caching, gtt
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("This is a test of write-combining mmap's behavior on"
 		     " tiled objects with respect to the reported swizzling"
diff --git a/tests/i915/gem_tiled_wc.c b/tests/i915/gem_tiled_wc.c
index 1f245eb7d605..dc4e4d2d73ae 100644
--- a/tests/i915/gem_tiled_wc.c
+++ b/tests/i915/gem_tiled_wc.c
@@ -45,6 +45,13 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem tiled wc
+ * Feature: caching, gtt
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define WIDTH 512
 #define HEIGHT 512
diff --git a/tests/i915/gem_tiling_max_stride.c b/tests/i915/gem_tiling_max_stride.c
index 513d579d3381..6001f72be858 100644
--- a/tests/i915/gem_tiling_max_stride.c
+++ b/tests/i915/gem_tiling_max_stride.c
@@ -39,6 +39,14 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem tiling max stride
+ * Description: Check that max fence stride works.
+ * Feature: gtt, mapping
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check that max fence stride works.");
 
diff --git a/tests/i915/gem_unfence_active_buffers.c b/tests/i915/gem_unfence_active_buffers.c
index a0a601de241d..1f25a81b16f6 100644
--- a/tests/i915/gem_unfence_active_buffers.c
+++ b/tests/i915/gem_unfence_active_buffers.c
@@ -52,6 +52,14 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: gem unfence active buffers
+ * Description: Check for use-after-free in the fence stealing code.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check for use-after-free in the fence stealing code.");
 
diff --git a/tests/i915/gem_unref_active_buffers.c b/tests/i915/gem_unref_active_buffers.c
index 735c1472038a..90a63e8f9acf 100644
--- a/tests/i915/gem_unref_active_buffers.c
+++ b/tests/i915/gem_unref_active_buffers.c
@@ -41,6 +41,14 @@
 #include "igt.h"
 #include "i915/gem.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: gem unref active buffers
+ * Description: Test unreferencing of active buffers.
+ * Feature: cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Test unreferencing of active buffers.");
 
diff --git a/tests/i915/gem_userptr_blits.c b/tests/i915/gem_userptr_blits.c
index b00afc32c102..ad85c0d96c07 100644
--- a/tests/i915/gem_userptr_blits.c
+++ b/tests/i915/gem_userptr_blits.c
@@ -67,6 +67,286 @@
 
 #include "eviction_common.c"
 #include "i915/i915_blt.h"
+/**
+ * TEST: gem userptr blits
+ * Run type: FULL
+ *
+ * SUBTEST: access-control
+ * Feature: userptr
+ *
+ * SUBTEST: coherency-sync
+ * Feature: userptr
+ *
+ * SUBTEST: coherency-unsync
+ * Feature: userptr
+ *
+ * SUBTEST: create-destroy-sync
+ * Feature: userptr
+ *
+ * SUBTEST: create-destroy-unsync
+ * Feature: userptr
+ *
+ * SUBTEST: dmabuf-sync
+ * Feature: prime, userptr
+ *
+ * SUBTEST: dmabuf-unsync
+ * Feature: prime, userptr
+ *
+ * SUBTEST: forbidden-operations
+ * Feature: userptr
+ *
+ * SUBTEST: forked-access
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-multifd-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-multifd-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-multifd-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-multifd-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-multifd-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-multifd-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-multifd-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-multifd-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-sync-swapping-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-multifd-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-multifd-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-multifd-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-multifd-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-multifd-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-multifd-mempressure-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-multifd-mempressure-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-multifd-normal
+ * Feature: userptr
+ *
+ * SUBTEST: forked-unsync-swapping-normal
+ * Feature: userptr
+ *
+ * SUBTEST: huge-split
+ * Feature: userptr
+ *
+ * SUBTEST: input-checking
+ * Feature: userptr
+ *
+ * SUBTEST: invalid-mmap-offset-unsync
+ * Description: Verify unsynchronized userptr on mmap-offset mappings fails
+ * Feature: userptr
+ *
+ * SUBTEST: invalid-null-pointer
+ * Feature: userptr
+ *
+ * SUBTEST: major-normal-sync
+ * Feature: userptr
+ *
+ * SUBTEST: major-sync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: major-unsync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: major-unsync-normal
+ * Feature: userptr
+ *
+ * SUBTEST: map-fixed-invalidate
+ * Description: Try to anger lockdep with MMU notifier still active after MAP_FIXED remap
+ * Feature: gtt, userptr
+ *
+ * SUBTEST: map-fixed-invalidate-busy
+ * Description: Try to anger lockdep with MMU notifier still active after MAP_FIXED remap
+ * Feature: gtt, userptr
+ *
+ * SUBTEST: map-fixed-invalidate-overlap
+ * Description: Try to anger lockdep with MMU notifier still active after MAP_FIXED remap
+ * Feature: gtt, userptr
+ *
+ * SUBTEST: map-fixed-invalidate-overlap-busy
+ * Description: Try to anger lockdep with MMU notifier still active after MAP_FIXED remap
+ * Feature: gtt, userptr
+ *
+ * SUBTEST: minor-normal-sync
+ * Feature: userptr
+ *
+ * SUBTEST: minor-sync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: minor-unsync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: minor-unsync-normal
+ * Feature: userptr
+ *
+ * SUBTEST: mlocked-normal-sync
+ * Feature: userptr
+ *
+ * SUBTEST: mlocked-sync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: mlocked-unsync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: mlocked-unsync-normal
+ * Feature: userptr
+ *
+ * SUBTEST: mmap-offset-banned
+ * Description: Verify mmap_offset to userptr is banned
+ * Feature: userptr
+ *
+ * SUBTEST: nohangcheck
+ * Feature: userptr
+ *
+ * SUBTEST: probe
+ * Feature: userptr
+ *
+ * SUBTEST: process-exit
+ * Feature: userptr
+ *
+ * SUBTEST: process-exit-busy
+ * Feature: userptr
+ *
+ * SUBTEST: readonly-pwrite-unsync
+ * Feature: userptr
+ *
+ * SUBTEST: readonly-unsync
+ * Feature: userptr
+ *
+ * SUBTEST: relocations
+ * Feature: userptr
+ *
+ * SUBTEST: sd-probe
+ * Feature: userptr
+ *
+ * SUBTEST: set-cache-level
+ * Feature: userptr
+ *
+ * SUBTEST: stress-mm
+ * Feature: userptr
+ *
+ * SUBTEST: stress-mm-invalidate-close
+ * Feature: userptr
+ *
+ * SUBTEST: stress-mm-invalidate-close-overlap
+ * Feature: userptr
+ *
+ * SUBTEST: stress-purge
+ * Feature: userptr
+ *
+ * SUBTEST: swapping-normal-sync
+ * Feature: userptr
+ *
+ * SUBTEST: swapping-sync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: swapping-unsync-interruptible
+ * Feature: userptr
+ *
+ * SUBTEST: swapping-unsync-normal
+ * Feature: userptr
+ *
+ * SUBTEST: sync-overlap
+ * Feature: userptr
+ *
+ * SUBTEST: sync-unmap
+ * Feature: userptr
+ *
+ * SUBTEST: sync-unmap-after-close
+ * Feature: userptr
+ *
+ * SUBTEST: sync-unmap-cycles
+ * Feature: userptr
+ *
+ * SUBTEST: unsync-overlap
+ * Feature: userptr
+ *
+ * SUBTEST: unsync-unmap
+ * Feature: userptr
+ *
+ * SUBTEST: unsync-unmap-after-close
+ * Feature: userptr
+ *
+ * SUBTEST: unsync-unmap-cycles
+ * Feature: userptr
+ *
+ * SUBTEST: usage-restrictions
+ * Feature: userptr
+ *
+ * SUBTEST: userfault
+ * Feature: userptr
+ *
+ * SUBTEST: vma-merge
+ * Feature: userptr
+ */
 
 #ifndef PAGE_SIZE
 #define PAGE_SIZE 4096
diff --git a/tests/i915/gem_vm_create.c b/tests/i915/gem_vm_create.c
index f47d8c55694d..9f36e405bff5 100644
--- a/tests/i915/gem_vm_create.c
+++ b/tests/i915/gem_vm_create.c
@@ -27,6 +27,25 @@
 #include "igt.h"
 #include "igt_rand.h"
 #include "igt_dummyload.h"
+/**
+ * TEST: gem vm create
+ * Run type: FULL
+ *
+ * SUBTEST: create-ext
+ * Feature: mapping
+ *
+ * SUBTEST: execbuf
+ * Feature: cmd_submission, mapping
+ *
+ * SUBTEST: invalid-create
+ * Feature: mapping
+ *
+ * SUBTEST: invalid-destroy
+ * Feature: mapping
+ *
+ * SUBTEST: isolation
+ * Feature: context, mapping
+ */
 
 static int vm_create_ioctl(int i915, struct drm_i915_gem_vm_control *ctl)
 {
diff --git a/tests/i915/gem_wait.c b/tests/i915/gem_wait.c
index 27d084afacdd..874ccd87eee3 100644
--- a/tests/i915/gem_wait.c
+++ b/tests/i915/gem_wait.c
@@ -31,6 +31,55 @@
 #include "i915/gem_create.h"
 #include "igt.h"
 #include "igt_vgem.h"
+/**
+ * TEST: gem wait
+ * Description: Tests the GEM_WAIT ioctl
+ * Feature: synchronization
+ *
+ * SUBTEST: await
+ * Description: Verify GEM_WAIT functionality in await mode.
+ * Run type: FULL
+ *
+ * SUBTEST: busy
+ * Description: Verify GEM_WAIT functionality in busy mode.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-busy
+ * Description: Verify GEM_WAIT functionality in busy mode, when hang is allowed.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-busy-write
+ * Description: Verify GEM_WAIT functionality in busy-write mode, when hang is allowed.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-wait
+ * Description: Verify GEM_WAIT functionality in wait mode, when hang is allowed.
+ * Run type: FULL
+ *
+ * SUBTEST: hang-wait-write
+ * Description: Verify GEM_WAIT functionality in wait-write mode, when hang is allowed.
+ * Run type: FULL
+ *
+ * SUBTEST: invalid-buf
+ * Description: Verify that GEM_WAIT called with invalid buffer object will fail.
+ * Run type: FULL
+ *
+ * SUBTEST: invalid-flags
+ * Description: Verify that GEM_WAIT called with invalid flag will fail.
+ * Run type: FULL
+ *
+ * SUBTEST: wait
+ * Description: Verify GEM_WAIT functionality in wait mode.
+ * Run type: FULL
+ *
+ * SUBTEST: write-busy
+ * Description: Verify GEM_WAIT functionality in write-busy mode.
+ * Run type: FULL
+ *
+ * SUBTEST: write-wait
+ * Description: Verify GEM_WAIT functionality in write-wait mode.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Tests the GEM_WAIT ioctl");
 
diff --git a/tests/i915/gem_watchdog.c b/tests/i915/gem_watchdog.c
index 27f3a2d7fd5c..df75d933c798 100644
--- a/tests/i915/gem_watchdog.c
+++ b/tests/i915/gem_watchdog.c
@@ -35,6 +35,17 @@
 #include "igt.h"
 #include "igt_params.h"
 #include "sw_sync.h"
+/**
+ * TEST: gem watchdog
+ * Feature: gem_core
+ * Run type: FULL
+ *
+ * SUBTEST: default-physical
+ *
+ * SUBTEST: default-virtual
+ *
+ * SUBTEST: far-fence
+ */
 
 #define EWATCHDOG EINTR
 
diff --git a/tests/i915/gem_workarounds.c b/tests/i915/gem_workarounds.c
index 7d1199625416..fd3b83b5a7e6 100644
--- a/tests/i915/gem_workarounds.c
+++ b/tests/i915/gem_workarounds.c
@@ -32,6 +32,46 @@
 #include "igt.h"
 #include "igt_device.h"
 #include "igt_types.h"
+/**
+ * TEST: gem workarounds
+ * Run type: FULL
+ *
+ * SUBTEST: basic-read
+ * Feature: workarounds
+ *
+ * SUBTEST: basic-read-context
+ * Feature: workarounds
+ *
+ * SUBTEST: basic-read-fd
+ * Feature: workarounds
+ *
+ * SUBTEST: hibernate-resume
+ * Feature: hibernate, workarounds
+ *
+ * SUBTEST: hibernate-resume-context
+ * Feature: hibernate, workarounds
+ *
+ * SUBTEST: hibernate-resume-fd
+ * Feature: hibernate, workarounds
+ *
+ * SUBTEST: reset
+ * Feature: workarounds
+ *
+ * SUBTEST: reset-context
+ * Feature: workarounds
+ *
+ * SUBTEST: reset-fd
+ * Feature: workarounds
+ *
+ * SUBTEST: suspend-resume
+ * Feature: suspend, workarounds
+ *
+ * SUBTEST: suspend-resume-context
+ * Feature: suspend, workarounds
+ *
+ * SUBTEST: suspend-resume-fd
+ * Feature: suspend, workarounds
+ */
 
 #define PAGE_SIZE 4096
 #define PAGE_ALIGN(x) ALIGN(x, PAGE_SIZE)
diff --git a/tests/i915/gen3_mixed_blits.c b/tests/i915/gen3_mixed_blits.c
index 242b99855d27..3c6fb141a9ee 100644
--- a/tests/i915/gen3_mixed_blits.c
+++ b/tests/i915/gen3_mixed_blits.c
@@ -48,6 +48,13 @@
 #include "i915/gem_create.h"
 #include "i915_reg.h"
 #include "igt.h"
+/**
+ * TEST: gen3 mixed blits
+ * Feature: obsolete
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define WIDTH (512)
 #define HEIGHT (512)
diff --git a/tests/i915/gen3_render_linear_blits.c b/tests/i915/gen3_render_linear_blits.c
index 9c6b4c7019a5..7dfb2709ad37 100644
--- a/tests/i915/gen3_render_linear_blits.c
+++ b/tests/i915/gen3_render_linear_blits.c
@@ -47,6 +47,13 @@
 #include "i915/gem_create.h"
 #include "i915_reg.h"
 #include "igt.h"
+/**
+ * TEST: gen3 render linear blits
+ * Feature: obsolete
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define WIDTH 512
 #define HEIGHT 512
diff --git a/tests/i915/gen3_render_mixed_blits.c b/tests/i915/gen3_render_mixed_blits.c
index 1393055f31a2..f8e1bdfbda12 100644
--- a/tests/i915/gen3_render_mixed_blits.c
+++ b/tests/i915/gen3_render_mixed_blits.c
@@ -48,6 +48,13 @@
 #include "i915/gem_create.h"
 #include "i915_reg.h"
 #include "igt.h"
+/**
+ * TEST: gen3 render mixed blits
+ * Feature: obsolete
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define WIDTH 512
 #define HEIGHT 512
diff --git a/tests/i915/gen3_render_tiledx_blits.c b/tests/i915/gen3_render_tiledx_blits.c
index ece86749358c..1abe5adbc553 100644
--- a/tests/i915/gen3_render_tiledx_blits.c
+++ b/tests/i915/gen3_render_tiledx_blits.c
@@ -48,6 +48,13 @@
 #include "i915/gem_create.h"
 #include "i915_reg.h"
 #include "igt.h"
+/**
+ * TEST: gen3 render tiledx blits
+ * Feature: obsolete
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define WIDTH 512
 #define HEIGHT 512
diff --git a/tests/i915/gen3_render_tiledy_blits.c b/tests/i915/gen3_render_tiledy_blits.c
index 30097be66744..b1f4b628a37c 100644
--- a/tests/i915/gen3_render_tiledy_blits.c
+++ b/tests/i915/gen3_render_tiledy_blits.c
@@ -48,6 +48,13 @@
 #include "i915/gem_create.h"
 #include "i915_reg.h"
 #include "igt.h"
+/**
+ * TEST: gen3 render tiledy blits
+ * Feature: obsolete
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 #define WIDTH 512
 #define HEIGHT 512
diff --git a/tests/i915/gen7_exec_parse.c b/tests/i915/gen7_exec_parse.c
index e9751ea73f44..81a5bb14f020 100644
--- a/tests/i915/gen7_exec_parse.c
+++ b/tests/i915/gen7_exec_parse.c
@@ -34,6 +34,37 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "sw_sync.h"
+/**
+ * TEST: gen7 exec parse
+ * Feature: cmd_submission, command_parser
+ * Run type: FULL
+ *
+ * SUBTEST: basic-allocation
+ *
+ * SUBTEST: basic-allowed
+ *
+ * SUBTEST: basic-offset
+ *
+ * SUBTEST: basic-rejected
+ *
+ * SUBTEST: batch-without-end
+ *
+ * SUBTEST: bitmasks
+ *
+ * SUBTEST: chained-batch
+ *
+ * SUBTEST: cmd-crossing-page
+ *
+ * SUBTEST: load-register-reg
+ *
+ * SUBTEST: oacontrol-tracking
+ *
+ * SUBTEST: test-lri-OACONTROL
+ *
+ * SUBTEST: test-lri-OASTATUS2
+ *
+ * SUBTEST: test-lri-SO_WRITE_OFFSET_0
+ */
 
 #define DERRMR 0x44050
 #define OASTATUS2 0x2368
diff --git a/tests/i915/gen9_exec_parse.c b/tests/i915/gen9_exec_parse.c
index 26b1517053a0..a927bfacaf33 100644
--- a/tests/i915/gen9_exec_parse.c
+++ b/tests/i915/gen9_exec_parse.c
@@ -33,6 +33,53 @@
 #include "i915/gem_submission.h"
 #include "igt.h"
 #include "sw_sync.h"
+/**
+ * TEST: gen9 exec parse
+ * Feature: blitter, command_parser
+ * Run type: FULL
+ *
+ * SUBTEST: allowed-all
+ *
+ * SUBTEST: allowed-single
+ *
+ * SUBTEST: basic-rejected
+ *
+ * SUBTEST: basic-rejected-ctx-param
+ *
+ * SUBTEST: batch-invalid-length
+ *
+ * SUBTEST: batch-without-end
+ *
+ * SUBTEST: batch-zero-length
+ *
+ * SUBTEST: bb-chained
+ *
+ * SUBTEST: bb-large
+ *
+ * SUBTEST: bb-oversize
+ *
+ * SUBTEST: bb-secure
+ *
+ * SUBTEST: bb-start-cmd
+ *
+ * SUBTEST: bb-start-far
+ *
+ * SUBTEST: bb-start-out
+ *
+ * SUBTEST: bb-start-param
+ *
+ * SUBTEST: cmd-crossing-page
+ *
+ * SUBTEST: secure-batches
+ *
+ * SUBTEST: shadow-peek
+ *
+ * SUBTEST: unaligned-access
+ *
+ * SUBTEST: unaligned-jump
+ *
+ * SUBTEST: valid-registers
+ */
 
 /* To help craft commands known to be invalid across all engines */
 #define INSTR_CLIENT_SHIFT	29
diff --git a/tests/i915/i915_fb_tiling.c b/tests/i915/i915_fb_tiling.c
index cafa5233c9d0..586950266708 100644
--- a/tests/i915/i915_fb_tiling.c
+++ b/tests/i915/i915_fb_tiling.c
@@ -23,6 +23,14 @@
  */
 
 #include "igt.h"
+/**
+ * TEST: i915 fb tiling
+ * Description: Object tiling must be fixed after framebuffer creation.
+ * Feature: mapping
+ * Run type: FULL
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Object tiling must be fixed after framebuffer creation.");
 
diff --git a/tests/i915/i915_getparams_basic.c b/tests/i915/i915_getparams_basic.c
index 5422d585ffb6..e026aad565ff 100644
--- a/tests/i915/i915_getparams_basic.c
+++ b/tests/i915/i915_getparams_basic.c
@@ -30,6 +30,18 @@
 #include <errno.h>
 #include <xf86drm.h>
 #include <i915_drm.h>
+/**
+ * TEST: i915 getparams basic
+ * Description: Tests the export of parameters via DRM_IOCTL_I915_GETPARAM
+ * Feature: gem_core
+ * Run type: BAT
+ *
+ * SUBTEST: basic-eu-total
+ * Description: Examine the export of EU_TOTAL parameter
+ *
+ * SUBTEST: basic-subslice-total
+ * Description: Examine the export of SUBSLICE_TOTAL parameter
+ */
 
 IGT_TEST_DESCRIPTION("Tests the export of parameters via DRM_IOCTL_I915_GETPARAM\n");
 
diff --git a/tests/i915/i915_hangman.c b/tests/i915/i915_hangman.c
index dd396c4e9709..ef45b25adacd 100644
--- a/tests/i915/i915_hangman.c
+++ b/tests/i915/i915_hangman.c
@@ -40,6 +40,47 @@
 #include "igt_sysfs.h"
 #include "igt_debugfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: i915 hangman
+ * Description: Tests for hang detection and recovery
+ * Feature: reset
+ *
+ * SUBTEST: detector
+ * Description: Check that hang detector works
+ * Run type: FULL
+ *
+ * SUBTEST: engine-engine-error
+ * Description: Per engine hang recovery (invalid CS, engine reset)
+ * Run type: FULL
+ *
+ * SUBTEST: engine-engine-hang
+ * Description: Per engine hang recovery (spin, engine reset)
+ * Run type: FULL
+ *
+ * SUBTEST: engine-error-state-capture
+ * Description: Per engine error capture (engine reset)
+ * Run type: FULL
+ *
+ * SUBTEST: error-state-basic
+ * Description: Basic error capture
+ * Run type: BAT
+ *
+ * SUBTEST: gt-engine-error
+ * Description: Per engine hang recovery (invalid CS, GT reset)
+ * Run type: FULL
+ *
+ * SUBTEST: gt-engine-hang
+ * Description: Per engine hang recovery (spin, GT reset)
+ * Run type: FULL
+ *
+ * SUBTEST: gt-error-state-capture
+ * Description: Per engine error capture (GT reset)
+ * Run type: FULL
+ *
+ * SUBTEST: hangcheck-unterminated
+ * Description: Check that executing unintialised memory causes a hang
+ * Run type: FULL
+ */
 
 #ifndef I915_PARAM_CMD_PARSER_VERSION
 #define I915_PARAM_CMD_PARSER_VERSION       28
diff --git a/tests/i915/i915_hwmon.c b/tests/i915/i915_hwmon.c
index 6d9937e99dc8..6d1334172c40 100644
--- a/tests/i915/i915_hwmon.c
+++ b/tests/i915/i915_hwmon.c
@@ -8,6 +8,18 @@
 #include "igt.h"
 #include "igt_hwmon.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: i915 hwmon
+ * Description: Tests for i915 hwmon
+ * Feature: hwmon
+ * Run type: FULL
+ *
+ * SUBTEST: hwmon-read
+ * Description: Verify we can read all hwmon attributes
+ *
+ * SUBTEST: hwmon-write
+ * Description: Verify writable hwmon attributes
+ */
 
 IGT_TEST_DESCRIPTION("Tests for i915 hwmon");
 
diff --git a/tests/i915/i915_module_load.c b/tests/i915/i915_module_load.c
index 725687dab4f2..ae4e01ef18bc 100644
--- a/tests/i915/i915_module_load.c
+++ b/tests/i915/i915_module_load.c
@@ -23,6 +23,36 @@
 #include "igt.h"
 #include <dirent.h>
 #include <sys/utsname.h>
+/**
+ * TEST: i915 module load
+ * Description: Tests the i915 module loading.
+ *
+ * SUBTEST: load
+ * Description: Check if i915 and friends are not yet loaded, then load them.
+ * Feature: core
+ * Run type: BAT
+ *
+ * SUBTEST: reload
+ * Description: Verify the basic functionality of i915 driver after it's reloaded.
+ * Feature: core, sriov-core
+ * Run type: BAT
+ *
+ * SUBTEST: reload-no-display
+ * Description: Verify that i915 driver can be successfully loaded with disabled display.
+ * Feature: core, sriov-core
+ * Run type: FULL
+ *
+ * SUBTEST: reload-with-fault-injection
+ * Description: Verify that i915 driver can be successfully reloaded at least once with fault injection.
+ * Feature: core, sriov-core
+ * Run type: FULL
+ *
+ * SUBTEST: resize-bar
+ * Description: Check whether lmem bar size can be resized to only supported sizes.
+ * Feature: core
+ * Run type: FULL
+ */
+
 #ifdef __linux__
 #include <linux/limits.h>
 #endif
diff --git a/tests/i915/i915_pciid.c b/tests/i915/i915_pciid.c
index 377eec58cf13..ae3d2a09d208 100644
--- a/tests/i915/i915_pciid.c
+++ b/tests/i915/i915_pciid.c
@@ -28,6 +28,14 @@
 #include "drmtest.h"
 #include "i915_drm.h"
 #include "intel_chipset.h"
+/**
+ * TEST: i915 pciid
+ * Description: Check that igt/i915 know about this PCI-ID
+ * Feature: core
+ * Run type: BAT
+ *
+ * SUBTEST:
+ */
 
 IGT_TEST_DESCRIPTION("Check that igt/i915 know about this PCI-ID");
 
diff --git a/tests/i915/i915_pipe_stress.c b/tests/i915/i915_pipe_stress.c
index c06bc65d2c73..9ceb056a091b 100644
--- a/tests/i915/i915_pipe_stress.c
+++ b/tests/i915/i915_pipe_stress.c
@@ -18,6 +18,23 @@
 #include <pthread.h>
 #include <semaphore.h>
 #include "i915/gem.h"
+/**
+ * TEST: i915 pipe stress
+ * Description:
+ *   Stress test how gpu and cpu behaves if maximum amount of planes, cpu and gpu utilization is
+ *   achieved in order to reveal possible bandwidth/watermark and similar problems.
+ * Run type: FULL
+ *
+ * SUBTEST: stress-xrgb8888-untiled
+ * Description:
+ *   Start pipe stress test, utilizing cpu and gpu simultaneously with maximum amount of planes
+ *   and resolution.
+ *
+ * SUBTEST: stress-xrgb8888-ytiled
+ * Description:
+ *   Start pipe stress test, utilizing cpu and gpu simultaneously with maximum amount of planes
+ *   and resolution.
+ */
 
 IGT_TEST_DESCRIPTION("Stress test how gpu and cpu behaves if maximum amount of planes, "
 		     "cpu and gpu utilization is achieved in order to reveal possible "
diff --git a/tests/i915/i915_pm_backlight.c b/tests/i915/i915_pm_backlight.c
index 829606622d67..b633387bcfd9 100644
--- a/tests/i915/i915_pm_backlight.c
+++ b/tests/i915/i915_pm_backlight.c
@@ -36,6 +36,31 @@
 #include <time.h>
 #include "igt_device.h"
 #include "igt_device_scan.h"
+/**
+ * TEST: i915 pm backlight
+ * Description: Basic backlight sysfs test
+ * Feature: backlight
+ *
+ * SUBTEST: bad-brightness
+ * Description: test the bad brightness.
+ * Run type: FULL
+ *
+ * SUBTEST: basic-brightness
+ * Description: test the basic brightness.
+ * Run type: BAT
+ *
+ * SUBTEST: fade
+ * Description: test basic fade.
+ * Run type: FULL
+ *
+ * SUBTEST: fade-with-dpms
+ * Description: test the fade with DPMS.
+ * Run type: FULL
+ *
+ * SUBTEST: fade-with-suspend
+ * Description: test the fade with suspend.
+ * Run type: FULL
+ */
 
 struct context {
 	int max;
diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
index 6f08cb3fc44e..2bb07ba8b25a 100644
--- a/tests/i915/i915_pm_dc.c
+++ b/tests/i915/i915_pm_dc.c
@@ -36,6 +36,47 @@
 #include "limits.h"
 #include "time.h"
 #include "igt_pm.h"
+/**
+ * TEST: i915 pm dc
+ * Description: Tests to validate display power DC states.
+ * Run type: FULL
+ *
+ * SUBTEST: dc3co-vpb-simulation
+ * Description:
+ *   In this test we make sure that system enters DC3CO when PSR2 is active and system is in SLEEP
+ *   state
+ * Feature: dc3co, pm_dc
+ *
+ * SUBTEST: dc5-dpms
+ * Description:
+ *   This test validates display engine entry to DC5 state while all connectors's DPMS property
+ *   set to OFF
+ * Feature: pm_dc
+ *
+ * SUBTEST: dc5-dpms-negative
+ * Description:
+ *   This test validates negative scenario of DC5 display engine entry to DC5 state while all
+ *   connectors's DPMS property set to ON
+ * Feature: pm_dc
+ *
+ * SUBTEST: dc5-psr
+ * Description: This test validates display engine entry to DC5 state while PSR is active
+ * Feature: pm_dc
+ *
+ * SUBTEST: dc6-dpms
+ * Description:
+ *   This test validates display engine entry to DC6 state while all connectors's DPMS property
+ *   set to OFF
+ * Feature: pm_dc
+ *
+ * SUBTEST: dc6-psr
+ * Description: This test validates display engine entry to DC6 state while PSR is active
+ * Feature: pm_dc
+ *
+ * SUBTEST: dc9-dpms
+ * Description: This test validates display engine entry to DC9 state
+ * Feature: pm_dc
+ */
 
 /* DC State Flags */
 #define CHECK_DC5	(1 << 0)
diff --git a/tests/i915/i915_pm_freq_api.c b/tests/i915/i915_pm_freq_api.c
index 662d514a4ef6..9005cd220a49 100644
--- a/tests/i915/i915_pm_freq_api.c
+++ b/tests/i915/i915_pm_freq_api.c
@@ -8,6 +8,17 @@
 #include "i915/gem.h"
 #include "igt_sysfs.h"
 #include "igt.h"
+/**
+ * TEST: i915 pm freq api
+ * Description: Test SLPC freq API
+ * Run type: FULL
+ *
+ * SUBTEST: freq-basic-api
+ * Description: Test basic API for controlling min/max GT frequency
+ *
+ * SUBTEST: freq-reset
+ * Description: Test basic freq API works after a reset
+ */
 
 IGT_TEST_DESCRIPTION("Test SLPC freq API");
 /*
diff --git a/tests/i915/i915_pm_freq_mult.c b/tests/i915/i915_pm_freq_mult.c
index 894ae294c1f9..d75ec3f9e8de 100644
--- a/tests/i915/i915_pm_freq_mult.c
+++ b/tests/i915/i915_pm_freq_mult.c
@@ -10,6 +10,16 @@
 #include "i915/gem.h"
 #include "igt.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: i915 pm freq mult
+ * Description:
+ *   Tests for sysfs controls (or multipliers) for IP blocks which run at frequencies different
+ *   from the main GT frequency.
+ * Run type: FULL
+ *
+ * SUBTEST: media-freq
+ * Description: Tests for media frequency factor sysfs
+ */
 
 IGT_TEST_DESCRIPTION(
 	"Tests for sysfs controls (or multipliers) for IP blocks which run at "
diff --git a/tests/i915/i915_pm_lpsp.c b/tests/i915/i915_pm_lpsp.c
index 3ad8b2603f90..cb01a6d9e1f6 100644
--- a/tests/i915/i915_pm_lpsp.c
+++ b/tests/i915/i915_pm_lpsp.c
@@ -32,6 +32,18 @@
 #include <sys/stat.h>
 #include <fcntl.h>
 #include <unistd.h>
+/**
+ * TEST: i915 pm lpsp
+ * Description: These tests validates display Low Power Single Pipe configurations
+ * Feature: pm_lpsp
+ * Run type: FULL
+ *
+ * SUBTEST: kms-lpsp
+ * Description: This test validates lpsp on all connected outputs on low power PIPE_A
+ *
+ * SUBTEST: screens-disabled
+ * Description: This test validates lpsp while all crtc are disabled
+ */
 
 #define MAX_SINK_LPSP_INFO_BUF_LEN	4096
 
diff --git a/tests/i915/i915_pm_rc6_residency.c b/tests/i915/i915_pm_rc6_residency.c
index 3554f5d7749a..ce81e668a2b1 100644
--- a/tests/i915/i915_pm_rc6_residency.c
+++ b/tests/i915/i915_pm_rc6_residency.c
@@ -40,6 +40,22 @@
 #include "igt_power.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: i915 pm rc6 residency
+ * Run type: FULL
+ *
+ * SUBTEST: media-rc6-accuracy
+ * Feature: pm_rc6
+ *
+ * SUBTEST: rc6-accuracy
+ * Feature: GuCRC, pm_rc6
+ *
+ * SUBTEST: rc6-fence
+ * Feature: GuCRC, pm_rc6
+ *
+ * SUBTEST: rc6-idle
+ * Feature: GuCRC, pm_rc6
+ */
 
 #define SLEEP_DURATION 3 /* in seconds */
 
diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
index 9a6408dd3796..d9b4cbbfe615 100644
--- a/tests/i915/i915_pm_rpm.c
+++ b/tests/i915/i915_pm_rpm.c
@@ -40,6 +40,191 @@
 #include <sys/mman.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+/**
+ * TEST: i915 pm rpm
+ *
+ * SUBTEST: basic-pci-d3-state
+ * Feature: pm_rpm
+ * Run type: BAT
+ *
+ * SUBTEST: basic-rte
+ * Feature: pm_rpm
+ * Run type: BAT
+ *
+ * SUBTEST: cursor
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: cursor-dpms
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: debugfs-forcewake-user
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: debugfs-read
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: dpms-lpsp
+ * Feature: dpms, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: dpms-mode-unset-lpsp
+ * Feature: dpms, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: dpms-mode-unset-non-lpsp
+ * Feature: dpms, non-lpsp, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: dpms-non-lpsp
+ * Feature: dpms, non-lpsp, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: drm-resources-equal
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: fences
+ * Feature: gtt, pm_rpm, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fences-dpms
+ * Feature: gtt, pm_rpm, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: gem-evict-pwrite
+ * Feature: gtt, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: gem-execbuf
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: gem-execbuf-stress
+ * Description: Validate execbuf submission while exercising rpm suspend/resume cycles.
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: gem-execbuf-stress-pc8
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: gem-idle
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: gem-mmap-type
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: gem-pread
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: i2c
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-planes
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: legacy-planes-dpms
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-lpsp
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-lpsp-stress
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-lpsp-stress-no-wait
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-non-lpsp
+ * Feature: non-lpsp, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-non-lpsp-stress
+ * Feature: non-lpsp, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-non-lpsp-stress-no-wait
+ * Feature: non-lpsp, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-pc8-residency-stress
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: modeset-stress-extra-wait
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: module-reload
+ * Feature: pm_rpm
+ * Run type: BAT
+ *
+ * SUBTEST: pc8-residency
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: pm-caching
+ * Feature: gtt, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: pm-tiling
+ * Feature: gtt, pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: reg-read-ioctl
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: sysfs-read
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: system-hibernate
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: system-hibernate-devices
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: system-suspend
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: system-suspend-devices
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: system-suspend-execbuf
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: system-suspend-modeset
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: universal-planes
+ * Feature: pm_rpm
+ * Run type: FULL
+ *
+ * SUBTEST: universal-planes-dpms
+ * Feature: pm_rpm
+ * Run type: FULL
+ */
+
 #if defined(__linux__)
 #include <linux/i2c.h>
 #include <linux/i2c-dev.h>
diff --git a/tests/i915/i915_pm_rps.c b/tests/i915/i915_pm_rps.c
index d4ee2d58abf2..050d68a16559 100644
--- a/tests/i915/i915_pm_rps.c
+++ b/tests/i915/i915_pm_rps.c
@@ -42,6 +42,40 @@
 #include "igt_dummyload.h"
 #include "igt_perf.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: i915 pm rps
+ * Description: Render P-States tests - verify GPU frequency changes
+ *
+ * SUBTEST: basic-api
+ * Feature: pm_rps
+ * Run type: BAT
+ *
+ * SUBTEST: engine-order
+ * Description: Check if context reuse does not affect waitboosting
+ * Feature: pm_rps
+ * Run type: FULL
+ *
+ * SUBTEST: fence-order
+ * Description: Check if the order of fences does not affect waitboosting
+ * Feature: pm_rps, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: min-max-config-idle
+ * Feature: pm_rps
+ * Run type: FULL
+ *
+ * SUBTEST: min-max-config-loaded
+ * Feature: pm_rps
+ * Run type: FULL
+ *
+ * SUBTEST: reset
+ * Feature: pm_rps
+ * Run type: FULL
+ *
+ * SUBTEST: waitboost
+ * Feature: pm_rps
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Render P-States tests - verify GPU frequency changes");
 
diff --git a/tests/i915/i915_pm_sseu.c b/tests/i915/i915_pm_sseu.c
index 1b428c9ba7fd..39eecb8fecb2 100644
--- a/tests/i915/i915_pm_sseu.c
+++ b/tests/i915/i915_pm_sseu.c
@@ -35,6 +35,14 @@
 #include "i915/gem.h"
 #include "igt.h"
 #include "intel_bufops.h"
+/**
+ * TEST: i915 pm sseu
+ * Description: Tests slice/subslice/EU power gating functionality.
+ * Feature: pm_sseu
+ * Run type: FULL
+ *
+ * SUBTEST: full-enable
+ */
 
 IGT_TEST_DESCRIPTION("Tests slice/subslice/EU power gating functionality.\n");
 
diff --git a/tests/i915/i915_power.c b/tests/i915/i915_power.c
index 51b412e3a6a4..383c212d2807 100644
--- a/tests/i915/i915_power.c
+++ b/tests/i915/i915_power.c
@@ -7,6 +7,15 @@
 #include "i915/gem.h"
 #include "igt_power.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: i915 power
+ * Description: i915 power measurement tests
+ * Feature: hwmon
+ * Run type: FULL
+ *
+ * SUBTEST: sanity
+ * Description: Sanity check gpu power measurement
+ */
 
 IGT_TEST_DESCRIPTION("i915 power measurement tests");
 
diff --git a/tests/i915/i915_query.c b/tests/i915/i915_query.c
index e725e04e46c2..10c6d43fa7fc 100644
--- a/tests/i915/i915_query.c
+++ b/tests/i915/i915_query.c
@@ -27,6 +27,69 @@
 #include "i915/gem_create.h"
 
 #include <limits.h>
+/**
+ * TEST: i915 query
+ * Description: Testing the i915 query uAPI.
+ * Run type: FULL
+ *
+ * SUBTEST: engine-info
+ * Description: Positive tests for DRM_I915_QUERY_ENGINE_INFO
+ * Feature: gem_core
+ *
+ * SUBTEST: engine-info-invalid
+ * Description: Negative tests for DRM_I915_QUERY_ENGINE_INFO
+ * Feature: gem_core
+ *
+ * SUBTEST: hwconfig_table
+ * Description: Test DRM_I915_QUERY_HWCONFIG_BLOB query
+ * Feature: gem_core
+ *
+ * SUBTEST: query-garbage
+ * Description: Test response to an invalid query call
+ * Feature: gem_core
+ *
+ * SUBTEST: query-regions-garbage-items
+ * Description: Dodgy returned data tests for DRM_I915_QUERY_MEMORY_REGIONS
+ * Feature: gem_core
+ *
+ * SUBTEST: query-regions-sanity-check
+ * Description: Basic tests for DRM_I915_QUERY_MEMORY_REGIONS
+ * Feature: gem_core
+ *
+ * SUBTEST: query-regions-unallocated
+ * Description: Sanity check the region unallocated tracking
+ * Feature: gem_core
+ *
+ * SUBTEST: query-topology-coherent-slice-mask
+ * Description: Compare new DRM_I915_QUERY_TOPOLOGY_INFO query with legacy (sub)slice getparams
+ * Feature: gem_core
+ *
+ * SUBTEST: query-topology-garbage-items
+ * Description: Test response to invalid DRM_I915_QUERY_TOPOLOGY_INFO query
+ * Feature: gem_core
+ *
+ * SUBTEST: query-topology-kernel-writes
+ * Description: Guardband test for DRM_I915_QUERY_TOPOLOGY_INFO query
+ * Feature: gem_core
+ *
+ * SUBTEST: query-topology-known-pci-ids
+ * Description:
+ *   Verify DRM_I915_QUERY_TOPOLOGY_INFO query against hardcoded known values for certain
+ *   platforms
+ * Feature: gem_core
+ *
+ * SUBTEST: query-topology-matches-eu-total
+ * Description: More compare new DRM_I915_QUERY_TOPOLOGY_INFO query with legacy (sub)slice getparams
+ * Feature: gem_core
+ *
+ * SUBTEST: query-topology-unsupported
+ * Description: Verify DRM_I915_QUERY_TOPOLOGY_INFO query fails when it is not supported
+ * Feature: gem_core, no-query-topology
+ *
+ * SUBTEST: test-query-geometry-subslices
+ * Description: Test DRM_I915_QUERY_GEOMETRY_SUBSLICES query
+ * Feature: gem_core
+ */
 
 IGT_TEST_DESCRIPTION("Testing the i915 query uAPI.");
 
diff --git a/tests/i915/i915_selftest.c b/tests/i915/i915_selftest.c
index abc8c9c795d3..8863274405ba 100644
--- a/tests/i915/i915_selftest.c
+++ b/tests/i915/i915_selftest.c
@@ -23,6 +23,22 @@
 
 #include "igt.h"
 #include "igt_kmod.h"
+/**
+ * TEST: i915 selftest
+ * Description: Basic unit tests for i915.ko
+ *
+ * SUBTEST: live
+ * Feature: gem_core
+ * Run type: BAT
+ *
+ * SUBTEST: mock
+ * Feature: gem_core
+ * Run type: FULL
+ *
+ * SUBTEST: perf
+ * Feature: oa
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Basic unit tests for i915.ko");
 
diff --git a/tests/i915/i915_suspend.c b/tests/i915/i915_suspend.c
index a9507964bc3a..1164d303e06c 100644
--- a/tests/i915/i915_suspend.c
+++ b/tests/i915/i915_suspend.c
@@ -44,6 +44,63 @@
 #include "igt_kmod.h"
 #include "igt_device.h"
 #include "igt_device_scan.h"
+/**
+ * TEST: i915 suspend
+ *
+ * SUBTEST: basic-s2idle-without-i915
+ * Description: Validate suspend-to-idle without i915 module
+ * Feature: suspend
+ * Run type: BAT
+ *
+ * SUBTEST: basic-s3-without-i915
+ * Description: Validate S3 without i915 module
+ * Feature: suspend
+ * Run type: BAT
+ *
+ * SUBTEST: debugfs-reader
+ * Feature: suspend
+ * Run type: FULL
+ *
+ * SUBTEST: debugfs-reader-hibernate
+ * Feature: suspend
+ * Run type: FULL
+ *
+ * SUBTEST: fence-restore-tiled2untiled
+ * Feature: gtt, suspend, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fence-restore-tiled2untiled-hibernate
+ * Feature: gtt, suspend, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fence-restore-untiled
+ * Feature: gtt, suspend, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fence-restore-untiled-hibernate
+ * Feature: gtt, suspend, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: forcewake
+ * Feature: suspend
+ * Run type: FULL
+ *
+ * SUBTEST: forcewake-hibernate
+ * Feature: suspend
+ * Run type: FULL
+ *
+ * SUBTEST: shrink
+ * Feature: suspend
+ * Run type: FULL
+ *
+ * SUBTEST: sysfs-reader
+ * Feature: suspend
+ * Run type: FULL
+ *
+ * SUBTEST: sysfs-reader-hibernate
+ * Feature: suspend
+ * Run type: FULL
+ */
 
 #define OBJECT_SIZE (16*1024*1024)
 
diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index 9ca4d34b6efb..40decc9cf396 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -45,6 +45,150 @@
 #include "igt_perf.h"
 #include "igt_sysfs.h"
 #include "drm.h"
+/**
+ * TEST: perf
+ * Description: Test the i915 perf metrics streaming interface
+ * Run type: FULL
+ *
+ * SUBTEST: blocking
+ * Description: Test blocking read with default hrtimer frequency
+ * Feature: oa
+ *
+ * SUBTEST: blocking-parameterized
+ * Description: Test blocking read with different hrtimer frequencies
+ * Feature: oa
+ *
+ * SUBTEST: buffer-fill
+ * Feature: oa
+ *
+ * SUBTEST: create-destroy-userspace-config
+ * Feature: oa
+ *
+ * SUBTEST: disabled-read-error
+ * Feature: oa
+ *
+ * SUBTEST: enable-disable
+ * Feature: oa
+ *
+ * SUBTEST: gen12-group-concurrent-oa-buffer-read
+ * Description: Verify concurrent reads from OA buffers in different groups
+ * Feature: oa
+ *
+ * SUBTEST: gen12-group-exclusive-stream-ctx-handle
+ * Description: Verify exclusivity of perf streams with ctx handle
+ * Feature: oa
+ *
+ * SUBTEST: gen12-group-exclusive-stream-sample-oa
+ * Description: Verify exclusivity of perf streams with sample oa option
+ * Feature: oa
+ *
+ * SUBTEST: gen12-invalid-class-instance
+ * Description: Verify invalid class instance
+ * Feature: oa
+ *
+ * SUBTEST: gen12-mi-rpc
+ * Description: Test MI REPORT PERF COUNT for Gen 12
+ * Feature: oa
+ *
+ * SUBTEST: gen12-oa-tlb-invalidate
+ * Description: Test OA TLB invalidate
+ * Feature: oa
+ *
+ * SUBTEST: gen12-unprivileged-single-ctx-counters
+ * Description: Measure performance for a specific context using OAR in Gen 12
+ * Feature: oa
+ *
+ * SUBTEST: gen8-unprivileged-single-ctx-counters
+ * Feature: oa, obsolete
+ *
+ * SUBTEST: global-sseu-config
+ * Description: Verify specifying SSEU opening parameters
+ * Feature: oa
+ *
+ * SUBTEST: global-sseu-config-invalid
+ * Description: Verify invalid SSEU opening parameters
+ * Feature: oa
+ *
+ * SUBTEST: i915-ref-count
+ * Feature: oa
+ *
+ * SUBTEST: invalid-create-userspace-config
+ * Feature: oa
+ *
+ * SUBTEST: invalid-oa-exponent
+ * Feature: oa
+ *
+ * SUBTEST: invalid-oa-format-id
+ * Feature: oa
+ *
+ * SUBTEST: invalid-oa-metric-set-id
+ * Feature: oa
+ *
+ * SUBTEST: invalid-open-flags
+ * Feature: oa
+ *
+ * SUBTEST: invalid-remove-userspace-config
+ * Feature: oa
+ *
+ * SUBTEST: low-oa-exponent-permissions
+ * Feature: oa
+ *
+ * SUBTEST: mi-rpc
+ * Feature: oa
+ *
+ * SUBTEST: missing-sample-flags
+ * Feature: oa
+ *
+ * SUBTEST: non-sampling-read-error
+ * Feature: oa
+ *
+ * SUBTEST: non-system-wide-paranoid
+ * Feature: oa
+ *
+ * SUBTEST: non-zero-reason
+ * Description: Test that reason field in OA reports is never 0 on Gen8+
+ * Feature: oa
+ *
+ * SUBTEST: oa-exponents
+ * Feature: oa
+ *
+ * SUBTEST: oa-formats
+ * Feature: oa
+ *
+ * SUBTEST: per-context-mode-unprivileged
+ * Feature: oa, obsolete
+ *
+ * SUBTEST: polling
+ * Description: Test polled read with default hrtimer frequency
+ * Feature: oa
+ *
+ * SUBTEST: polling-parameterized
+ * Description: Test polled read with different hrtimer frequencies
+ * Feature: oa
+ *
+ * SUBTEST: polling-small-buf
+ * Description: Test polled read with buffer size smaller than available data
+ * Feature: oa
+ *
+ * SUBTEST: rc6-disable
+ * Feature: oa
+ *
+ * SUBTEST: short-reads
+ * Feature: oa
+ *
+ * SUBTEST: stress-open-close
+ * Description: Stress tests opening & closing the i915-perf stream in a busy loop
+ * Feature: oa
+ *
+ * SUBTEST: sysctl-defaults
+ * Feature: oa
+ *
+ * SUBTEST: unprivileged-single-ctx-counters
+ * Feature: oa, obsolete
+ *
+ * SUBTEST: whitelisted-registers-userspace-config
+ * Feature: oa
+ */
 
 IGT_TEST_DESCRIPTION("Test the i915 perf metrics streaming interface");
 
diff --git a/tests/i915/perf_pmu.c b/tests/i915/perf_pmu.c
index c5f083bbdbcc..bedadbe92797 100644
--- a/tests/i915/perf_pmu.c
+++ b/tests/i915/perf_pmu.c
@@ -49,6 +49,144 @@
 #include "igt_pm.h"
 #include "intel_ctx.h"
 #include "sw_sync.h"
+/**
+ * TEST: perf pmu
+ * Description: Test the i915 pmu perf interface
+ * Run type: FULL
+ *
+ * SUBTEST: all-busy-check-all
+ * Feature: pmu
+ *
+ * SUBTEST: all-busy-idle-check-all
+ * Feature: pmu
+ *
+ * SUBTEST: busy
+ * Feature: pmu
+ *
+ * SUBTEST: busy-accuracy-2
+ * Feature: pmu
+ *
+ * SUBTEST: busy-accuracy-50
+ * Feature: pmu
+ *
+ * SUBTEST: busy-accuracy-98
+ * Feature: pmu
+ *
+ * SUBTEST: busy-check-all
+ * Feature: pmu
+ *
+ * SUBTEST: busy-double-start
+ * Feature: pmu
+ *
+ * SUBTEST: busy-hang
+ * Feature: pmu
+ *
+ * SUBTEST: busy-idle
+ * Feature: pmu
+ *
+ * SUBTEST: busy-idle-check-all
+ * Feature: pmu
+ *
+ * SUBTEST: busy-idle-no-semaphores
+ * Feature: pmu
+ *
+ * SUBTEST: busy-no-semaphores
+ * Feature: pmu
+ *
+ * SUBTEST: busy-start
+ * Feature: pmu
+ *
+ * SUBTEST: cpu-hotplug
+ * Feature: pmu
+ *
+ * SUBTEST: enable-race
+ * Feature: pmu
+ *
+ * SUBTEST: event-wait
+ * Feature: obsolete, pmu
+ *
+ * SUBTEST: faulting-read
+ * Feature: pmu
+ *
+ * SUBTEST: frequency
+ * Feature: pmu
+ *
+ * SUBTEST: frequency-idle
+ * Feature: pmu
+ *
+ * SUBTEST: gt-awake
+ * Feature: pmu
+ *
+ * SUBTEST: idle
+ * Feature: pmu
+ *
+ * SUBTEST: idle-no-semaphores
+ * Feature: pmu
+ *
+ * SUBTEST: init-busy
+ * Feature: pmu
+ *
+ * SUBTEST: init-sema
+ * Feature: pmu
+ *
+ * SUBTEST: init-wait
+ * Feature: pmu
+ *
+ * SUBTEST: interrupts
+ * Feature: pmu
+ *
+ * SUBTEST: interrupts-sync
+ * Feature: pmu
+ *
+ * SUBTEST: invalid-init
+ * Feature: pmu
+ *
+ * SUBTEST: invalid-open
+ * Feature: pmu
+ *
+ * SUBTEST: module-unload
+ * Feature: pmu
+ *
+ * SUBTEST: most-busy-check-all
+ * Feature: pmu
+ *
+ * SUBTEST: most-busy-idle-check-all
+ * Feature: pmu
+ *
+ * SUBTEST: multi-client
+ * Feature: pmu
+ *
+ * SUBTEST: pmu-read
+ * Description: Verify i915 pmu dir exists and read all events
+ * Feature: pmu
+ *
+ * SUBTEST: rc6
+ * Feature: pmu
+ *
+ * SUBTEST: rc6-runtime-pm
+ * Feature: pmu
+ *
+ * SUBTEST: rc6-runtime-pm-long
+ * Feature: pmu
+ *
+ * SUBTEST: rc6-suspend
+ * Feature: pmu
+ *
+ * SUBTEST: render-node-busy
+ * Feature: pmu
+ *
+ * SUBTEST: render-node-busy-idle
+ * Feature: pmu
+ *
+ * SUBTEST: semaphore-busy
+ * Feature: pmu
+ *
+ * SUBTEST: semaphore-wait
+ * Feature: pmu
+ *
+ * SUBTEST: semaphore-wait-idle
+ * Feature: pmu
+ */
 
 IGT_TEST_DESCRIPTION("Test the i915 pmu perf interface");
 
diff --git a/tests/i915/sysfs_defaults.c b/tests/i915/sysfs_defaults.c
index dda27a0af533..73478559fcda 100644
--- a/tests/i915/sysfs_defaults.c
+++ b/tests/i915/sysfs_defaults.c
@@ -33,6 +33,13 @@
 #include "i915/gem.h"
 #include "i915/gem_engine_topology.h"
 #include "igt_sysfs.h"
+/**
+ * TEST: sysfs defaults
+ * Feature: gem_core
+ * Run type: FULL
+ *
+ * SUBTEST: readonly
+ */
 
 static bool may_write(int dir, const char *file)
 {
diff --git a/tests/i915/sysfs_heartbeat_interval.c b/tests/i915/sysfs_heartbeat_interval.c
index 8a3dd3975832..2971acb32811 100644
--- a/tests/i915/sysfs_heartbeat_interval.c
+++ b/tests/i915/sysfs_heartbeat_interval.c
@@ -41,6 +41,25 @@
 #include "igt_dummyload.h"
 #include "igt_sysfs.h"
 #include "sw_sync.h"
+/**
+ * TEST: sysfs heartbeat interval
+ * Feature: SMI, cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: idempotent
+ *
+ * SUBTEST: invalid
+ *
+ * SUBTEST: long
+ *
+ * SUBTEST: mixed
+ *
+ * SUBTEST: nopreempt
+ *
+ * SUBTEST: off
+ *
+ * SUBTEST: precise
+ */
 
 #define ATTR "heartbeat_interval_ms"
 #define RESET_TIMEOUT 1000 /* milliseconds, long enough for error capture */
diff --git a/tests/i915/sysfs_preempt_timeout.c b/tests/i915/sysfs_preempt_timeout.c
index 5e0a7d96299f..e7c09949930c 100644
--- a/tests/i915/sysfs_preempt_timeout.c
+++ b/tests/i915/sysfs_preempt_timeout.c
@@ -40,6 +40,19 @@
 #include "igt_sysfs.h"
 #include "intel_allocator.h"
 #include "sw_sync.h"
+/**
+ * TEST: sysfs preempt timeout
+ * Feature: SMI, context
+ * Run type: FULL
+ *
+ * SUBTEST: idempotent
+ *
+ * SUBTEST: invalid
+ *
+ * SUBTEST: off
+ *
+ * SUBTEST: timeout
+ */
 
 #define ATTR "preempt_timeout_ms"
 #define RESET_TIMEOUT 1000 /* milliseconds, at long enough for an error capture */
diff --git a/tests/i915/sysfs_timeslice_duration.c b/tests/i915/sysfs_timeslice_duration.c
index 92c4c5eae3d9..0f4905d8b613 100644
--- a/tests/i915/sysfs_timeslice_duration.c
+++ b/tests/i915/sysfs_timeslice_duration.c
@@ -43,6 +43,21 @@
 #include "intel_chipset.h"
 #include "intel_reg.h"
 #include "sw_sync.h"
+/**
+ * TEST: sysfs timeslice duration
+ * Feature: SMI, cmd_submission
+ * Run type: FULL
+ *
+ * SUBTEST: duration
+ *
+ * SUBTEST: idempotent
+ *
+ * SUBTEST: invalid
+ *
+ * SUBTEST: off
+ *
+ * SUBTEST: timeout
+ */
 
 #define ATTR "timeslice_duration_ms"
 #define RESET_TIMEOUT 1000 /* milliseconds, long enough for error capture */
diff --git a/tests/prime_busy.c b/tests/prime_busy.c
index 343020f13ea3..4f7dba7d0e3c 100644
--- a/tests/prime_busy.c
+++ b/tests/prime_busy.c
@@ -26,6 +26,24 @@
 #include "i915/gem.h"
 #include "i915/gem_create.h"
 #include "igt.h"
+/**
+ * TEST: prime busy
+ * Description: Basic check of polling for prime fences.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: after
+ *
+ * SUBTEST: after-wait
+ *
+ * SUBTEST: before
+ *
+ * SUBTEST: before-wait
+ *
+ * SUBTEST: hang
+ *
+ * SUBTEST: hang-wait
+ */
 
 IGT_TEST_DESCRIPTION("Basic check of polling for prime fences.");
 
diff --git a/tests/prime_mmap.c b/tests/prime_mmap.c
index bc19f68c98b6..8ffe37fe199f 100644
--- a/tests/prime_mmap.c
+++ b/tests/prime_mmap.c
@@ -50,6 +50,35 @@
 #include "igt_debugfs.h"
 #include "ioctl_wrappers.h"
 #include "i915/intel_memory_region.h"
+/**
+ * TEST: prime mmap
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: test_aperture_limit
+ *
+ * SUBTEST: test_correct
+ *
+ * SUBTEST: test_correct_cpu_write
+ *
+ * SUBTEST: test_dup
+ *
+ * SUBTEST: test_errors
+ *
+ * SUBTEST: test_forked
+ *
+ * SUBTEST: test_forked_cpu_write
+ *
+ * SUBTEST: test_invalid_sync_flags
+ *
+ * SUBTEST: test_map_unmap
+ *
+ * SUBTEST: test_refcounting
+ *
+ * SUBTEST: test_reprime
+ *
+ * SUBTEST: test_userptr
+ */
 
 #define BO_SIZE (16*1024)
 
diff --git a/tests/prime_mmap_coherency.c b/tests/prime_mmap_coherency.c
index b22fb35c1516..e50f52fdfdb0 100644
--- a/tests/prime_mmap_coherency.c
+++ b/tests/prime_mmap_coherency.c
@@ -31,6 +31,20 @@
 
 #include "i915/gem.h"
 #include "igt.h"
+/**
+ * TEST: prime mmap coherency
+ * Description:
+ *   Test dma-buf mmap on !llc platforms mostly and provoke coherency bugs so we know for sure where
+ *   we need the sync ioctls.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: ioctl-errors
+ *
+ * SUBTEST: read
+ *
+ * SUBTEST: write
+ */
 
 IGT_TEST_DESCRIPTION("Test dma-buf mmap on !llc platforms mostly and provoke"
 		" coherency bugs so we know for sure where we need the sync ioctls.");
diff --git a/tests/prime_self_import.c b/tests/prime_self_import.c
index bf548619453c..7d423b8cd442 100644
--- a/tests/prime_self_import.c
+++ b/tests/prime_self_import.c
@@ -45,6 +45,43 @@
 
 #include "drm.h"
 #include "i915/gem_create.h"
+/**
+ * TEST: prime self import
+ * Description: Check whether prime import/export works on the same device... but with different fds.
+ * Feature: prime
+ *
+ * SUBTEST: basic-llseek-bad
+ * Description: Check dmabuf llseek support with invalid values.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-llseek-size
+ * Description: Check dmabuf llseek support.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-with_fd_dup
+ * Description: Check prime export with duplicate fd.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-with_one_bo
+ * Description: Check prime import/export with one buffer object.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-with_one_bo_two_files
+ * Description: Check prime/flink with one buffer object.
+ * Run type: BAT
+ *
+ * SUBTEST: basic-with_two_bos
+ * Description: Check prime import/export with two buffer objects.
+ * Run type: BAT
+ *
+ * SUBTEST: export-vs-gem_close-race
+ * Description: Check race of gem close against prime export.
+ * Run type: FULL
+ *
+ * SUBTEST: reimport-vs-gem_close-race
+ * Description: Check race of gem close against reimport.
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Check whether prime import/export works on the same"
 		     " device... but with different fds.");
diff --git a/tests/prime_vgem.c b/tests/prime_vgem.c
index 9aa767c9cdfd..59e79af2dd00 100644
--- a/tests/prime_vgem.c
+++ b/tests/prime_vgem.c
@@ -30,6 +30,105 @@
 #include "igt.h"
 #include "igt_vgem.h"
 #include "intel_batchbuffer.h"	/* igt_blitter_src_copy() */
+/**
+ * TEST: prime vgem
+ * Description: Basic check of polling for prime/vgem fences.
+ *
+ * SUBTEST: basic-blt
+ * Description: Examine blitter access path.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: basic-fence-blt
+ * Description: Examine blitter access path fencing.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: basic-fence-flip
+ * Description: Examine vgem bo front/back flip fencing.
+ * Feature: prime
+ * Run type: BAT
+ *
+ * SUBTEST: basic-fence-mmap
+ * Description: Examine GTT access path fencing.
+ * Feature: gtt, prime
+ * Run type: BAT
+ *
+ * SUBTEST: basic-fence-read
+ * Description: Examine read access path fencing.
+ * Feature: gtt, prime
+ * Run type: BAT
+ *
+ * SUBTEST: basic-gtt
+ * Description: Examine access path through GTT.
+ * Feature: gtt, prime
+ * Run type: BAT
+ *
+ * SUBTEST: basic-read
+ * Description: Examine read access path.
+ * Feature: gtt, prime
+ * Run type: BAT
+ *
+ * SUBTEST: basic-userptr
+ * Description: Check that we wrap the vgem mmap with userptr.
+ * Feature: prime
+ * Run type: BAT
+ *
+ * SUBTEST: basic-write
+ * Description: Examine write access path.
+ * Feature: gtt, prime
+ * Run type: BAT
+ *
+ * SUBTEST: busy
+ * Description: Examine busy check of polling for vgem fence.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: coherency-blt
+ * Description: Examine blitter access path WC coherency.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: coherency-gtt
+ * Description: Examine concurrent access of vgem bo.
+ * Feature: gtt, prime
+ * Run type: FULL
+ *
+ * SUBTEST: fence-flip-hang
+ * Description: Examine vgem bo front/back flip fencing with a pending gpu hang.
+ * Feature: blacklist, prime, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fence-read-hang
+ * Description: Examine read access path fencing with a pending gpu hang.
+ * Feature: blacklist, prime, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fence-wait
+ * Description: Examine basic dma-buf fence interop.
+ * Feature: prime, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: fence-write-hang
+ * Description: Examine write access path fencing with a pending gpu hang.
+ * Feature: blacklist, prime, synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: shrink
+ * Description: Examine link establishment between shrinker and vgem bo.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: sync
+ * Description: Examine sync on vgem fence.
+ * Feature: prime
+ * Run type: FULL
+ *
+ * SUBTEST: wait
+ * Description: Examine wait on vgem fence.
+ * Feature: prime
+ * Run type: FULL
+ */
 
 IGT_TEST_DESCRIPTION("Basic check of polling for prime/vgem fences.");
 
diff --git a/tests/sw_sync.c b/tests/sw_sync.c
index cbd773fcb97c..e626cd14cd28 100644
--- a/tests/sw_sync.c
+++ b/tests/sw_sync.c
@@ -38,6 +38,48 @@
 
 #include "sw_sync.h"
 
+/**
+ * TEST: sw sync
+ * Description: Test SW Sync Framework
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: alloc_fence
+ *
+ * SUBTEST: alloc_fence_invalid_timeline
+ *
+ * SUBTEST: alloc_merge_fence
+ *
+ * SUBTEST: alloc_timeline
+ *
+ * SUBTEST: sync_busy
+ *
+ * SUBTEST: sync_busy_fork
+ *
+ * SUBTEST: sync_busy_fork_unixsocket
+ *
+ * SUBTEST: sync_expired_merge
+ *
+ * SUBTEST: sync_merge
+ *
+ * SUBTEST: sync_merge_invalid
+ *
+ * SUBTEST: sync_merge_same
+ *
+ * SUBTEST: sync_multi_consumer
+ *
+ * SUBTEST: sync_multi_consumer_producer
+ *
+ * SUBTEST: sync_multi_producer_single_consumer
+ *
+ * SUBTEST: sync_multi_timeline_wait
+ *
+ * SUBTEST: sync_random_merge
+ *
+ * SUBTEST: timeline_closed
+ *
+ * SUBTEST: timeline_closed_signaled
+ */
 
 IGT_TEST_DESCRIPTION("Test SW Sync Framework");
 
diff --git a/tests/syncobj_basic.c b/tests/syncobj_basic.c
index 6e20c3411a87..8d98137e7bd6 100644
--- a/tests/syncobj_basic.c
+++ b/tests/syncobj_basic.c
@@ -26,6 +26,36 @@
 #include <unistd.h>
 #include <sys/ioctl.h>
 #include "drm.h"
+/**
+ * TEST: syncobj basic
+ * Description: Basic check for drm sync objects.
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: bad-create-flags
+ *
+ * SUBTEST: bad-destroy
+ *
+ * SUBTEST: bad-destroy-pad
+ *
+ * SUBTEST: bad-fd-to-handle
+ *
+ * SUBTEST: bad-flags-fd-to-handle
+ *
+ * SUBTEST: bad-flags-handle-to-fd
+ *
+ * SUBTEST: bad-handle-to-fd
+ *
+ * SUBTEST: bad-pad-fd-to-handle
+ *
+ * SUBTEST: bad-pad-handle-to-fd
+ *
+ * SUBTEST: create-signaled
+ *
+ * SUBTEST: illegal-fd-to-handle
+ *
+ * SUBTEST: test-valid-cycle
+ */
 
 IGT_TEST_DESCRIPTION("Basic check for drm sync objects.");
 
diff --git a/tests/syncobj_timeline.c b/tests/syncobj_timeline.c
index 7f5ff6f6cad6..1158a99fe58f 100644
--- a/tests/syncobj_timeline.c
+++ b/tests/syncobj_timeline.c
@@ -30,6 +30,400 @@
 #include <pthread.h>
 #include <signal.h>
 #include "drm.h"
+/**
+ * TEST: syncobj timeline
+ * Description: Tests for the drm timeline sync object API
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: 32bits-limit
+ * Description:
+ *   Verifies that signaling around the int32_t limit. For compatibility reason, the handling
+ *   of seqnos in the dma-fences can consider a seqnoA is prior seqnoB even though seqnoA > seqnoB.
+ *
+ * SUBTEST: device-signal-unordered
+ * Description:
+ *   Verifies that a device signaling fences out of order on the timeline still increments the
+ *   timeline monotonically and that waits work properly.
+ *
+ * SUBTEST: device-submit-unordered
+ * Description: Verifies that submitting out of order doesn't break the timeline.
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-available-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-available-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-available-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-for-submit-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-all-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-for-submit-available-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-for-submit-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-for-submit-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-for-submit-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-multi-wait-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: etime-single-wait-all-for-submit-available-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-all-for-submit-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-all-for-submit-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-all-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-for-submit-available-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-for-submit-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-for-submit-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: etime-single-wait-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: host-signal-ordered
+ * Description:
+ *   Verifies that the host signaling fences out of order on the timeline still increments the
+ *   timeline monotonically and that waits work properly.
+ *
+ * SUBTEST: host-signal-points
+ * Description:
+ *   Verifies that as we signal points from the host, the syncobj timeline value increments and
+ *   that waits for submits/signals works properly.
+ *
+ * SUBTEST: invalid-multi-wait-all-available-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-available-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-available-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-available-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-available-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-available-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-available-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-available-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: invalid-query-bad-pad
+ * Description:
+ *   Verify that querying a timeline syncobj with an invalid
+ *   drm_syncobj_timeline_array::flags field is rejected
+ *
+ * SUBTEST: invalid-query-illegal-handle
+ * Description: Verifies that querying an invalid syncobj handle is rejected
+ *
+ * SUBTEST: invalid-query-one-illegal-handle
+ * Description: Verifies that querying a list of invalid syncobj handle including an invalid one is rejected
+ *
+ * SUBTEST: invalid-query-zero-handles
+ * Description: Verifies that querying an empty list of syncobj handles is rejected
+ *
+ * SUBTEST: invalid-signal-bad-pad
+ * Description: Verifies that an invalid value in drm_syncobj_timeline_array.flags is rejected
+ *
+ * SUBTEST: invalid-signal-illegal-handle
+ * Description: Verify that signaling an invalid syncobj handle is rejected
+ *
+ * SUBTEST: invalid-signal-illegal-point
+ *
+ * SUBTEST: invalid-signal-one-illegal-handle
+ * Description:
+ *   Verify that an invalid syncobj handle in drm_syncobj_timeline_array is rejected for
+ *   signaling
+ *
+ * SUBTEST: invalid-signal-zero-handles
+ * Description: Verify that signaling an empty list of syncobj handles is rejected
+ *
+ * SUBTEST: invalid-single-wait-all-available-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: invalid-single-wait-all-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: invalid-single-wait-available-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: invalid-single-wait-unsubmitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: invalid-transfer-bad-pad
+ * Description: Verifies that invalid drm_syncobj_transfer::pad field value is rejected
+ *
+ * SUBTEST: invalid-transfer-illegal-handle
+ * Description: Verifies that an invalid syncobj handle is rejected in drm_syncobj_transfer
+ *
+ * SUBTEST: invalid-transfer-non-existent-point
+ * Description:
+ *   Verifies that transfering a point from a syncobj timeline is to another point in the same
+ *   timeline works
+ *
+ * SUBTEST: invalid-wait-bad-flags
+ * Description: Verifies that an invalid value in drm_syncobj_timeline_wait::flags is rejected
+ *
+ * SUBTEST: invalid-wait-illegal-handle
+ * Description: Verifies that waiting on an invalid syncobj handle is rejected
+ *
+ * SUBTEST: invalid-wait-zero-handles
+ * Description: Verifies that waiting on an empty list of invalid syncobj handles is rejected
+ *
+ * SUBTEST: multi-wait-all-available-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-available-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-available-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-for-submit-available-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-for-submit-available-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-for-submit-available-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-for-submit-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-all-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-available-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-available-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-available-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-available-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-available-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-available-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-available-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-available-unsubmitted-submitted
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-available-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-unsubmitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-for-submit-unsubmitted-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: multi-wait-submitted-signaled
+ * Description: Verifies waiting on a list of timeline syncobjs
+ *
+ * SUBTEST: reset-during-wait-for-submit
+ * Description: Verifies behavior of a reset operation on timeline syncobj while wait operation is ongoing
+ *
+ * SUBTEST: reset-multiple-signaled
+ * Description: Verifies behavior of a reset operation on a list of signaled timeline syncobjs
+ *
+ * SUBTEST: reset-signaled
+ * Description: Verifies behavior of a reset operation on a signaled timeline syncobj
+ *
+ * SUBTEST: reset-unsignaled
+ * Description: Verifies behavior of a reset operation on an unsignaled timeline syncobj
+ *
+ * SUBTEST: signal
+ * Description: Verifies basic signaling of a timeline syncobj
+ *
+ * SUBTEST: signal-array
+ * Description: Verifies the signaling of a list of timeline syncobj
+ *
+ * SUBTEST: signal-point-0
+ * Description:
+ *   Verifies that signaling point 0 of a timline syncobj works with both timeline & legacy wait
+ *   operations
+ *
+ * SUBTEST: single-wait-all-available-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-all-available-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-all-for-submit-available-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-all-for-submit-available-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-all-for-submit-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-all-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-available-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-available-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-for-submit-available-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-for-submit-available-submitted
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-for-submit-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: single-wait-signaled
+ * Description: Verifies wait behavior on a single timeline syncobj
+ *
+ * SUBTEST: transfer-timeline-point
+ * Description:
+ *   Verifies that transfering a point from a syncobj timeline is to another point in the same
+ *   timeline works for signal/wait operations
+ *
+ * SUBTEST: wait-all-complex
+ * Description:
+ *   Verifies timeline syncobj at different signal/operations stages & between different
+ *   threads.
+ *
+ * SUBTEST: wait-all-delayed-signal
+ * Description: Verifies wait behavior on a timeline syncobj with a delayed signal from a different thread
+ *
+ * SUBTEST: wait-all-for-submit-complex
+ * Description:
+ *   Verifies timeline syncobj at different signal/operations stages & between different
+ *   threads.
+ *
+ * SUBTEST: wait-all-for-submit-delayed-submit
+ * Description: Verifies wait behavior on a timeline syncobj with a delayed signal from a different thread
+ *
+ * SUBTEST: wait-all-for-submit-snapshot
+ * Description: Verifies waiting on a list of timeline syncobjs with different thread for wait/signal
+ *
+ * SUBTEST: wait-all-interrupted
+ * Description: Verifies timeline syncobj waits interaction with signals.
+ *
+ * SUBTEST: wait-all-snapshot
+ * Description: Verifies waiting on a list of timeline syncobjs with different thread for wait/signal
+ *
+ * SUBTEST: wait-any-complex
+ * Description:
+ *   Verifies timeline syncobj at different signal/operations stages & between different
+ *   threads.
+ *
+ * SUBTEST: wait-any-interrupted
+ * Description: Verifies timeline syncobj waits interaction with signals.
+ *
+ * SUBTEST: wait-any-snapshot
+ * Description: Verifies waiting on a list of timeline syncobjs with different thread for wait/signal
+ *
+ * SUBTEST: wait-delayed-signal
+ * Description: Verifies wait behavior on a timeline syncobj with a delayed signal from a different thread
+ *
+ * SUBTEST: wait-for-submit-complex
+ * Description:
+ *   Verifies timeline syncobj at different signal/operations stages & between different
+ *   threads.
+ *
+ * SUBTEST: wait-for-submit-delayed-submit
+ * Description: Verifies wait behavior on a timeline syncobj with a delayed signal from a different thread
+ *
+ * SUBTEST: wait-for-submit-snapshot
+ * Description: Verifies waiting on a list of timeline syncobjs with different thread for wait/signal
+ */
 
 IGT_TEST_DESCRIPTION("Tests for the drm timeline sync object API");
 
diff --git a/tests/syncobj_wait.c b/tests/syncobj_wait.c
index 427b6b1192ad..930096f6d10e 100644
--- a/tests/syncobj_wait.c
+++ b/tests/syncobj_wait.c
@@ -30,6 +30,150 @@
 #include <pthread.h>
 #include <signal.h>
 #include "drm.h"
+/**
+ * TEST: syncobj wait
+ * Description: Tests for the drm sync object wait API
+ * Feature: synchronization
+ * Run type: FULL
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted-signaled
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted-submitted
+ *
+ * SUBTEST: invalid-multi-wait-all-unsubmitted-submitted-signaled
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted-signaled
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted-submitted
+ *
+ * SUBTEST: invalid-multi-wait-unsubmitted-submitted-signaled
+ *
+ * SUBTEST: invalid-reset-bad-pad
+ *
+ * SUBTEST: invalid-reset-illegal-handle
+ *
+ * SUBTEST: invalid-reset-one-illegal-handle
+ *
+ * SUBTEST: invalid-reset-zero-handles
+ *
+ * SUBTEST: invalid-signal-bad-pad
+ *
+ * SUBTEST: invalid-signal-illegal-handle
+ *
+ * SUBTEST: invalid-signal-one-illegal-handle
+ *
+ * SUBTEST: invalid-signal-zero-handles
+ *
+ * SUBTEST: invalid-single-wait-all-unsubmitted
+ *
+ * SUBTEST: invalid-single-wait-unsubmitted
+ *
+ * SUBTEST: invalid-wait-bad-flags
+ *
+ * SUBTEST: invalid-wait-illegal-handle
+ *
+ * SUBTEST: invalid-wait-zero-handles
+ *
+ * SUBTEST: multi-wait-all-for-submit-signaled
+ *
+ * SUBTEST: multi-wait-all-for-submit-submitted
+ *
+ * SUBTEST: multi-wait-all-for-submit-submitted-signaled
+ *
+ * SUBTEST: multi-wait-all-for-submit-unsubmitted
+ *
+ * SUBTEST: multi-wait-all-for-submit-unsubmitted-signaled
+ *
+ * SUBTEST: multi-wait-all-for-submit-unsubmitted-submitted
+ *
+ * SUBTEST: multi-wait-all-signaled
+ *
+ * SUBTEST: multi-wait-all-submitted
+ *
+ * SUBTEST: multi-wait-all-submitted-signaled
+ *
+ * SUBTEST: multi-wait-for-submit-signaled
+ *
+ * SUBTEST: multi-wait-for-submit-submitted
+ *
+ * SUBTEST: multi-wait-for-submit-submitted-signaled
+ *
+ * SUBTEST: multi-wait-for-submit-unsubmitted
+ *
+ * SUBTEST: multi-wait-for-submit-unsubmitted-signaled
+ *
+ * SUBTEST: multi-wait-for-submit-unsubmitted-submitted
+ *
+ * SUBTEST: multi-wait-for-submit-unsubmitted-submitted-signaled
+ *
+ * SUBTEST: multi-wait-signaled
+ *
+ * SUBTEST: multi-wait-submitted
+ *
+ * SUBTEST: multi-wait-submitted-signaled
+ *
+ * SUBTEST: reset-during-wait-for-submit
+ *
+ * SUBTEST: reset-multiple-signaled
+ *
+ * SUBTEST: reset-signaled
+ *
+ * SUBTEST: reset-unsignaled
+ *
+ * SUBTEST: signal
+ *
+ * SUBTEST: single-wait-all-for-submit-signaled
+ *
+ * SUBTEST: single-wait-all-for-submit-submitted
+ *
+ * SUBTEST: single-wait-all-for-submit-unsubmitted
+ *
+ * SUBTEST: single-wait-all-signaled
+ *
+ * SUBTEST: single-wait-all-submitted
+ *
+ * SUBTEST: single-wait-for-submit-signaled
+ *
+ * SUBTEST: single-wait-for-submit-submitted
+ *
+ * SUBTEST: single-wait-for-submit-unsubmitted
+ *
+ * SUBTEST: single-wait-signaled
+ *
+ * SUBTEST: single-wait-submitted
+ *
+ * SUBTEST: wait-all-complex
+ *
+ * SUBTEST: wait-all-delayed-signal
+ *
+ * SUBTEST: wait-all-for-submit-complex
+ *
+ * SUBTEST: wait-all-for-submit-delayed-submit
+ *
+ * SUBTEST: wait-all-for-submit-snapshot
+ *
+ * SUBTEST: wait-all-interrupted
+ *
+ * SUBTEST: wait-all-snapshot
+ *
+ * SUBTEST: wait-any-complex
+ *
+ * SUBTEST: wait-any-interrupted
+ *
+ * SUBTEST: wait-any-snapshot
+ *
+ * SUBTEST: wait-delayed-signal
+ *
+ * SUBTEST: wait-for-submit-complex
+ *
+ * SUBTEST: wait-for-submit-delayed-submit
+ *
+ * SUBTEST: wait-for-submit-snapshot
+ */
 
 IGT_TEST_DESCRIPTION("Tests for the drm sync object wait API");
 
diff --git a/tests/vgem_basic.c b/tests/vgem_basic.c
index ada5518d7703..2a5f6242e995 100644
--- a/tests/vgem_basic.c
+++ b/tests/vgem_basic.c
@@ -31,6 +31,90 @@
 #include <sys/poll.h>
 #include <sys/stat.h>
 #include <dirent.h>
+/**
+ * TEST: vgem basic
+ * Description: Basic sanity check of Virtual GEM module (vGEM).
+ *
+ * SUBTEST: bad-fence
+ * Description: Make sure a non-existent fence cannot be signaled.
+ * Feature: vgem
+ * Run type: FULL
+ *
+ * SUBTEST: bad-flag
+ * Description: Make sure a fence cannot be attached and signaled with invalid flags.
+ * Feature: vgem
+ * Run type: FULL
+ *
+ * SUBTEST: bad-handle
+ * Description: Make sure a fence cannot be attached to a invalid handle.
+ * Feature: vgem
+ * Run type: FULL
+ *
+ * SUBTEST: bad-pad
+ * Description: Make sure a non-zero pad is rejected.
+ * Feature: vgem
+ * Run type: FULL
+ *
+ * SUBTEST: busy-fence
+ * Description: Make sure a conflicting fence cannot be attached.
+ * Feature: vgem
+ * Run type: FULL
+ *
+ * SUBTEST: create
+ * Description: Check the basic working of vgem_create ioctl.
+ * Feature: vgem
+ * Run type: BAT
+ *
+ * SUBTEST: debugfs
+ * Description: Check the basic access to debugfs and also try to read entries in the directory.
+ * Feature: vgem
+ * Run type: BAT
+ *
+ * SUBTEST: dmabuf-export
+ * Description: Check whether it can export/import the vgem handle using prime.
+ * Feature: prime, vgem
+ * Run type: BAT
+ *
+ * SUBTEST: dmabuf-fence
+ * Description: Check the working of dma-buf fence interop.
+ * Feature: prime, vgem
+ * Run type: BAT
+ *
+ * SUBTEST: dmabuf-fence-before
+ * Description: Attach a fence before exporting a vgem handle and check the working of fence.
+ * Feature: prime, vgem
+ * Run type: BAT
+ *
+ * SUBTEST: dmabuf-mmap
+ * Description: Export the vgem handle along with RDWR capabilities using prime and check if it can be mmaped.
+ * Feature: prime, vgem
+ * Run type: BAT
+ *
+ * SUBTEST: mmap
+ * Description: Create a vgem handle and check if it can be mmaped.
+ * Feature: vgem
+ * Run type: BAT
+ *
+ * SUBTEST: second-client
+ * Description: Check whether it can open multiple clients.
+ * Feature: vgem
+ * Run type: BAT
+ *
+ * SUBTEST: setversion
+ * Description: Check the working of SET_VERSION ioctl.
+ * Feature: vgem
+ * Run type: BAT
+ *
+ * SUBTEST: sysfs
+ * Description: Check the basic access to sysfs and also try to read entries in the directory.
+ * Feature: vgem
+ * Run type: BAT
+ *
+ * SUBTEST: unload
+ * Description: Basic test for handling of module unload.
+ * Feature: vgem
+ * Run type: BAT
+ */
 
 IGT_TEST_DESCRIPTION("Basic sanity check of Virtual GEM module (vGEM).");
 
diff --git a/tests/vgem_slow.c b/tests/vgem_slow.c
index 58b09e421e65..d2a7effff115 100644
--- a/tests/vgem_slow.c
+++ b/tests/vgem_slow.c
@@ -30,6 +30,14 @@
 #include <sys/poll.h>
 #include <sys/stat.h>
 #include <dirent.h>
+/**
+ * TEST: vgem slow
+ * Description: Extended sanity check of Virtual GEM module (vGEM).
+ * Feature: vgem
+ * Run type: FULL
+ *
+ * SUBTEST: nohang
+ */
 
 IGT_TEST_DESCRIPTION("Extended sanity check of Virtual GEM module (vGEM).");
 
-- 
2.40.1



More information about the igt-dev mailing list