tests: Document ABI extension catchers

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>
This commit is contained in:
Daniel Vetter 2015-08-07 19:27:30 +02:00
parent 5b0a8433fd
commit adfc294384
3 changed files with 10 additions and 1 deletions

View File

@ -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") {

View File

@ -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);
}

View File

@ -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);