# Test Programs

## Common Features

Features available in all test programs

### Command Line Options

All tests support the following command line options:

`--list-subtests`

  list the available subtests and exit

`--run-subtest subtest`

  run the specified subtest

`--debug[=log-domain]`

  print extra debugging information when running tests and optionaly only show the messages from the specified log domain (use "application" to specifiy the default application domain)

`--help-description`

  print a short description of the test and exit

`--help`

  print help and exit

### Exit Status

The following exit status codes are defined:

Name | Value | Description
--- | --- | ---
#IGT_EXIT_SUCCESS | 0 | The test was succesful
#IGT_EXIT_SKIP | 77 | The test was skipped
#IGT_EXIT_TIMEOUT | 78 | The test took longer than expected and was stopped
#IGT_EXIT_INVALID | 79 | An invalid option or subtest was specified

Any other exit status indicates a test failure.

## Core Tests

Tests for core drm ioctls and behaviour.

## DRM Tests

Tests for libdrm behaviour.

## DRV Tests

Tests for overall driver behaviour.

## GEM Tests

Tests for core drm ioctls and behaviour.

## KMS Tests

Mode setting tests

## PM Tests

Tests for power management features

## Prime Tests

Buffer sharing tests

## Gen 3 Tests

Gen 3 specific tests

## Sysfs Tests

Sysfs tests

## Debugfs Tests

Debugfs tests

## Gloassary

The following terms are commonly used in test names to describe various features of the test and can be used to filter and select particular tests.

invalid

  Negative tests to validate kernel interface input validation.

hang

  Tests that provoke gpu hangs.

swap

  Tests that force their full working sets through swap.

thrash

  Tests that tend to have really slow forward progress due to gtt/memory/.. thrashing.

crc

  Tests that use the display CRC infrastructure to check the results.

tiled

  Tests that exercise behaviour on tiled buffers.

tiling

  Tests that exercise behaviour on tiled buffers.

rte

  Runtime enviroment checks.

ctx

  Tests that exercise the hardware context support.

render

  Tests which apply to the render ring.

blt

  Tests which apply to the blt ring.

bsd

  Tests which apply to the bsd ring.

vebox

  Tests which apply to the vebox ring.

exec

  Tests that exercise the execbuf code in various ways.

rpm

  Runtime power management tests.