#include <sys/stat.h>
#include <sys/time.h>
#include "drm.h"
-#include "i915_drm.h"
+#include "ioctl_wrappers.h"
#include "drmtest.h"
#define BATCH_SIZE (1024*1024)
i915_execbuffer2_set_context_id(execbuf, 0);
execbuf.rsvd2 = 0;
- return drmIoctl(fd,
- DRM_IOCTL_I915_GEM_EXECBUFFER2,
- &execbuf);
+ if (drmIoctl(fd,
+ DRM_IOCTL_I915_GEM_EXECBUFFER2,
+ &execbuf))
+ return -errno;
+
+ return 0;
}
static int many_exec(int fd, uint32_t batch, int num_exec, int num_reloc, unsigned flags)
ret = drmIoctl(fd,
DRM_IOCTL_I915_GEM_EXECBUFFER2,
&execbuf);
+ if (ret < 0)
+ ret = -errno;
for (n = 0; n < num_exec; n++)
gem_close(fd, gem_exec[n].handle);
return ret;
}
-#define _fail(x) ((x) == -1 && errno == ENOENT)
-#define ASSERT(x) do { \
- if (!(x)) { \
- fprintf(stderr, "%s:%d failed, errno=%d\n", \
- __FUNCTION__, __LINE__, errno); \
- abort(); \
- } \
-} while (0)
-#define fail(x) ASSERT(_fail(x))
-#define pass(x) ASSERT(!_fail(x))
-
-int main(int argc, char **argv)
+#define fail(x) igt_assert((x) == -ENOENT)
+#define pass(x) igt_assert((x) == 0)
+
+igt_simple_main
{
uint32_t batch[2] = {MI_BATCH_BUFFER_END};
uint32_t handle;
do_or_die(exec(fd, handle, NORMAL));
fail(exec(fd, handle, BROKEN));
- if (exec(fd, handle, USE_LUT))
- return 77;
+ igt_skip_on(exec(fd, handle, USE_LUT));
do_or_die(exec(fd, handle, USE_LUT));
fail(exec(fd, handle, USE_LUT | BROKEN));
for (i = 2; i <= SLOW_QUICK(65536, 8); i *= 2) {
- if (many_exec(fd, handle, i+1, i+1, NORMAL) == -1 &&
- errno == ENOSPC)
+ if (many_exec(fd, handle, i+1, i+1, NORMAL) == -ENOSPC)
break;
pass(many_exec(fd, handle, i-1, i-1, NORMAL));
fail(many_exec(fd, handle, i+1, i, USE_LUT | BROKEN));
fail(many_exec(fd, handle, i+1, i+1, USE_LUT | BROKEN));
}
-
- return 0;
}