tests/gem_ctx_param_basic: support NO_ZEROMAP

Signed-off-by: David Weinehall <david.weinehall@linux.intel.com>
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
David Weinehall 2015-08-07 15:53:57 +03:00 committed by Daniel Vetter
parent 38b3bd6b7c
commit 24617ef82a
2 changed files with 44 additions and 14 deletions

View File

@ -102,6 +102,7 @@ struct local_i915_gem_context_param {
uint32_t size;
uint64_t param;
#define LOCAL_CONTEXT_PARAM_BAN_PERIOD 0x1
#define LOCAL_CONTEXT_PARAM_NO_ZEROMAP 0x2
uint64_t value;
};
void gem_context_require_ban_period(int fd);

View File

@ -57,7 +57,7 @@ igt_main
ctx = gem_context_create(fd);
}
ctx_param.param = LOCAL_CONTEXT_PARAM_BAN_PERIOD;
ctx_param.param = LOCAL_CONTEXT_PARAM_BAN_PERIOD;
igt_subtest("basic") {
ctx_param.context = ctx;
@ -98,19 +98,7 @@ igt_main
ctx_param.size = 0;
}
ctx_param.param = LOCAL_CONTEXT_PARAM_BAN_PERIOD + 1;
igt_subtest("invalid-param-get") {
ctx_param.context = ctx;
TEST_FAIL(LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM, EINVAL);
}
igt_subtest("invalid-param-set") {
ctx_param.context = ctx;
TEST_FAIL(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM, EINVAL);
}
ctx_param.param = LOCAL_CONTEXT_PARAM_BAN_PERIOD;
ctx_param.param = LOCAL_CONTEXT_PARAM_BAN_PERIOD;
igt_subtest("non-root-set") {
igt_fork(child, 1) {
@ -132,6 +120,47 @@ igt_main
TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM);
}
ctx_param.param = LOCAL_CONTEXT_PARAM_NO_ZEROMAP;
igt_subtest("non-root-set-no-zeromap") {
igt_fork(child, 1) {
igt_drop_root();
ctx_param.context = ctx;
TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM);
ctx_param.value--;
TEST_FAIL(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM, EPERM);
}
igt_waitchildren();
}
igt_subtest("root-set-no-zeromap-enabled") {
ctx_param.context = ctx;
TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM);
ctx_param.value = 1;
TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM);
}
igt_subtest("root-set-no-zeromap-disabled") {
ctx_param.context = ctx;
TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM);
ctx_param.value = 0;
TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM);
}
ctx_param.param = LOCAL_CONTEXT_PARAM_NO_ZEROMAP + 1;
igt_subtest("invalid-param-get") {
ctx_param.context = ctx;
TEST_FAIL(LOCAL_IOCTL_I915_GEM_CONTEXT_GETPARAM, EINVAL);
}
igt_subtest("invalid-param-set") {
ctx_param.context = ctx;
TEST_FAIL(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM, EINVAL);
}
igt_fixture
close(fd);
}