From: Daniel Vetter <daniel.vetter@ffwll.ch>
To: Intel Graphics Development <intel-gfx@lists.freedesktop.org>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>,
Daniel Vetter <daniel.vetter@intel.com>
Subject: [PATCH i-g-t 11/17] tests: Add invalid pad tests for ctx create/destroy
Date: Tue, 10 Feb 2015 19:05:54 +0100 [thread overview]
Message-ID: <1423591560-9471-11-git-send-email-daniel.vetter@ffwll.ch> (raw)
In-Reply-To: <1423591560-9471-1-git-send-email-daniel.vetter@ffwll.ch>
We've missed them, and the kernel isn't nasty enough and forgot to
check them. To add these tests convert the existing create/destroy
tests over to subtests.
v2: Do the basic create/destroy in ctx_bad_destroy in a fixture
so that all the tests skip properly.
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
tests/gem_ctx_bad_destroy.c | 48 +++++++++++++++++++++++++++++++--------------
tests/gem_ctx_create.c | 42 +++++++++++++++++++++++++++------------
2 files changed, 63 insertions(+), 27 deletions(-)
diff --git a/tests/gem_ctx_bad_destroy.c b/tests/gem_ctx_bad_destroy.c
index 368bf95f2fcb..ee89763870ef 100644
--- a/tests/gem_ctx_bad_destroy.c
+++ b/tests/gem_ctx_bad_destroy.c
@@ -38,28 +38,46 @@
IGT_TEST_DESCRIPTION("Negative test cases for destroy contexts.");
-igt_simple_main
+uint32_t ctx_id;
+int fd;
+
+igt_main
{
- uint32_t ctx_id;
- int fd;
+ igt_fixture {
+ fd = drm_open_any_render();
+
+ ctx_id = gem_context_create(fd);
+ /* Make sure a proper destroy works first */
+ gem_context_destroy(fd, ctx_id);
+ }
- igt_skip_on_simulation();
+ /* try double destroy */
+ igt_subtest("double-destroy") {
+ ctx_id = gem_context_create(fd);
+ gem_context_destroy(fd, ctx_id);
+ igt_assert(__gem_context_destroy(fd, ctx_id) == -ENOENT);
+ }
- fd = drm_open_any_render();
+ igt_subtest("invalid-ctx")
+ igt_assert(__gem_context_destroy(fd, 2) == -ENOENT);
- ctx_id = gem_context_create(fd);
+ igt_subtest("invalid-default-ctx")
+ igt_assert(__gem_context_destroy(fd, 0) == -ENOENT);
- /* Make sure a proper destroy works first */
- gem_context_destroy(fd, ctx_id);
+ igt_subtest("invalid-pad") {
+ struct drm_i915_gem_context_destroy destroy;
- /* try double destroy */
- igt_assert(__gem_context_destroy(fd, ctx_id) == -ENOENT);
+ ctx_id = gem_context_create(fd);
- /* destroy something random */
- igt_assert(__gem_context_destroy(fd, 2) == -ENOENT);
+ memset(&destroy, 0, sizeof(destroy));
+ destroy.ctx_id = ctx_id;
+ destroy.pad = 1;
- /* Try to destroy the default context */
- igt_assert(__gem_context_destroy(fd, 0) == -ENOENT);
+ igt_assert(drmIoctl(fd, DRM_IOCTL_I915_GEM_CONTEXT_DESTROY, &destroy) < 0 &&
+ errno == EINVAL);
+ gem_context_destroy(fd, ctx_id);
+ }
- close(fd);
+ igt_fixture
+ close(fd);
}
diff --git a/tests/gem_ctx_create.c b/tests/gem_ctx_create.c
index 1c710fdebbf7..046c974dfb6a 100644
--- a/tests/gem_ctx_create.c
+++ b/tests/gem_ctx_create.c
@@ -32,22 +32,40 @@
#include "ioctl_wrappers.h"
#include "drmtest.h"
-igt_simple_main
+int ret, fd;
+struct drm_i915_gem_context_create create;
+
+igt_main
{
- int ret, fd;
- struct drm_i915_gem_context_create create;
+ igt_fixture
+ fd = drm_open_any_render();
+
+ igt_subtest("basic") {
+ create.ctx_id = rand();
+ create.pad = 0;
+
+
+ ret = drmIoctl(fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &create);
+ igt_skip_on(ret != 0 && (errno == ENODEV || errno == EINVAL));
+ igt_assert(ret == 0);
+ igt_assert(create.ctx_id != 0);
+ }
- igt_skip_on_simulation();
+ igt_subtest("invalid-pad") {
+ create.ctx_id = rand();
+ create.pad = 0;
- create.ctx_id = rand();
- create.pad = rand();
+ ret = drmIoctl(fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &create);
+ igt_skip_on(ret != 0 && (errno == ENODEV || errno == EINVAL));
+ igt_assert(ret == 0);
+ igt_assert(create.ctx_id != 0);
- fd = drm_open_any_render();
+ create.pad = 1;
- ret = drmIoctl(fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &create);
- igt_skip_on(ret != 0 && (errno == ENODEV || errno == EINVAL));
- igt_assert(ret == 0);
- igt_assert(create.ctx_id != 0);
+ igt_assert(drmIoctl(fd, DRM_IOCTL_I915_GEM_CONTEXT_CREATE, &create) < 0 &&
+ errno == EINVAL);
+ }
- close(fd);
+ igt_fixture
+ close(fd);
}
--
2.1.4
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2015-02-10 18:04 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-10 18:05 [PATCH i-g-t 01/17] lib/gt: api polish for igt_can_hang_ring Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 02/17] lib/ioctl: api polish for gem_context_has_param Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 03/17] lib/ioctl: gem_ prefix for igt_require_mmap_wc Daniel Vetter
2015-02-10 21:58 ` Chris Wilson
2015-02-11 8:37 ` Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 04/17] igt/ioctls: doc for gem_mmap Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 05/17] lib/ioctls: make gem_context_set/get_param infallible Daniel Vetter
2015-02-10 21:54 ` Chris Wilson
2015-02-11 8:42 ` Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 06/17] lib/ioctl: Add gem_context_destroy helpers Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 07/17] tests/gem_ctx_*: Use helpers Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 08/17] tests/gem_reset_stat: Use new ctx helpers Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 09/17] lib/ioctl: Document ctx param functions Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 10/17] tests: Add gem_ctx_param_basic Daniel Vetter
2015-02-10 18:05 ` Daniel Vetter [this message]
2015-02-10 18:05 ` [PATCH i-g-t 12/17] tests/gem_ppgtt: Start rcs before bcs for context tests Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 13/17] tests: Align subtest with naming convention Daniel Vetter
2015-02-10 21:53 ` Chris Wilson
2015-02-11 8:44 ` Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 14/17] lib/igt_aux: s/swap/igt_swap/ Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 15/17] tests/gem_wait: Adjust makefile Daniel Vetter
2015-02-10 18:05 ` [PATCH i-g-t 16/17] doc: Consolidate naming conventions into docbook Daniel Vetter
2015-02-10 18:06 ` [PATCH i-g-t 17/17] lib/igt_gt: Document and consolidate Daniel Vetter
2015-02-10 21:36 ` [PATCH i-g-t 01/17] lib/gt: api polish for igt_can_hang_ring Chris Wilson
2015-02-10 21:56 ` Daniel Vetter
2015-02-10 21:59 ` [PATCH i-g-t] lib/chipset: Cache devid Daniel Vetter
2015-02-10 22:28 ` Chris Wilson
2015-02-10 22:37 ` Daniel Vetter
2015-02-10 22:39 ` Daniel Vetter
2015-02-10 22:45 ` Daniel Vetter
2015-02-10 22:50 ` Chris Wilson
2015-02-11 8:49 ` Daniel Vetter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1423591560-9471-11-git-send-email-daniel.vetter@ffwll.ch \
--to=daniel.vetter@ffwll.ch \
--cc=daniel.vetter@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox