diff --git a/tests/Makefile.am b/tests/Makefile.am
index 67cb034..f997e26 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -23,9 +23,9 @@
 	lock \
 	setversion \
 	updatedraw \
-	mmfs_basic \
-	mmfs_readwrite \
-	mmfs_mmap
+	mm_basic \
+	mm_readwrite \
+	mm_mmap
 
 EXTRA_PROGRAMS = $(TESTS)
 CLEANFILES = $(EXTRA_PROGRAMS) $(EXTRA_LTLIBRARIES)
diff --git a/tests/mmfs_basic.c b/tests/mm_basic.c
similarity index 78%
rename from tests/mmfs_basic.c
rename to tests/mm_basic.c
index c6975b0..94240ee 100644
--- a/tests/mmfs_basic.c
+++ b/tests/mm_basic.c
@@ -33,30 +33,18 @@
 #include <inttypes.h>
 #include <errno.h>
 #include <sys/stat.h>
-#include "mmfs.h"
+#include "drm.h"
 
 static void
 test_bad_unref(int fd)
 {
-	struct mmfs_unreference_args unref;
+	struct drm_mm_unreference_args unref;
 	int ret;
 
 	printf("Testing error return on bad unreference ioctl.\n");
 
 	unref.handle = 0x10101010;
-	ret = ioctl(fd, MMFS_IOCTL_UNREFERENCE, &unref);
-
-	assert(ret == -1 && errno == EINVAL);
-}
-
-static void
-test_bad_ioctl(int fd)
-{
-	int ret;
-
-	printf("Testing error return on bad ioctl.\n");
-
-	ret = ioctl(fd, _IO(MMFS_IOCTL_BASE, 0xf0), 0);
+	ret = ioctl(fd, DRM_IOCTL_MM_UNREFERENCE, &unref);
 
 	assert(ret == -1 && errno == EINVAL);
 }
@@ -64,32 +52,32 @@
 static void
 test_alloc_unref(int fd)
 {
-	struct mmfs_alloc_args alloc;
-	struct mmfs_unreference_args unref;
+	struct drm_mm_alloc_args alloc;
+	struct drm_mm_unreference_args unref;
 	int ret;
 
 	printf("Testing allocating and unreferencing an object.\n");
 
 	memset(&alloc, 0, sizeof(alloc));
 	alloc.size = 16 * 1024;
-	ret = ioctl(fd, MMFS_IOCTL_ALLOC, &alloc);
+	ret = ioctl(fd, DRM_IOCTL_MM_ALLOC, &alloc);
 	assert(ret == 0);
 
 	unref.handle = alloc.handle;
-	ret = ioctl(fd, MMFS_IOCTL_UNREFERENCE, &unref);
+	ret = ioctl(fd, DRM_IOCTL_MM_UNREFERENCE, &unref);
 }
 
 static void
 test_alloc_close(int fd)
 {
-	struct mmfs_alloc_args alloc;
+	struct drm_mm_alloc_args alloc;
 	int ret;
 
 	printf("Testing closing with an object allocated.\n");
 
 	memset(&alloc, 0, sizeof(alloc));
 	alloc.size = 16 * 1024;
-	ret = ioctl(fd, MMFS_IOCTL_ALLOC, &alloc);
+	ret = ioctl(fd, DRM_IOCTL_MM_ALLOC, &alloc);
 	assert(ret == 0);
 
 	close(fd);
@@ -99,9 +87,8 @@
 {
 	int fd;
 
-	fd = open_mmfs_device();
+	fd = drm_open_any();
 
-	test_bad_ioctl(fd);
 	test_bad_unref(fd);
 	test_alloc_unref(fd);
 	test_alloc_close(fd);
diff --git a/tests/mmfs_mmap.c b/tests/mm_mmap.c
similarity index 80%
rename from tests/mmfs_mmap.c
rename to tests/mm_mmap.c
index 3cb6a85..e5c4538 100644
--- a/tests/mmfs_mmap.c
+++ b/tests/mm_mmap.c
@@ -33,13 +33,13 @@
 #include <inttypes.h>
 #include <errno.h>
 #include <sys/stat.h>
-#include "mmfs.h"
+#include "drm.h"
 
-#define MMFS_BUFFER_SIZE 16384
+#define OBJECT_SIZE 16384
 
 int do_read(int fd, int handle, void *buf, int offset, int size)
 {
-	struct mmfs_pread_args read;
+	struct drm_mm_pread_args read;
 
 	/* Ensure that we don't have any convenient data in buf in case
 	 * we fail.
@@ -52,12 +52,12 @@
 	read.size = size;
 	read.offset = offset;
 
-	return ioctl(fd, MMFS_IOCTL_PREAD, &read);
+	return ioctl(fd, DRM_IOCTL_MM_PREAD, &read);
 }
 
 int do_write(int fd, int handle, void *buf, int offset, int size)
 {
-	struct mmfs_pwrite_args write;
+	struct drm_mm_pwrite_args write;
 
 	memset(&write, 0, sizeof(write));
 	write.handle = handle;
@@ -65,41 +65,41 @@
 	write.size = size;
 	write.offset = offset;
 
-	return ioctl(fd, MMFS_IOCTL_PWRITE, &write);
+	return ioctl(fd, DRM_IOCTL_MM_PWRITE, &write);
 }
 
 int main(int argc, char **argv)
 {
 	int fd;
-	struct mmfs_alloc_args alloc;
-	struct mmfs_mmap_args mmap;
-	struct mmfs_unreference_args unref;
-	uint8_t expected[MMFS_BUFFER_SIZE];
-	uint8_t buf[MMFS_BUFFER_SIZE];
+	struct drm_mm_alloc_args alloc;
+	struct drm_mm_mmap_args mmap;
+	struct drm_mm_unreference_args unref;
+	uint8_t expected[OBJECT_SIZE];
+	uint8_t buf[OBJECT_SIZE];
 	int ret;
 	int handle;
 
-	fd = open_mmfs_device();
+	fd = drm_open_any();
 
 	memset(&mmap, 0, sizeof(mmap));
 	mmap.handle = 0x10101010;
 	mmap.offset = 0;
 	mmap.size = 4096;
 	printf("Testing mmaping of bad object.\n");
-	ret = ioctl(fd, MMFS_IOCTL_MMAP, &mmap);
+	ret = ioctl(fd, DRM_IOCTL_MM_MMAP, &mmap);
 	assert(ret == -1 && errno == EINVAL);
 
 	memset(&alloc, 0, sizeof(alloc));
-	alloc.size = MMFS_BUFFER_SIZE;
-	ret = ioctl(fd, MMFS_IOCTL_ALLOC, &alloc);
+	alloc.size = OBJECT_SIZE;
+	ret = ioctl(fd, DRM_IOCTL_MM_ALLOC, &alloc);
 	assert(ret == 0);
 	handle = alloc.handle;
 
 	printf("Testing mmaping of newly allocated object.\n");
 	mmap.handle = handle;
 	mmap.offset = 0;
-	mmap.size = MMFS_BUFFER_SIZE;
-	ret = ioctl(fd, MMFS_IOCTL_MMAP, &mmap);
+	mmap.size = OBJECT_SIZE;
+	ret = ioctl(fd, DRM_IOCTL_MM_MMAP, &mmap);
 	assert(ret == 0);
 
 	printf("Testing contents of newly allocated object.\n");
@@ -110,18 +110,18 @@
 	memset(buf, 0, sizeof(buf));
 	memset(buf + 1024, 0x01, 1024);
 	memset(expected + 1024, 0x01, 1024);
-	ret = do_write(fd, handle, buf, 0, MMFS_BUFFER_SIZE);
+	ret = do_write(fd, handle, buf, 0, OBJECT_SIZE);
 	assert(ret == 0);
 	assert(memcmp(buf, mmap.addr, sizeof(buf)) == 0);
 
 	printf("Testing that mapping stays after unreference\n");
 	unref.handle = handle;
-	ret = ioctl(fd, MMFS_IOCTL_UNREFERENCE, &unref);
+	ret = ioctl(fd, DRM_IOCTL_MM_UNREFERENCE, &unref);
 	assert(ret == 0);
 	assert(memcmp(buf, mmap.addr, sizeof(buf)) == 0);
 
 	printf("Testing unmapping\n");
-	munmap(mmap.addr, MMFS_BUFFER_SIZE);
+	munmap(mmap.addr, OBJECT_SIZE);
 
 	close(fd);
 
diff --git a/tests/mmfs_readwrite.c b/tests/mm_readwrite.c
similarity index 81%
rename from tests/mmfs_readwrite.c
rename to tests/mm_readwrite.c
index 09d1967..a778231 100644
--- a/tests/mmfs_readwrite.c
+++ b/tests/mm_readwrite.c
@@ -33,13 +33,13 @@
 #include <inttypes.h>
 #include <errno.h>
 #include <sys/stat.h>
-#include "mmfs.h"
+#include "drm.h"
 
-#define MMFS_BUFFER_SIZE 16384
+#define OBJECT_SIZE 16384
 
 int do_read(int fd, int handle, void *buf, int offset, int size)
 {
-	struct mmfs_pread_args read;
+	struct drm_mm_pread_args read;
 
 	/* Ensure that we don't have any convenient data in buf in case
 	 * we fail.
@@ -52,12 +52,12 @@
 	read.size = size;
 	read.offset = offset;
 
-	return ioctl(fd, MMFS_IOCTL_PREAD, &read);
+	return ioctl(fd, DRM_IOCTL_MM_PREAD, &read);
 }
 
 int do_write(int fd, int handle, void *buf, int offset, int size)
 {
-	struct mmfs_pwrite_args write;
+	struct drm_mm_pwrite_args write;
 
 	memset(&write, 0, sizeof(write));
 	write.handle = handle;
@@ -65,43 +65,43 @@
 	write.size = size;
 	write.offset = offset;
 
-	return ioctl(fd, MMFS_IOCTL_PWRITE, &write);
+	return ioctl(fd, DRM_IOCTL_MM_PWRITE, &write);
 }
 
 int main(int argc, char **argv)
 {
 	int fd;
-	struct mmfs_alloc_args alloc;
-	uint8_t expected[MMFS_BUFFER_SIZE];
-	uint8_t buf[MMFS_BUFFER_SIZE];
+	struct drm_mm_alloc_args alloc;
+	uint8_t expected[OBJECT_SIZE];
+	uint8_t buf[OBJECT_SIZE];
 	int ret;
 	int handle;
 
-	fd = open_mmfs_device();
+	fd = drm_open_any();
 
 	memset(&alloc, 0, sizeof(alloc));
-	alloc.size = MMFS_BUFFER_SIZE;
-	ret = ioctl(fd, MMFS_IOCTL_ALLOC, &alloc);
+	alloc.size = OBJECT_SIZE;
+	ret = ioctl(fd, DRM_IOCTL_MM_ALLOC, &alloc);
 	assert(ret == 0);
 	handle = alloc.handle;
 
 	printf("Testing contents of newly allocated object.\n");
-	ret = do_read(fd, handle, buf, 0, MMFS_BUFFER_SIZE);
+	ret = do_read(fd, handle, buf, 0, OBJECT_SIZE);
 	assert(ret == 0);
 	memset(&expected, 0, sizeof(expected));
 	assert(memcmp(expected, buf, sizeof(expected)) == 0);
 
 	printf("Testing read beyond end of buffer.\n");
-	ret = do_read(fd, handle, buf, MMFS_BUFFER_SIZE / 2, MMFS_BUFFER_SIZE);
+	ret = do_read(fd, handle, buf, OBJECT_SIZE / 2, OBJECT_SIZE);
 	assert(ret == -1 && errno == EINVAL);
 
 	printf("Testing full write of buffer\n");
 	memset(buf, 0, sizeof(buf));
 	memset(buf + 1024, 0x01, 1024);
 	memset(expected + 1024, 0x01, 1024);
-	ret = do_write(fd, handle, buf, 0, MMFS_BUFFER_SIZE);
+	ret = do_write(fd, handle, buf, 0, OBJECT_SIZE);
 	assert(ret == 0);
-	ret = do_read(fd, handle, buf, 0, MMFS_BUFFER_SIZE);
+	ret = do_read(fd, handle, buf, 0, OBJECT_SIZE);
 	assert(ret == 0);
 	assert(memcmp(buf, expected, sizeof(buf)) == 0);
 
@@ -110,7 +110,7 @@
 	memset(expected + 4096, 0x02, 1024);
 	ret = do_write(fd, handle, buf + 4096, 4096, 1024);
 	assert(ret == 0);
-	ret = do_read(fd, handle, buf, 0, MMFS_BUFFER_SIZE);
+	ret = do_read(fd, handle, buf, 0, OBJECT_SIZE);
 	assert(ret == 0);
 	assert(memcmp(buf, expected, sizeof(buf)) == 0);
 
