summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorRadhakrishna Sripada <radhakrishna.sripada@intel.com>2018-10-12 00:18:45 -0700
committerRodrigo Vivi <rodrigo.vivi@intel.com>2018-11-02 09:14:06 -0700
commitd39c1b14ebd577b21ad551e3af477f53f1f4e701 (patch)
tree927e3eb4931e6f9dc19c856d2ae9016b38004af7 /tests
parentace031dcb1e8bf2b32b4b0d54a55eb30e8f41d6f (diff)
tests/kms_properties: Add additional prperty test infrastructure
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@linux.intel.com> Cc: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Radhakrishna Sripada <radhakrishna.sripada@intel.com> Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/kms_properties.c28
1 files changed, 27 insertions, 1 deletions
diff --git a/tests/kms_properties.c b/tests/kms_properties.c
index 9548cf440..f5a86236f 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);
}