[igt-dev] [PATCH i-g-t v2 1/2] tests/kms_properties: Add additional prperty test infrastructure
Radhakrishna Sripada
radhakrishna.sripada at intel.com
Fri Oct 12 07:18:45 UTC 2018
We currently test the existimg properties by setting them with default value.
Add infrastructure to perform additional test on a desired property.
v2: Fix the strcmp logic
Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
Cc: Daniel Vetter <daniel.vetter at ffwll.ch>
Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada at intel.com>
---
tests/kms_properties.c | 28 +++++++++++++++++++++++++++-
1 file changed, 27 insertions(+), 1 deletion(-)
diff --git a/tests/kms_properties.c b/tests/kms_properties.c
index 9548cf44017a..f5a86236f5c8 100644
--- a/tests/kms_properties.c
+++ b/tests/kms_properties.c
@@ -29,6 +29,13 @@
#include <string.h>
#include <time.h>
+struct additional_test {
+ char *name;
+ uint32_t obj_type;
+ void (*prop_test)(int fd, uint32_t id, uint32_t type, drmModePropertyPtr prop,
+ uint32_t prop_id, uint64_t prop_value, bool atomic);
+};
+
static void prepare_pipe(igt_display_t *display, enum pipe pipe, igt_output_t *output, struct igt_fb *fb)
{
drmModeModeInfo *mode = igt_output_get_mode(output);
@@ -75,11 +82,27 @@ static bool ignore_property(uint32_t obj_type, uint32_t prop_flags,
return false;
}
+static const struct additional_test property_functional_test[] = {};
+
+static bool has_additional_test_lookup(uint32_t obj_type, const char *name,
+ bool atomic, int *index)
+{
+ int i;
+
+ for (i = 0; i < ARRAY_SIZE(property_functional_test); i++)
+ if (property_functional_test[i].obj_type == obj_type &&
+ !strcmp(name, property_functional_test[i].name)) {
+ *index = i;
+ return true;
+ }
+
+ return false;
+}
static void test_properties(int fd, uint32_t type, uint32_t id, bool atomic)
{
drmModeObjectPropertiesPtr props =
drmModeObjectGetProperties(fd, id, type);
- int i, ret;
+ int i, j, ret;
drmModeAtomicReqPtr req = NULL;
igt_assert(props);
@@ -114,6 +137,9 @@ static void test_properties(int fd, uint32_t type, uint32_t id, bool atomic)
igt_assert_eq(ret, 0);
}
+ if (has_additional_test_lookup(type, prop->name, atomic, &j))
+ property_functional_test[j].prop_test(fd, id, type, prop, prop_id, prop_value, atomic);
+
drmModeFreeProperty(prop);
}
--
2.9.3
More information about the igt-dev
mailing list