1test_progs = [ 2 'core_auth', 3 'core_getclient', 4 'core_getstats', 5 'core_getversion', 6 'core_setmaster_vs_auth', 7 'debugfs_test', 8 'dmabuf', 9 'drm_import_export', 10 'drm_mm', 11 'drm_read', 12 'kms_3d', 13 'kms_addfb_basic', 14 'kms_atomic', 15 'kms_atomic_interruptible', 16 'kms_atomic_transition', 17 'kms_available_modes_crc', 18 'kms_big_fb', 19 'kms_busy', 20 'kms_ccs', 21 'kms_color', 22 'kms_concurrent', 23 'kms_content_protection', 24 'kms_crtc_background_color', 25 'kms_cursor_crc', 26 'kms_cursor_edge_walk', 27 'kms_cursor_legacy', 28 'kms_dp_dsc', 29 'kms_draw_crc', 30 'kms_fbcon_fbt', 31 'kms_fence_pin_leak', 32 'kms_flip', 33 'kms_flip_event_leak', 34 'kms_flip_tiling', 35 'kms_force_connector_basic', 36 'kms_frontbuffer_tracking', 37 'kms_getfb', 38 'kms_hdmi_inject', 39 'kms_invalid_dotclock', 40 'kms_lease', 41 'kms_legacy_colorkey', 42 'kms_mmap_write_crc', 43 'kms_panel_fitting', 44 'kms_pipe_b_c_ivb', 45 'kms_pipe_crc_basic', 46 'kms_plane', 47 'kms_plane_alpha_blend', 48 'kms_plane_cursor', 49 'kms_plane_lowres', 50 'kms_plane_multiple', 51 'kms_plane_scaling', 52 'kms_prime', 53 'kms_prop_blob', 54 'kms_properties', 55 'kms_psr', 56 'kms_psr2_su', 57 'kms_pwrite_crc', 58 'kms_rmfb', 59 'kms_rotation_crc', 60 'kms_selftest', 61 'kms_sequence', 62 'kms_setmode', 63 'kms_sysfs_edid_timing', 64 'kms_tv_load_detect', 65 'kms_universal_plane', 66 'kms_vblank', 67 'kms_vrr', 68 'meta_test', 69 'panfrost_get_param', 70 'panfrost_gem_new', 71 'panfrost_prime', 72 'panfrost_submit', 73 'perf', 74 'prime_busy', 75 'prime_mmap', 76 'prime_mmap_coherency', 77 'prime_mmap_kms', 78 'prime_self_import', 79 'prime_udl', 80 'prime_vgem', 81 'syncobj_basic', 82 'syncobj_wait', 83 'template', 84 'tools_test', 85 'v3d_get_bo_offset', 86 'v3d_get_param', 87 'v3d_mmap', 88 'vc4_create_bo', 89 'vc4_dmabuf_poll', 90 'vc4_label_bo', 91 'vc4_lookup_fail', 92 'vc4_purgeable_bo', 93 'vc4_tiling', 94 'vc4_wait_bo', 95 'vc4_wait_seqno', 96 'vgem_basic', 97 'vgem_slow', 98] 99 100i915_progs = [ 101 'gen3_mixed_blits', 102 'gen3_render_linear_blits', 103 'gen3_render_mixed_blits', 104 'gen3_render_tiledx_blits', 105 'gen3_render_tiledy_blits', 106 'gem_bad_reloc', 107 'gem_basic', 108 'gem_busy', 109 'gem_caching', 110 'gem_close', 111 'gem_close_race', 112 'gem_concurrent_blit', 113 'gem_cpu_reloc', 114 'gem_cs_prefetch', 115 'gem_cs_tlb', 116 'gem_ctx_bad_destroy', 117 'gem_ctx_clone', 118 'gem_ctx_create', 119 'gem_ctx_engines', 120 'gem_ctx_exec', 121 'gem_ctx_isolation', 122 'gem_ctx_param', 123 'gem_ctx_shared', 124 'gem_ctx_switch', 125 'gem_ctx_thrash', 126 'gem_double_irq_loop', 127 'gem_evict_alignment', 128 'gem_evict_everything', 129 'gem_exec_alignment', 130 'gem_exec_async', 131 'gem_exec_await', 132 'gem_exec_bad_domains', 133 'gem_exec_basic', 134 'gem_exec_big', 135 'gem_exec_blt', 136 'gem_exec_capture', 137 'gem_exec_create', 138 'gem_exec_faulting_reloc', 139 'gem_exec_fence', 140 'gem_exec_flush', 141 'gem_exec_gttfill', 142 'gem_exec_latency', 143 'gem_exec_lut_handle', 144 'gem_exec_nop', 145 'gem_exec_parallel', 146 'gem_exec_params', 147 'gem_exec_parse', 148 'gem_exec_reloc', 149 'gem_exec_reuse', 150 'gem_exec_schedule', 151 'gem_exec_store', 152 'gem_exec_suspend', 153 'gem_exec_whisper', 154 'gem_fd_exhaustion', 155 'gem_fence_thrash', 156 'gem_fence_upload', 157 'gem_fenced_exec_thrash', 158 'gem_flink_basic', 159 'gem_flink_race', 160 'gem_gpgpu_fill', 161 'gem_gtt_cpu_tlb', 162 'gem_gtt_hog', 163 'gem_gtt_speed', 164 'gem_largeobject', 165 'gem_linear_blits', 166 'gem_lut_handle', 167 'gem_madvise', 168 'gem_media_fill', 169 'gem_media_vme', 170 'gem_mmap', 171 'gem_mmap_gtt', 172 'gem_mmap_offset_exhaustion', 173 'gem_mmap_wc', 174 'gem_partial_pwrite_pread', 175 'gem_persistent_relocs', 176 'gem_pipe_control_store_loop', 177 'gem_ppgtt', 178 'gem_pread', 179 'gem_pread_after_blit', 180 'gem_pwrite', 181 'gem_pwrite_pread', 182 'gem_pwrite_snooped', 183 'gem_read_read_speed', 184 'gem_readwrite', 185 'gem_reg_read', 186 'gem_reloc_overflow', 187 'gem_reloc_vs_gpu', 188 'gem_render_copy', 189 'gem_render_copy_redux', 190 'gem_render_linear_blits', 191 'gem_render_tiled_blits', 192 'gem_request_retire', 193 'gem_reset_stats', 194 'gem_ring_sync_copy', 195 'gem_ring_sync_loop', 196 'gem_ringfill', 197 'gem_set_tiling_vs_blt', 198 'gem_set_tiling_vs_gtt', 199 'gem_set_tiling_vs_pwrite', 200 'gem_shrink', 201 'gem_softpin', 202 'gem_spin_batch', 203 'gem_stolen', 204 'gem_storedw_batches_loop', 205 'gem_storedw_loop', 206 'gem_streaming_writes', 207 'gem_sync', 208 'gem_threaded_access_tiled', 209 'gem_tiled_blits', 210 'gem_tiled_fence_blits', 211 'gem_tiled_partial_pwrite_pread', 212 'gem_tiled_pread_basic', 213 'gem_tiled_pread_pwrite', 214 'gem_tiled_swapping', 215 'gem_tiled_wb', 216 'gem_tiled_wc', 217 'gem_tiling_max_stride', 218 'gem_unfence_active_buffers', 219 'gem_unref_active_buffers', 220 'gem_userptr_blits', 221 'gem_vm_create', 222 'gem_wait', 223 'gem_workarounds', 224 'gem_write_read_ring_switch', 225 'i915_fb_tiling', 226 'i915_getparams_basic', 227 'i915_hangman', 228 'i915_module_load', 229 'i915_pm_backlight', 230 'i915_pm_lpsp', 231 'i915_pm_rc6_residency', 232 'i915_pm_rpm', 233 'i915_pm_rps', 234 'i915_pm_sseu', 235 'i915_query', 236 'i915_selftest', 237 'i915_suspend', 238] 239 240test_deps = [ igt_deps ] 241 242if libdrm_nouveau.found() 243 test_progs += [ 244 'prime_nv_api', 245 'prime_nv_pcopy', 246 'prime_nv_test', 247 ] 248 test_deps += libdrm_nouveau 249endif 250 251if chamelium.found() 252 test_progs += [ 253 'kms_chamelium', 254 ] 255 test_deps += chamelium 256endif 257 258test_executables = [] 259test_list = [] 260 261foreach prog : test_progs 262 test_executables += executable(prog, prog + '.c', 263 dependencies : test_deps, 264 install_dir : libexecdir, 265 install_rpath : libexecdir_rpathdir, 266 install : true) 267 test_list += prog 268endforeach 269 270foreach prog : i915_progs 271 test_executables += executable(prog, 272 join_paths('i915', prog + '.c'), 273 dependencies : test_deps, 274 install_dir : libexecdir, 275 install_rpath : libexecdir_rpathdir, 276 install : true) 277 test_list += prog 278endforeach 279 280test_executables += executable('gem_create', 281 join_paths('i915', 'gem_create.c'), 282 dependencies : test_deps + [ libatomic ], 283 install_dir : libexecdir, 284 install_rpath : libexecdir_rpathdir, 285 install : true) 286test_list += 'gem_create' 287 288test_executables += executable('gem_ctx_sseu', 289 join_paths('i915', 'gem_ctx_sseu.c'), 290 dependencies : test_deps + [ lib_igt_perf ], 291 install_dir : libexecdir, 292 install_rpath : libexecdir_rpathdir, 293 install : true) 294test_list += 'gem_ctx_sseu' 295 296test_executables += executable('gem_eio', 297 join_paths('i915', 'gem_eio.c'), 298 dependencies : test_deps + [ realtime ], 299 install_dir : libexecdir, 300 install_rpath : libexecdir_rpathdir, 301 install : true) 302test_list += 'gem_eio' 303 304test_executables += executable('gem_exec_balancer', 'i915/gem_exec_balancer.c', 305 dependencies : test_deps + [ lib_igt_perf ], 306 install_dir : libexecdir, 307 install_rpath : libexecdir_rpathdir, 308 install : true) 309test_list += 'gem_exec_balancer' 310 311test_executables += executable('gem_mocs_settings', 312 join_paths('i915', 'gem_mocs_settings.c'), 313 dependencies : test_deps + [ lib_igt_perf ], 314 install_dir : libexecdir, 315 install_rpath : libexecdir_rpathdir, 316 install : true) 317test_list += 'gem_mocs_settings' 318 319test_executables += executable('perf_pmu', 'perf_pmu.c', 320 dependencies : test_deps + [ lib_igt_perf ], 321 install_dir : libexecdir, 322 install_rpath : libexecdir_rpathdir, 323 install : true) 324test_list += 'perf_pmu' 325 326executable('testdisplay', ['testdisplay.c', 'testdisplay_hotplug.c'], 327 dependencies : test_deps, 328 install_dir : libexecdir, 329 install_rpath : libexecdir_rpathdir, 330 install : true) 331test_list += 'testdisplay' 332 333test_executables += executable('sw_sync', 'sw_sync.c', 334 dependencies : test_deps + [ libatomic ], 335 install_dir : libexecdir, 336 install_rpath : libexecdir_rpathdir, 337 install : true) 338test_list += 'sw_sync' 339 340subdir('amdgpu') 341 342gen_testlist = find_program('generate_testlist.sh') 343test_list_target = custom_target('testlist', 344 output : 'test-list.txt', 345 command : [ gen_testlist, '@OUTPUT@', test_list ], 346 install : true, 347 install_dir : libexecdir) 348 349test_script = find_program('igt_command_line.sh') 350foreach prog : test_list 351 test('testcase check: ' + prog, test_script, args : prog) 352endforeach 353 354executable('gem_stress', 'i915/gem_stress.c', 355 install : true, 356 install_dir : libexecdir, 357 install_rpath : libexecdir_rpathdir, 358 dependencies : igt_deps) 359 360# IMPORTANT: These tests here are all disabled because the result in sometime 361# unrecoverable gpu hangs. Don't put real testcases here. 362hang_progs = [ 363 'gem_bad_batch', 364 'gem_hang', 365 'gem_bad_blit', 366 'gem_bad_address', 367 'gem_non_secure_batch', 368] 369foreach prog : hang_progs 370 executable(prog, join_paths('i915', prog + '.c'), 371 dependencies : igt_deps, 372 install : false) 373endforeach 374 375image_files = [ 376 '1080p-left.png', 377 '1080p-right.png', 378 'pass.png', 379] 380install_data(sources : image_files, install_dir : datadir) 381 382subdir('intel-ci') 383