summaryrefslogtreecommitdiff
path: root/tests/vgem_basic.c
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2017-06-21 14:33:18 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2017-06-22 11:52:55 +0100
commit6fb973cfa7bd85c9cc081857a77c3f0e8e1a9154 (patch)
tree8383784717c01015bb95beef0ca632e80b936300 /tests/vgem_basic.c
parentee4baf0c8d1a9d6990791dc1e468db3619d93cf0 (diff)
igt/vgem_basic: Test DRM_IOCTL_SETVERSION
vgem is a nasty test case for various parts of the core as it is a virtual device with drm_device.dev == NULL; this includes drm_setversion for example. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'tests/vgem_basic.c')
-rw-r--r--tests/vgem_basic.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/vgem_basic.c b/tests/vgem_basic.c
index cce9229f..982da73a 100644
--- a/tests/vgem_basic.c
+++ b/tests/vgem_basic.c
@@ -34,6 +34,34 @@
IGT_TEST_DESCRIPTION("Basic sanity check of Virtual GEM module (vGEM).");
+static int __gem_setversion(int fd, drm_set_version_t *sv)
+{
+ int err;
+
+ err = 0;
+ if (igt_ioctl(fd, DRM_IOCTL_SET_VERSION, sv))
+ err = -errno;
+ errno = 0;
+
+ return err;
+}
+
+static void test_setversion(int fd)
+{
+ drm_set_version_t sv;
+
+ memset(&sv, 0, sizeof(sv));
+ sv.drm_di_major = 1; /* must be equal to DRM_IF_MAJOR */
+ sv.drm_di_minor = 4; /* must be less than DRM_IF_MINOR */
+ sv.drm_dd_major = -1; /* don't care */
+ sv.drm_dd_minor = -1; /* don't care */
+ igt_assert_eq(__gem_setversion(fd, &sv), 0);
+
+ igt_info("vgem DRM interface v%d.%d, device v%d.%d\n",
+ sv.drm_di_major, sv.drm_di_minor,
+ sv.drm_dd_major, sv.drm_dd_minor);
+}
+
static void test_client(int fd)
{
close(drm_open_driver(DRIVER_VGEM));
@@ -381,6 +409,9 @@ igt_main
fd = drm_open_driver(DRIVER_VGEM);
}
+ igt_subtest_f("setversion")
+ test_setversion(fd);
+
igt_subtest_f("second-client")
test_client(fd);