@@ -149,6 +149,9 @@ igt_main
TEST_SUCCESS(LOCAL_IOCTL_I915_GEM_CONTEXT_SETPARAM);
}
+ /* NOTE: This testcase intentionally tests for the next free parameter
+ * to catch ABI extensions. Don't "fix" this testcase without adding all
+ * the tests for the new param first. */
ctx_param.param = LOCAL_CONTEXT_PARAM_NO_ZEROMAP + 1;
igt_subtest("invalid-param-get") {
@@ -221,6 +221,9 @@ igt_main
/* HANDLE_LUT and NO_RELOC are already exercised by gem_exec_lut_handle */
igt_subtest("invalid-flag") {
+ /* NOTE: This test intentionally exercise the next available
+ * flag. Don't "fix" this testcase without adding the required
+ * tests for the new flag first. */
execbuf.flags = I915_EXEC_RENDER | (LOCAL_I915_EXEC_RESOURCE_STREAMER << 1);
RUN_FAIL(EINVAL);
}
@@ -236,7 +236,10 @@ static void invalid_flags(int fd)
wait.bo_handle = handle;
wait.timeout_ns = 1;
- wait.flags = 0xffffffff;
+ /* NOTE: This test intentionally tests for just the next available flag.
+ * Don't "fix" this testcase without the ABI testcases for new flags
+ * first. */
+ wait.flags = 1;
ret = drmIoctl(fd, DRM_IOCTL_I915_GEM_WAIT, &wait);
igt_assert(ret != 0 && errno == EINVAL);
Our invalid-flags/params testcases are meant to catch abi extensions by just testing for the next available flag/param. Unfortunately we need that since without those we forgot to write testcases for these new flags way too often :( But it's not entirely clear why this is, so document this trick with comments. Also gem_wait wasn't this paranoid, so change the testcase to be so. Signed-off-by: Daniel Vetter <daniel.vetter@intel.com> --- tests/gem_ctx_param_basic.c | 3 +++ tests/gem_exec_params.c | 3 +++ tests/gem_wait.c | 5 ++++- 3 files changed, 10 insertions(+), 1 deletion(-)