This library contains the basic support for writing tests, with the most important part being the helper function to open drm device nodes.
But there's also a bit of other assorted stuff here.
#define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr))
Macro to compute the size of the static array
#define ALIGN(v, a) (((v) + (a)-1) & ~((a)-1))
Macro to align a value
to a specified unit
int drm_get_card (
Get an i915 drm card index number for use in /dev or /sys. The minor index of the legacy node is returned, not of the control or render node.
int drm_open_driver (
Open a drm legacy device node. This function always returns a valid file descriptor.
int drm_open_driver_master (
Open a drm legacy device node and ensure that it is drm master.
int drm_open_driver_render (
Open a drm render device node.
void gem_quiescent_gpu (
Ensure the gpu is idle by launching a nop execbuf and stalling for it. This is automatically run when opening a drm device node and is also installed as an exit handler to have the best assurance that the test is run in a pristine and controlled environment.
This function simply allows tests to make additional calls in-between, if so desired.
#define do_or_die(x) igt_assert((x) == 0)
Simple macro to execute x and check that it's return value is 0. Presumes
that in any failure case the return value is non-zero and a precise error is
logged into errno. Uses
#define do_ioctl(fd, ioc, ioc_data)
This macro wraps
drmIoctl() and uses igt_assert to check that it has been
#define do_ioctl_err(fd, ioc, ioc_data, err)
This macro wraps
drmIoctl() and uses igt_assert to check that it fails,
returning a particular value in errno.