summaryrefslogtreecommitdiff
path: root/tests/gem_reloc_vs_gpu.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2013-09-03 08:57:42 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2013-09-03 08:58:20 +0200
commitbd59d60275e8d7cce2ae4370cf8f8304abdc52fc (patch)
tree88d8fa42fe21bb3782d723ccdef0c483e2d84272 /tests/gem_reloc_vs_gpu.c
parent472c9dac034479fe5c740a33022fbb19e4dbe381 (diff)
tests/gem_reloc_vs_gpu: add interruptible version
Exercise a bug where we've failed to propagate the error code correctly. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'tests/gem_reloc_vs_gpu.c')
-rw-r--r--tests/gem_reloc_vs_gpu.c59
1 files changed, 41 insertions, 18 deletions
diff --git a/tests/gem_reloc_vs_gpu.c b/tests/gem_reloc_vs_gpu.c
index 6a7b830cf..7010256cb 100644
--- a/tests/gem_reloc_vs_gpu.c
+++ b/tests/gem_reloc_vs_gpu.c
@@ -139,25 +139,12 @@ static void emit_dummy_load(int pitch)
intel_batchbuffer_flush(batch);
}
-#define MAX_BLT_SIZE 128
-int main(int argc, char **argv)
+static void do_test(int fd)
{
uint32_t tiling_mode = I915_TILING_X;
unsigned long pitch, act_size;
- int fd, i, ring;
uint32_t test;
-
- igt_skip_on_simulation();
-
- memset(blob, 'A', sizeof(blob));
-
- fd = drm_open_any();
-
- bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
- /* disable reuse, otherwise the test fails */
- //drm_intel_bufmgr_gem_enable_reuse(bufmgr);
- devid = intel_get_drm_devid(fd);
- batch = intel_batchbuffer_alloc(bufmgr, devid);
+ int i, ring;
act_size = 2048;
dummy_bo = drm_intel_bo_alloc_tiled(bufmgr, "tiled dummy_bo", act_size, act_size,
@@ -198,10 +185,46 @@ int main(int argc, char **argv)
drm_intel_gem_bo_map_gtt(dummy_bo);
drm_intel_gem_bo_unmap_gtt(dummy_bo);
- intel_batchbuffer_free(batch);
- drm_intel_bufmgr_destroy(bufmgr);
+ drm_intel_bo_unreference(special_bo);
+ drm_intel_bo_unreference(dummy_bo);
+
+
+}
+
+int fd;
+
+#define MAX_BLT_SIZE 128
+int main(int argc, char **argv)
+{
+ igt_subtest_init(argc, argv);
+ igt_skip_on_simulation();
+
+ memset(blob, 'A', sizeof(blob));
+
+ igt_fixture {
+ fd = drm_open_any();
- close(fd);
+ bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
+ /* disable reuse, otherwise the test fails */
+ //drm_intel_bufmgr_gem_enable_reuse(bufmgr);
+ devid = intel_get_drm_devid(fd);
+ batch = intel_batchbuffer_alloc(bufmgr, devid);
+ }
+
+ igt_subtest("normal")
+ do_test(fd);
+
+ igt_fork_signal_helper();
+ igt_subtest("interruptible")
+ do_test(fd);
+ igt_stop_signal_helper();
+
+ igt_fixture {
+ intel_batchbuffer_free(batch);
+ drm_intel_bufmgr_destroy(bufmgr);
+
+ close(fd);
+ }
return 0;
}