diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2017-06-21 14:33:18 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2017-06-22 11:52:55 +0100 |
commit | 6fb973cfa7bd85c9cc081857a77c3f0e8e1a9154 (patch) | |
tree | 8383784717c01015bb95beef0ca632e80b936300 /tests/vgem_basic.c | |
parent | ee4baf0c8d1a9d6990791dc1e468db3619d93cf0 (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.c | 31 |
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); |