diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2016-09-01 20:41:11 +0100 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2016-09-01 20:49:29 +0100 |
commit | 768f6cc854f5d04a067c8c64297563655b8e54f9 (patch) | |
tree | 96e89d9c815a79c4b0dc55d47ec05989558a9c83 | |
parent | 652ad3e549810f32b39f24b13023a050667e738a (diff) |
igt/gem_ctx_bad_exec: Begone invalid negative test
Stop looking for an error for a valid combination.
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97562
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | tests/gem_ctx_bad_exec.c | 89 |
1 files changed, 17 insertions, 72 deletions
diff --git a/tests/gem_ctx_bad_exec.c b/tests/gem_ctx_bad_exec.c index 5b3577fc1..a86c54fd6 100644 --- a/tests/gem_ctx_bad_exec.c +++ b/tests/gem_ctx_bad_exec.c @@ -20,96 +20,41 @@ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS * IN THE SOFTWARE. * - * Authors: - * Ben Widawsky <ben@bwidawsk.net> - * - */ - -/* - * Negative test cases: - * test we can't submit contexts to unsupported rings */ #include "igt.h" -#include <unistd.h> -#include <stdlib.h> -#include <stdint.h> -#include <stdio.h> -#include <string.h> -#include <fcntl.h> -#include <inttypes.h> -#include <errno.h> -#include <sys/stat.h> -#include <sys/ioctl.h> -#include <sys/time.h> -#include "drm.h" -IGT_TEST_DESCRIPTION("Test that context cannot be submitted to unsupported" - " rings."); +IGT_TEST_DESCRIPTION("Test that context cannot be submitted to any ring"); -/* Copied from gem_exec_nop.c */ -static int exec(int fd, uint32_t handle, int ring, int ctx_id) +static int exec(int fd, unsigned ring) { struct drm_i915_gem_execbuffer2 execbuf; - struct drm_i915_gem_exec_object2 gem_exec; - int ret = 0; + struct drm_i915_gem_exec_object2 obj; - gem_exec.handle = handle; - gem_exec.relocation_count = 0; - gem_exec.relocs_ptr = 0; - gem_exec.alignment = 0; - gem_exec.offset = 0; - gem_exec.flags = 0; - gem_exec.rsvd1 = 0; - gem_exec.rsvd2 = 0; + memset(&obj, 0, sizeof(obj)); + memset(&execbuf, 0, sizeof(execbuf)); - execbuf.buffers_ptr = (uintptr_t)&gem_exec; + execbuf.buffers_ptr = (uintptr_t)&obj; execbuf.buffer_count = 1; - execbuf.batch_start_offset = 0; - execbuf.batch_len = 8; - execbuf.cliprects_ptr = 0; - execbuf.num_cliprects = 0; - execbuf.DR1 = 0; - execbuf.DR4 = 0; - execbuf.flags = ring; - i915_execbuffer2_set_context_id(execbuf, ctx_id); - execbuf.rsvd2 = 0; - - ret = drmIoctl(fd, DRM_IOCTL_I915_GEM_EXECBUFFER2, - &execbuf); - gem_sync(fd, handle); + i915_execbuffer2_set_context_id(execbuf, 1); - return ret; + return __gem_execbuf(fd, &execbuf); } -uint32_t handle; -uint32_t batch[2] = {MI_BATCH_BUFFER_END}; -uint32_t ctx_id; -int fd; - igt_main { + const struct intel_execution_engine *e; + int fd = -1; + igt_skip_on_simulation(); - igt_fixture { + igt_fixture fd = drm_open_driver_render(DRIVER_INTEL); - ctx_id = gem_context_create(fd); - - handle = gem_create(fd, 4096); - gem_write(fd, handle, 0, batch, sizeof(batch)); + for (e = intel_execution_engines; e->name; e++) { + igt_subtest_f("%s", e->name) { + gem_require_ring(fd, e->exec_id | e->flags); + igt_assert_eq(exec(fd, e->exec_id | e->flags), -ENOENT); + } } - - igt_subtest("render") - igt_assert(exec(fd, handle, I915_EXEC_RENDER, ctx_id) == 0); - igt_subtest("bsd") - igt_assert(exec(fd, handle, I915_EXEC_BSD, ctx_id) != 0); - igt_subtest("blt") - igt_assert(exec(fd, handle, I915_EXEC_BLT, ctx_id) != 0); -#ifdef I915_EXEC_VEBOX - igt_fixture - igt_require(gem_has_vebox(fd)); - igt_subtest("vebox") - igt_assert(exec(fd, handle, I915_EXEC_VEBOX, ctx_id) != 0); -#endif } |