tests: Fix seg fault when gem_mmap is run without specifying a subtest
authorMike Mason <michael.w.mason@intel.com>
Mon, 18 Aug 2014 17:43:49 +0000 (10:43 -0700)
committerThomas Wood <thomas.wood@intel.com>
Tue, 19 Aug 2014 10:32:06 +0000 (11:32 +0100)
gem_mmap seg faults when all tests are run together. This occurs because
the new-object subtest closes the gem object, but short-mmap assumes
it still exists. Thus gem_mmap__cpu() returns nil for addr and memset()
seg faults. This patch makes new-object and short-mmap create and
close their own gem objects.

Signed-off-by: Mike Mason <michael.w.mason@intel.com>
Signed-off-by: Thomas Wood <thomas.wood@intel.com>
tests/gem_mmap.c

index 334bd76..33ffe45 100644 (file)
@@ -62,10 +62,8 @@ igt_main
                igt_assert(ret == -1 && errno == ENOENT);
        }
 
-       igt_fixture
-               handle = gem_create(fd, OBJECT_SIZE);
-
        igt_subtest("new-object") {
+               handle = gem_create(fd, OBJECT_SIZE);
                arg.handle = handle;
                arg.offset = 0;
                arg.size = OBJECT_SIZE;
@@ -94,9 +92,11 @@ igt_main
 
        igt_subtest("short-mmap") {
                igt_assert(OBJECT_SIZE > 4096);
+               handle = gem_create(fd, OBJECT_SIZE);
                addr = gem_mmap__cpu(fd, handle, 4096, PROT_WRITE);
                memset(addr, 0, 4096);
                munmap(addr, 4096);
+               gem_close(fd, handle);
        }
 
        igt_fixture