From 6fb973cfa7bd85c9cc081857a77c3f0e8e1a9154 Mon Sep 17 00:00:00 2001 From: Chris Wilson Date: Wed, 21 Jun 2017 14:33:18 +0100 Subject: 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 --- tests/vgem_basic.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'tests/vgem_basic.c') 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); -- cgit v1.2.3