test: avoid erroneous devices to be passed into the test suites
authorPeter Hutterer <peter.hutterer@who-t.net>
Mon, 4 Aug 2014 02:49:59 +0000 (12:49 +1000)
committerPeter Hutterer <peter.hutterer@who-t.net>
Thu, 18 Sep 2014 01:30:15 +0000 (11:30 +1000)
The litest features overlap with the litest device specifiers, so it's easy to
pass in LITEST_MOUSE where LITEST_POINTER should be passed in, and vice versa.
Lacking proper type checking the best we can do here is simply move the
devices into the negative range and check for that.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
test/litest.c
test/litest.h

index f99d145a20655ecb3f70835506abaf0642bd143a..e5e7316ce27fb53988e38b48e5f41ed5d4280d7f 100644 (file)
@@ -159,6 +159,9 @@ litest_add_tcase(struct suite *suite, void *func,
 {
        struct litest_test_device **dev = devices;
 
+       assert(required >= LITEST_DISABLE_DEVICE);
+       assert(excluded >= LITEST_DISABLE_DEVICE);
+
        if (required == LITEST_DISABLE_DEVICE &&
            excluded == LITEST_DISABLE_DEVICE) {
                litest_add_tcase_no_device(suite, func);
@@ -223,6 +226,8 @@ litest_add_for_device(const char *name,
        struct suite *s;
        struct litest_test_device **dev = devices;
 
+       assert(type < LITEST_NO_DEVICE);
+
        s = get_suite(name);
        while (*dev) {
                if ((*dev)->type == type) {
index aefde3fe51a4939dbc9ead9284c02f852bacc57c..cc55c8f06d4c05d91494e82d5bd38b3a220c0b29 100644 (file)
 
 enum litest_device_type {
        LITEST_NO_DEVICE = -1,
-       LITEST_SYNAPTICS_CLICKPAD,
-       LITEST_SYNAPTICS_TOUCHPAD,
-       LITEST_SYNAPTICS_TOPBUTTONPAD,
-       LITEST_BCM5974,
-       LITEST_KEYBOARD,
-       LITEST_TRACKPOINT,
-       LITEST_MOUSE,
-       LITEST_WACOM_TOUCH,
-       LITEST_ALPS_SEMI_MT,
-       LITEST_GENERIC_SINGLETOUCH,
+       LITEST_SYNAPTICS_CLICKPAD = -2,
+       LITEST_SYNAPTICS_TOUCHPAD = -3,
+       LITEST_SYNAPTICS_TOPBUTTONPAD = -4,
+       LITEST_BCM5974 = -5,
+       LITEST_KEYBOARD = -6,
+       LITEST_TRACKPOINT = -7,
+       LITEST_MOUSE = -8,
+       LITEST_WACOM_TOUCH = -9,
+       LITEST_ALPS_SEMI_MT = -10,
+       LITEST_GENERIC_SINGLETOUCH = -11,
 };
 
 enum litest_device_feature {