[igt-dev] [PATCH i-g-t] tests/intel/xe_exec_queue_property: Negative tests for get exec_queue property ioctl
sai.gowtham.ch at intel.com
sai.gowtham.ch at intel.com
Tue Nov 14 12:28:10 UTC 2023
From: Sai Gowtham Ch <sai.gowtham.ch at intel.com>
Add Negative tests for get exec_queue property ioctl.
Signed-off-by: Sai Gowtham Ch <sai.gowtham.ch at intel.com>
---
tests/intel/xe_exec_queue_property.c | 77 +++++++++++++++++++++++++++-
1 file changed, 76 insertions(+), 1 deletion(-)
diff --git a/tests/intel/xe_exec_queue_property.c b/tests/intel/xe_exec_queue_property.c
index 4e32aefa5..5278304be 100644
--- a/tests/intel/xe_exec_queue_property.c
+++ b/tests/intel/xe_exec_queue_property.c
@@ -4,7 +4,7 @@
*/
/**
- * TEST: Basic tests to check exec_queue set property functionality
+ * TEST: Basic tests to check exec_queue set/get property functionality
* Category: Software building block
* Sub-category: exec queue property
* Functionality: exec queue set property
@@ -108,6 +108,72 @@ static void test_property_min_max(int xe, int engine, const char **property)
test_set_property(xe, property_name, min - 1, -EINVAL);
}
+/**
+ * SUBTEST: Invalid-exec-queue
+ * Description: Negative test to check the expected behaviour with invalid exec_queue_id.
+ * Test category: functionality test
+ */
+static void Invalid_exec_queue_id(int xe)
+{
+ struct drm_xe_exec_queue_get_property args = {
+ .exec_queue_id = 0xffff,
+ .property = XE_EXEC_QUEUE_GET_PROPERTY_BAN,
+ };
+
+ do_ioctl_err(xe, DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY, &args, ENOENT);
+}
+
+/**
+ * SUBTEST: non-zero-reserved
+ * Description: Negative test to check the expected behaviour with non-zero reserved.
+ * Test category: functionality test
+ */
+static void non_zero_reserved(int xe)
+{
+ struct drm_xe_exec_queue_get_property args = {
+ .reserved[0] = 0xffff,
+ .property = XE_EXEC_QUEUE_GET_PROPERTY_BAN,
+ };
+ uint32_t vm;
+ uint32_t exec_queue;
+
+ vm = xe_vm_create(xe, 0, 0);
+ exec_queue = xe_exec_queue_create_class(xe, vm, DRM_XE_ENGINE_CLASS_COPY);
+ args.exec_queue_id = exec_queue;
+
+ do_ioctl_err(xe, DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY, &args, EINVAL);
+
+ xe_exec_queue_destroy(xe, exec_queue);
+ xe_vm_destroy(xe, vm);
+}
+
+/**
+ * SUBTEST: invalid-value
+ * Description: Check if get property value works fine.
+ * Test category: functionality test
+ */
+static void invalid_value(int xe)
+{
+ struct drm_xe_exec_queue_get_property args = {
+ .value = -1,
+ .reserved[0] = 0,
+ .property = XE_EXEC_QUEUE_GET_PROPERTY_BAN,
+ };
+
+ uint32_t exec_queue;
+ uint32_t vm;
+
+ vm = xe_vm_create(xe, 0, 0);
+ exec_queue = xe_exec_queue_create_class(xe, vm, DRM_XE_ENGINE_CLASS_COPY);
+ args.exec_queue_id = exec_queue;
+
+ do_ioctl(xe, DRM_IOCTL_XE_EXEC_QUEUE_GET_PROPERTY, &args);
+ igt_assert(args.value == 0);
+
+ xe_exec_queue_destroy(xe, exec_queue);
+ xe_vm_destroy(xe, vm);
+}
+
igt_main
{
static const struct {
@@ -182,6 +248,15 @@ igt_main
}
}
+ igt_subtest("Invalid-exec-queue")
+ Invalid_exec_queue_id(xe);
+
+ igt_subtest("non-zero-reserved")
+ non_zero_reserved(xe);
+
+ igt_subtest("invalid-value")
+ invalid_value(xe);
+
igt_fixture {
xe_device_put(xe);
drm_close_driver(xe);
--
2.39.1
More information about the igt-dev
mailing list