if (cpu_ptr[j] != val0) {
printf("mismatch at %i, got: %i, expected: %i\n",
j, cpu_ptr[j], val0);
- exit(1);
+ igt_fail(1);
}
}
drm_intel_bo_unmap(scratch_bo);
if (gtt_ptr[j] != val0) {
printf("mismatch at %i, partial=[%d+%d] got: %i, expected: %i\n",
j, start, len, gtt_ptr[j], val0);
- exit(1);
+ igt_fail(1);
}
}
for (; j < start + len; j++) {
if (gtt_ptr[j] != val1) {
printf("mismatch at %i, partial=[%d+%d] got: %i, expected: %i\n",
j, start, len, gtt_ptr[j], val1);
- exit(1);
+ igt_fail(1);
}
}
for (; j < BO_SIZE; j++) {
if (gtt_ptr[j] != val0) {
printf("mismatch at %i, partial=[%d+%d] got: %i, expected: %i\n",
j, start, len, gtt_ptr[j], val0);
- exit(1);
+ igt_fail(1);
}
}
drm_intel_gem_bo_unmap_gtt(staging_bo);
if (cpu_ptr[j] != val0) {
printf("mismatch in read at %i, got: %i, expected: %i\n",
j, cpu_ptr[j], val0);
- exit(1);
+ igt_fail(1);
}
}
drm_intel_bo_unmap(scratch_bo);
if (gtt_ptr[j] != val1) {
printf("mismatch at %i, partial=[%d+%d] got: %i, expected: %i\n",
j, start, len, gtt_ptr[j], val1);
- exit(1);
+ igt_fail(1);
}
}
for (; j < start + len; j++) {
if (gtt_ptr[j] != val2) {
printf("mismatch at %i, partial=[%d+%d] got: %i, expected: %i\n",
j, start, len, gtt_ptr[j], val2);
- exit(1);
+ igt_fail(1);
}
}
for (; j < BO_SIZE; j++) {
if (gtt_ptr[j] != val1) {
printf("mismatch at %i, partial=[%d+%d] got: %i, expected: %i\n",
j, start, len, gtt_ptr[j], val1);
- exit(1);
+ igt_fail(1);
}
}
drm_intel_gem_bo_unmap_gtt(staging_bo);
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bufmgr_gem_enable_reuse(bufmgr);
}
if (exec(fd, handle_new, split, >t_offset_new, 0))
- exit(1);
+ igt_fail(1);
if (split > 0) {
/* Check that we've managed to collide in the tlb. */
ret = pthread_join(threads[i], &retval);
thread_status = *(int *)retval;
if (!ret && thread_status)
- exit(thread_status);
+ igt_fail(thread_status);
}
free(returns);
if (argc != 1) {
fprintf(stderr, "usage: %s\n", argv[0]);
- exit(-1);
+ igt_fail(-1);
}
fd = drm_open_any();
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bufmgr_gem_enable_reuse(bufmgr);
batch = intel_batchbuffer_alloc(bufmgr, devid);
if (!batch) {
fprintf(stderr, "failed to create batch buffer\n");
- exit(-1);
+ igt_fail(-1);
}
target_buffer = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
if (!target_buffer) {
fprintf(stderr, "failed to alloc target buffer\n");
- exit(-1);
+ igt_fail(-1);
}
blt_bo = drm_intel_bo_alloc(bufmgr, "target bo", 4*4096*4096, 4096);
if (!blt_bo) {
fprintf(stderr, "failed to alloc blt buffer\n");
- exit(-1);
+ igt_fail(-1);
}
dummy_reloc_loop();
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bufmgr_gem_enable_reuse(bufmgr);
batch = intel_batchbuffer_alloc(bufmgr, devid);
if (!batch) {
fprintf(stderr, "failed to create batch buffer\n");
- exit(-1);
+ igt_fail(-1);
}
target_buffer = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
if (!target_buffer) {
fprintf(stderr, "failed to alloc target buffer\n");
- exit(-1);
+ igt_fail(-1);
}
igt_subtest("render") {
if (ret == 0 || errno != EINVAL) {
fprintf(stderr, "multiple write domains not rejected\n");
- exit(1);
+ igt_fail(1);
}
}
ret = run_batch();
if (ret != -EINVAL) {
fprintf(stderr, "(cpu, 0) reloc not rejected\n");
- exit(1);
+ igt_fail(1);
}
BEGIN_BATCH(2);
ret = run_batch();
if (ret != -EINVAL) {
fprintf(stderr, "(cpu, cpu) reloc not rejected\n");
- exit(1);
+ igt_fail(1);
}
}
ret = run_batch();
if (ret != -EINVAL) {
fprintf(stderr, "(gtt, 0) reloc not rejected\n");
- exit(1);
+ igt_fail(1);
}
BEGIN_BATCH(2);
ret = run_batch();
if (ret != -EINVAL) {
fprintf(stderr, "(gtt, gtt) reloc not rejected\n");
- exit(1);
+ igt_fail(1);
}
}
ret = run_batch();
if (ret != -EINVAL) {
fprintf(stderr, "conflicting write domains not rejected\n");
- exit(1);
+ igt_fail(1);
}
}
#endif
ret = run_batch();
if (ret != -EINVAL) {
fprintf(stderr, "invalid gpu read domains not rejected\n");
- exit(1);
+ igt_fail(1);
}
BEGIN_BATCH(2);
ret = run_batch();
if (ret != -EINVAL) {
fprintf(stderr, "invalid gpu domain not rejected\n");
- exit(1);
+ igt_fail(1);
}
}
for (reloc_ofs = 4096; reloc_ofs < batch_size; reloc_ofs += 4096)
if (exec(fd, handle, reloc_ofs))
- exit(1);
+ igt_fail(1);
}
gem_close(fd, handle);
gettimeofday(&start, NULL);
if (gem_exec(fd, &execbuf, count))
- exit(1);
+ igt_fail(1);
gem_sync(fd, handle);
gettimeofday(&end, NULL);
printf("Time to blt %d bytes x %6d: %7.3fµs, %s\n",
gettimeofday(&start, NULL);
if (exec(fd, handle, count, ring_id))
- exit(1);
+ igt_fail(1);
gettimeofday(&end, NULL);
printf("Time to exec x %d: %7.3fµs (ring=%s)\n",
count, elapsed(&start, &end, count), ring_name);
if (v != i) {
printf("tiling %s: write failed at %d (%x)\n",
tile_str[t->tiling], i, v);
- _exit(-1);
+ igt_fail(-1);
}
}
if (v != i) {
printf("tiling %s: verify failed at %d (%x)\n",
tile_str[t->tiling], i, v);
- exit(-2);
+ igt_fail(-2);
}
}
}
if (argc != 2) {
fprintf(stderr, "usage: %s <disabled pipe number>\n",
argv[0]);
- exit(-1);
+ igt_fail(-1);
}
bad_pipe = atoi(argv[1]);
if (ret) {
fprintf(stderr, "object creation failed: %s\n",
strerror(errno));
- exit(ret);
+ igt_fail(ret);
}
pin.handle = create.handle;
if (ret) {
fprintf(stderr, "pin failed: %s\n",
strerror(errno));
- exit(ret);
+ igt_fail(ret);
}
gem_write(fd, create.handle, 0, data, obj_size);
if (argc != 1) {
fprintf(stderr, "usage: %s\n", argv[0]);
- exit(-1);
+ igt_fail(-1);
}
fd = drm_open_any();
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bufmgr_gem_enable_reuse(bufmgr);
batch = intel_batchbuffer_alloc(bufmgr, devid);
if (!batch) {
fprintf(stderr, "failed to create batch buffer\n");
- exit(-1);
+ igt_fail(-1);
}
mi_lri_loop();
if (tmp[j] != val) {
printf("mismatch at %i, got: %i, expected: %i\n",
j, tmp[j], val);
- exit(1);
+ igt_fail(1);
}
}
if (gtt_ptr[j] != val) {
printf("mismatch at %i, got: %i, expected: %i\n",
j, tmp[j], val);
- exit(1);
+ igt_fail(1);
}
}
for (; j < start + len; j++) {
if (gtt_ptr[j] != tmp[0]) {
printf("mismatch at %i, got: %i, expected: %i\n",
j, tmp[j], i);
- exit(1);
+ igt_fail(1);
}
}
for (; j < BO_SIZE; j++) {
if (gtt_ptr[j] != val) {
printf("mismatch at %i, got: %i, expected: %i\n",
j, tmp[j], val);
- exit(1);
+ igt_fail(1);
}
}
drm_intel_gem_bo_unmap_gtt(staging_bo);
if (tmp[j] != val) {
printf("mismatch in read at %i, got: %i, expected: %i\n",
j, tmp[j], val);
- exit(1);
+ igt_fail(1);
}
}
if (gtt_ptr[j] != val) {
printf("mismatch at %i, got: %i, expected: %i\n",
j, tmp[j], val);
- exit(1);
+ igt_fail(1);
}
}
for (; j < start + len; j++) {
if (gtt_ptr[j] != tmp[0]) {
printf("mismatch at %i, got: %i, expected: %i\n",
j, tmp[j], tmp[0]);
- exit(1);
+ igt_fail(1);
}
}
for (; j < BO_SIZE; j++) {
if (gtt_ptr[j] != val) {
printf("mismatch at %i, got: %i, expected: %i\n",
j, tmp[j], val);
- exit(1);
+ igt_fail(1);
}
}
drm_intel_gem_bo_unmap_gtt(staging_bo);
target_bo = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
if (!target_bo) {
fprintf(stderr, "failed to alloc target buffer\n");
- exit(-1);
+ igt_fail(-1);
}
/* gem_storedw_batches_loop.c is a bit overenthusiastic with
fprintf(stderr,
"value mismatch: cur 0x%08x, stored 0x%08x\n",
buf[0], val);
- exit(-1);
+ igt_fail(-1);
}
buf[0] = 0; /* let batch write it again */
drm_intel_bo_unmap(target_bo);
if (argc != 1) {
fprintf(stderr, "usage: %s\n", argv[0]);
- exit(-1);
+ igt_fail(-1);
}
fd = drm_open_any();
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
if (IS_GEN2(devid) || IS_GEN3(devid)) {
batch = intel_batchbuffer_alloc(bufmgr, devid);
if (!batch) {
fprintf(stderr, "failed to create batch buffer\n");
- exit(-1);
+ igt_fail(-1);
}
store_pipe_control_loop();
fd = drm_open_any();
reg_read.offset = 0x2358;
- if (drmIoctl(fd, REG_READ_IOCTL, ®_read))
- exit(errno == EINVAL ? 77 : EXIT_FAILURE);
+ if (drmIoctl(fd, REG_READ_IOCTL, ®_read)) {
+ if (errno == EINVAL)
+ igt_skip();
+ igt_fail(1);
+ }
reg_read.val = timer_query(fd);
sleep(1);
drm_intel_bo_get_subdata(pc_target_bo[i], 0, 4, &test);
if (test != 0xdeadbeef) {
fprintf(stderr, "mismatch in buffer %i: 0x%08x instead of 0xdeadbeef\n", i, test);
- exit(1);
+ igt_fail(1);
}
drm_intel_bo_unreference(pc_target_bo[i]);
}
if (argc != 1) {
fprintf(stderr, "usage: %s\n", argv[0]);
- exit(-1);
+ igt_fail(-1);
}
fd = drm_open_any();
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bufmgr_gem_enable_reuse(bufmgr);
batch = intel_batchbuffer_alloc(bufmgr, devid);
if (!batch) {
fprintf(stderr, "failed to create batch buffer\n");
- exit(-1);
+ igt_fail(-1);
}
target_buffer = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
if (!target_buffer) {
fprintf(stderr, "failed to alloc target buffer\n");
- exit(-1);
+ igt_fail(-1);
}
store_dword_loop(fd);
printf(" -p --prewrap=n set seqno to WRAP - n for each testrun\n");
printf(" -r --norandom dont randomize prewrap space\n");
printf(" -i --buffers number of buffers to copy\n");
- exit(-1);
+ igt_fail(-1);
}
static void parse_options(int argc, char **argv)
cmd_bo = drm_intel_bo_alloc(bufmgr, "cmd bo", 4096, 4096);
if (!cmd_bo) {
fprintf(stderr, "failed to alloc cmd bo\n");
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bo_map(cmd_bo, 1);
ret = drm_intel_bo_references(cmd_bo, target_bo);
if (ret) {
fprintf(stderr, "failed to link cmd & target bos\n");
- exit(-1);
+ igt_fail(-1);
}
ret = drm_intel_bo_emit_reloc(cmd_bo, 8, target_bo, 0,
I915_GEM_DOMAIN_INSTRUCTION);
if (ret) {
fprintf(stderr, "failed to emit reloc\n");
- exit(-1);
+ igt_fail(-1);
}
buf[4] = MI_BATCH_BUFFER_END;
ret = drm_intel_bo_references(cmd_bo, target_bo);
if (ret != 1) {
fprintf(stderr, "bad bo reference count: %d\n", ret);
- exit(-1);
+ igt_fail(-1);
}
ret = drm_intel_bo_exec(cmd_bo, 6 * 4, NULL, 0, 0);
if (ret) {
fprintf(stderr, "bo exec failed: %d\n", ret);
- exit(-1);
+ igt_fail(-1);
}
if (i % divider != 0)
fprintf(stderr,
"value mismatch: cur 0x%08x, stored 0x%08x\n",
buf[0], 0x42000000 | val);
- exit(-1);
+ igt_fail(-1);
}
buf[0] = 0; /* let batch write it again */
drm_intel_bo_unmap(target_bo);
if (argc != 1) {
fprintf(stderr, "usage: %s\n", argv[0]);
- exit(-1);
+ igt_fail(-1);
}
fd = drm_open_any();
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
// drm_intel_bufmgr_gem_enable_reuse(bufmgr);
target_bo = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
if (!target_bo) {
fprintf(stderr, "failed to alloc target buffer\n");
- exit(-1);
+ igt_fail(-1);
}
store_dword_loop(1);
fprintf(stderr,
"value mismatch: cur 0x%08x, stored 0x%08x\n",
buf[0], val);
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bo_unmap(target_buffer);
if (argc != 1) {
fprintf(stderr, "usage: %s\n", argv[0]);
- exit(-1);
+ igt_fail(-1);
}
fd = drm_open_any();
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bufmgr_gem_enable_reuse(bufmgr);
batch = intel_batchbuffer_alloc(bufmgr, devid);
if (!batch) {
fprintf(stderr, "failed to create batch buffer\n");
- exit(-1);
+ igt_fail(-1);
}
target_buffer = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
if (!target_buffer) {
fprintf(stderr, "failed to alloc target buffer\n");
- exit(-1);
+ igt_fail(-1);
}
store_dword_loop(1);
fprintf(stderr,
"value mismatch: cur 0x%08x, stored 0x%08x\n",
buf[0], val);
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bo_unmap(target_buffer);
if (argc != 1) {
fprintf(stderr, "usage: %s\n", argv[0]);
- exit(-1);
+ igt_fail(-1);
}
fd = drm_open_any();
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bufmgr_gem_enable_reuse(bufmgr);
batch = intel_batchbuffer_alloc(bufmgr, devid);
if (!batch) {
fprintf(stderr, "failed to create batch buffer\n");
- exit(-1);
+ igt_fail(-1);
}
target_buffer = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
if (!target_buffer) {
fprintf(stderr, "failed to alloc target buffer\n");
- exit(-1);
+ igt_fail(-1);
}
store_dword_loop(1);
fprintf(stderr,
"value mismatch: cur 0x%08x, stored 0x%08x\n",
buf[0], val);
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bo_unmap(target_buffer);
if (argc != 1) {
fprintf(stderr, "usage: %s\n", argv[0]);
- exit(-1);
+ igt_fail(-1);
}
fd = drm_open_any();
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bufmgr_gem_enable_reuse(bufmgr);
batch = intel_batchbuffer_alloc(bufmgr, devid);
if (!batch) {
fprintf(stderr, "failed to create batch buffer\n");
- exit(-1);
+ igt_fail(-1);
}
target_buffer = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
if (!target_buffer) {
fprintf(stderr, "failed to alloc target buffer\n");
- exit(-1);
+ igt_fail(-1);
}
store_dword_loop(1);
fprintf(stderr,
"value mismatch: cur 0x%08x, stored 0x%08x\n",
buf[0], val);
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bo_unmap(target_buffer);
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
drm_intel_bufmgr_gem_enable_reuse(bufmgr);
batch = intel_batchbuffer_alloc(bufmgr, intel_get_drm_devid(fd));
if (!batch) {
fprintf(stderr, "failed to create batch buffer\n");
- exit(-1);
+ igt_fail(-1);
}
target_buffer = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
if (!target_buffer) {
fprintf(stderr, "failed to alloc target buffer\n");
- exit(-1);
+ igt_fail(-1);
}
store_dword_loop(1);
printf("mismatch at tile %i pos %i, read %i, expected %i, diff %i\n",
logical_tile_no, i*options.tile_size + j, tmp, expect, (int) tmp - expect);
if (options.trace_tile >= 0 && options.fail)
- exit(1);
+ igt_fail(1);
failed++;
}
/* when not aborting, correct any errors */
}
}
if (failed && options.fail)
- exit(1);
+ igt_fail(1);
if (failed > stats.max_failed_reads)
stats.max_failed_reads = failed;
if (tmp[j] != val) {
printf("mismatch at %i, got: %i, expected: %i\n",
start + j, tmp[j], val);
- exit(1);
+ igt_fail(1);
}
}
if (compare_tmp[j] != val) {
printf("amismatch at %i, got: %i, expected: %i\n",
j, tmp[j], val);
- exit(1);
+ igt_fail(1);
}
}
for (; j < start + len; j++) {
if (compare_tmp[j] != tmp[0]) {
printf("bmismatch at %i, got: %i, expected: %i\n",
j, tmp[j], i);
- exit(1);
+ igt_fail(1);
}
}
for (; j < BO_SIZE; j++) {
if (compare_tmp[j] != val) {
printf("cmismatch at %i, got: %i, expected: %i\n",
j, tmp[j], val);
- exit(1);
+ igt_fail(1);
}
}
drm_intel_gem_bo_unmap_gtt(staging_bo);
if (tmp[j] != val) {
printf("mismatch in read at %i, got: %i, expected: %i\n",
start + j, tmp[j], val);
- exit(1);
+ igt_fail(1);
}
}
if (compare_tmp[j] != val) {
printf("mismatch at %i, got: %i, expected: %i\n",
j, tmp[j], val);
- exit(1);
+ igt_fail(1);
}
}
for (; j < start + len; j++) {
if (compare_tmp[j] != tmp[0]) {
printf("mismatch at %i, got: %i, expected: %i\n",
j, tmp[j], tmp[0]);
- exit(1);
+ igt_fail(1);
}
}
for (; j < BO_SIZE; j++) {
if (compare_tmp[j] != val) {
printf("mismatch at %i, got: %i, expected: %i\n",
j, tmp[j], val);
- exit(1);
+ igt_fail(1);
}
}
drm_intel_gem_bo_unmap_gtt(staging_bo);
if (data[j] != j) {
fprintf(stderr, "mismatch at %i: %i\n",
j, data[j]);
- exit(1);
+ igt_fail(1);
}
munmap(data, sizeof(linear));
if (data[j] != j) {
fprintf(stderr, "mismatch at %i: %i\n",
j, data[j]);
- exit(1);
+ igt_fail(1);
}
munmap(data, LINEAR_DWORDS);
}
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
/* don't enable buffer reuse!! */
//drm_intel_bufmgr_gem_enable_reuse(bufmgr);
load_bo = drm_intel_bo_alloc(bufmgr, "target bo", 1024*4096, 4096);
if (!load_bo) {
fprintf(stderr, "failed to alloc target buffer\n");
- exit(-1);
+ igt_fail(-1);
}
BEGIN_BATCH(8);
target_bo = drm_intel_bo_alloc(bufmgr, "target bo", 4096, 4096);
if (!target_bo) {
fprintf(stderr, "failed to alloc target buffer\n");
- exit(-1);
+ igt_fail(-1);
}
/* Need to map first so that we can do our own domain mangement with
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
if (!bufmgr) {
fprintf(stderr, "failed to init libdrm\n");
- exit(-1);
+ igt_fail(-1);
}
/* don't enable buffer reuse!! */
//drm_intel_bufmgr_gem_enable_reuse(bufmgr);
dummy_bo = drm_intel_bo_alloc(bufmgr, "dummy bo", 4096, 4096);
if (!dummy_bo) {
fprintf(stderr, "failed to alloc dummy buffer\n");
- exit(-1);
+ igt_fail(-1);
}
load_bo = drm_intel_bo_alloc(bufmgr, "load bo", 1024*4096, 4096);
if (!load_bo) {
fprintf(stderr, "failed to alloc load buffer\n");
- exit(-1);
+ igt_fail(-1);
}
for (i = 0; i < ARRAY_SIZE(tests); i++) {
(diff.tv_sec > 0 || (diff.tv_sec == 0 && diff.tv_usec > 2000))) {
fprintf(stderr, "%s ts delayed for too long: %is, %iusec\n",
es->name, (int)diff.tv_sec, (int)diff.tv_usec);
- exit(5);
+ igt_fail(5);
}
if (es->count == 0)
timersub(&es->current_ts, &es->last_received_ts, &diff);
fprintf(stderr, "timerdiff %is, %ius\n",
(int) diff.tv_sec, (int) diff.tv_usec);
- exit(6);
+ igt_fail(6);
}
/* This bounding matches the one in DRM_IOCTL_WAIT_VBLANK. */
if (es->current_seq - (es->last_seq + es->seq_step) > 1UL << 23) {
fprintf(stderr, "unexpected %s seq %u, should be >= %u\n",
es->name, es->current_seq, es->last_seq + es->seq_step);
- exit(10);
+ igt_fail(10);
}
}
fprintf(stderr, "inter-%s ts jitter: %is, %ius\n",
es->name,
(int) diff.tv_sec, (int) diff.tv_usec);
- exit(9);
+ igt_fail(9);
}
if (es->current_seq != es->last_seq + es->seq_step) {
fprintf(stderr, "unexpected %s seq %u, expected %u\n",
es->name, es->current_seq,
es->last_seq + es->seq_step);
- exit(9);
+ igt_fail(9);
}
}
}
fprintf(stderr,
"timestamp mismatch between %s and %s (diff %.4f sec)\n",
es1->name, es2->name, usec_diff / 1000 / 1000);
- exit(14);
+ igt_fail(14);
}
}
if (atoi(tmp) != 0) {
fprintf(stderr, "no gpu hang detected, stop_rings is still %s\n", tmp);
- exit(20);
+ igt_fail(20);
}
close(fd);
&o->id, 1, &o->mode)) {
fprintf(stderr, "failed to restore output mode: %s\n",
strerror(errno));
- exit(7);
+ igt_fail(7);
}
}
fprintf(stderr, "failed to pan (%dx%d@%dHz): %s\n",
o->fb_width, o->fb_height,
o->mode.vrefresh, strerror(errno));
- exit(7);
+ igt_fail(7);
}
}
NULL, 0, NULL)) {
fprintf(stderr, "failed to disable output: %s\n",
strerror(errno));
- exit(7);
+ igt_fail(7);
}
}
{
if (es->count == 0) {
fprintf(stderr, "no %s event received\n", es->name);
- exit(12);
+ igt_fail(12);
}
/* Verify we drop no frames, but only if it's not a TV encoder, since
if (count < expected * 99/100) {
fprintf(stderr, "dropped frames, expected %d, counted %d, encoder type %d\n",
expected, count, o->encoder->encoder_type);
- exit(3);
+ igt_fail(3);
}
}
}
if (ret <= 0) {
fprintf(stderr, "select timed out or error (ret %d)\n",
ret);
- exit(1);
+ igt_fail(1);
} else if (FD_ISSET(0, &fds)) {
fprintf(stderr, "no fds active, breaking\n");
- exit(2);
+ igt_fail(2);
}
do_or_die(drmHandleEvent(drm_fd, &evctx));
if (!o->fb_ids[0] || !o->fb_ids[1] || !o->fb_ids[2]) {
fprintf(stderr, "failed to create fbs\n");
- exit(3);
+ igt_fail(3);
}
paint_flip_mode(&o->fb_info[0], false);
if (do_page_flip(o, o->fb_ids[1], true)) {
fprintf(stderr, "failed to page flip: %s\n", strerror(errno));
- exit(4);
+ igt_fail(4);
}
wait_for_events(o);
if (!resources) {
fprintf(stderr, "drmModeGetResources failed: %s\n",
strerror(errno));
- exit(5);
+ igt_fail(5);
}
/* Find any connected displays */
#define xtest(name) \
igt_subtest(#name) \
if (test_##name()) \
- exit(2);
+ igt_fail(2);
xtest(i915_nv_import_twice);
xtest(i915_nv_import_twice_check_flink_name);
#define xtest(name) \
igt_subtest(#name) \
if (test_##name()) \
- exit(2);
+ igt_fail(2);
xtest(i915_nv_sharing);
xtest(nv_i915_sharing);