summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/igt_debugfs.h1
-rw-r--r--tests/.gitignore1
-rw-r--r--tests/Makefile.sources1
-rw-r--r--tests/gem_alive.c35
4 files changed, 38 insertions, 0 deletions
diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h
index bcd7f762..0b55477c 100644
--- a/lib/igt_debugfs.h
+++ b/lib/igt_debugfs.h
@@ -27,6 +27,7 @@
#include <stdbool.h>
#include <stdint.h>
+#include <stdio.h>
enum pipe;
diff --git a/tests/.gitignore b/tests/.gitignore
index fedddbfd..ea1f0f9e 100644
--- a/tests/.gitignore
+++ b/tests/.gitignore
@@ -9,6 +9,7 @@ drm_vma_limiter_cached
drm_vma_limiter_cpu
drm_vma_limiter_gtt
drv_suspend
+gem_alive
gem_bad_address
gem_bad_batch
gem_bad_blit
diff --git a/tests/Makefile.sources b/tests/Makefile.sources
index a8a091de..5d5dc467 100644
--- a/tests/Makefile.sources
+++ b/tests/Makefile.sources
@@ -1,4 +1,5 @@
noinst_PROGRAMS = \
+ gem_alive \
gem_stress \
ddi_compute_wrpll \
$(TESTS_progs) \
diff --git a/tests/gem_alive.c b/tests/gem_alive.c
new file mode 100644
index 00000000..776db07a
--- /dev/null
+++ b/tests/gem_alive.c
@@ -0,0 +1,35 @@
+#include <sys/ioctl.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <string.h>
+#include <signal.h>
+#include <i915_drm.h>
+
+#include "drmtest.h"
+
+int main(void)
+{
+ struct drm_i915_gem_sw_finish arg = { 0 };
+ int fd;
+
+ signal(SIGALRM, SIG_IGN);
+
+ fd = drm_open_any();
+ if (fd < 0)
+ return 77;
+
+ alarm(1);
+ if (ioctl(fd, DRM_IOCTL_I915_GEM_SW_FINISH, &arg) == 0)
+ return 77;
+
+ switch (errno) {
+ case ENOENT:
+ return 0;
+ case EIO:
+ return 1;
+ case EINTR:
+ return 2;
+ default:
+ return 3;
+ }
+}