diff options
author | Robert Bragg <robert@sixbynine.org> | 2016-11-08 13:29:31 +0000 |
---|---|---|
committer | Robert Bragg <robert@sixbynine.org> | 2016-11-17 13:06:06 +0000 |
commit | 2547fad7d5d029987483672e1dfc23ee316318a3 (patch) | |
tree | 02e8bb659dab39108d7583b87357dc70cac0d547 | |
parent | 86ccc6b03112a34da6ed777c96779222d3144246 (diff) |
igt/gem_exec_parse: make basic-rejected version agnostic
This adapts the basic-rejected test to focus on invalid commands that
will result in an EINVAL errno being returned to userspace even with the
upcoming version 8 parser change to stop reporting access violations as
EINVAL errors.
Signed-off-by: Robert Bragg <robert@sixbynine.org>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
-rw-r--r-- | tests/gem_exec_parse.c | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/tests/gem_exec_parse.c b/tests/gem_exec_parse.c index 6dc99982..03e4d0e9 100644 --- a/tests/gem_exec_parse.c +++ b/tests/gem_exec_parse.c @@ -42,6 +42,10 @@ #define HSW_CS_GPR0 HSW_CS_GPR(0) #define HSW_CS_GPR1 HSW_CS_GPR(1) +/* To help craft commands known to be invalid across all engines */ +#define INSTR_CLIENT_SHIFT 29 +#define INSTR_INVALID_CLIENT 0x7 + #define MI_LOAD_REGISTER_REG (0x2a << 23) #define MI_STORE_REGISTER_MEM (0x24 << 23) #define MI_ARB_ON_OFF (0x8 << 23) @@ -411,33 +415,38 @@ igt_main } igt_subtest("basic-rejected") { - uint32_t arb_on_off[] = { - MI_ARB_ON_OFF, + uint32_t invalid_cmd[] = { + INSTR_INVALID_CLIENT << INSTR_CLIENT_SHIFT, MI_BATCH_BUFFER_END, }; - uint32_t display_flip[] = { - MI_DISPLAY_FLIP, - 0, 0, 0, + uint32_t invalid_set_context[] = { + MI_SET_CONTEXT | 32, /* invalid length */ MI_BATCH_BUFFER_END, - 0 }; exec_batch(fd, handle, - arb_on_off, sizeof(arb_on_off), + invalid_cmd, sizeof(invalid_cmd), I915_EXEC_RENDER, -EINVAL); exec_batch(fd, handle, - arb_on_off, sizeof(arb_on_off), + invalid_cmd, sizeof(invalid_cmd), I915_EXEC_BSD, -EINVAL); + if (gem_has_blt(fd)) { + exec_batch(fd, handle, + invalid_cmd, sizeof(invalid_cmd), + I915_EXEC_BLT, + -EINVAL); + } if (gem_has_vebox(fd)) { exec_batch(fd, handle, - arb_on_off, sizeof(arb_on_off), + invalid_cmd, sizeof(invalid_cmd), I915_EXEC_VEBOX, -EINVAL); } + exec_batch(fd, handle, - display_flip, sizeof(display_flip), - I915_EXEC_BLT, + invalid_set_context, sizeof(invalid_set_context), + I915_EXEC_RENDER, -EINVAL); } |