[PATCH libinput 2/2] test: Add test for mouse dpi tag parser

Derek Foreman derekf at osg.samsung.com
Mon Nov 24 13:53:37 PST 2014


Signed-off-by: Derek Foreman <derekf at osg.samsung.com>
---
 test/Makefile.am        |  7 ++++-
 test/mouse_dpi_parser.c | 69 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+), 1 deletion(-)
 create mode 100644 test/mouse_dpi_parser.c

diff --git a/test/Makefile.am b/test/Makefile.am
index 0abd695..1f124a3 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -41,7 +41,8 @@ run_tests = \
 	test-trackpoint \
 	test-misc \
 	test-keyboard \
-	test-device
+	test-device \
+	test-mouse_dpi_parser
 build_tests = \
 	test-build-cxx \
 	test-build-linker \
@@ -93,6 +94,10 @@ test_device_SOURCES = device.c
 test_device_LDADD = $(TEST_LIBS)
 test_device_LDFLAGS = -no-install
 
+test_mouse_dpi_parser_SOURCES = mouse_dpi_parser.c
+test_mouse_dpi_parser_LDADD = $(TEST_LIBS)
+test_mouse_dpi_parser_LDFLAGS = -no-install
+
 # build-test only
 test_build_pedantic_c99_SOURCES = build-pedantic.c
 test_build_pedantic_c99_CFLAGS = -std=c99 -pedantic -Werror
diff --git a/test/mouse_dpi_parser.c b/test/mouse_dpi_parser.c
new file mode 100644
index 0000000..bde71cb
--- /dev/null
+++ b/test/mouse_dpi_parser.c
@@ -0,0 +1,69 @@
+/*
+ * Copyright © 2014 Samsung
+ *
+ * Permission to use, copy, modify, distribute, and sell this software and
+ * its documentation for any purpose is hereby granted without fee, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of the copyright holders not be used in
+ * advertising or publicity pertaining to distribution of the software
+ * without specific, written prior permission.  The copyright holders make
+ * no representations about the suitability of this software for any
+ * purpose.  It is provided "as is" without express or implied warranty.
+ *
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
+ * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
+ * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include <config.h>
+
+#include <check.h>
+#include <libinput.h>
+#include <libinput-util.h>
+
+#include "litest.h"
+
+struct parser_test {
+	char *tag;
+	int expected_dpi;
+};
+
+START_TEST(udev_dpi_parser)
+{
+	struct parser_test tests[] = {
+		{ "450 *1800 3200", 1800 },
+		{ "*450 1800 3200", 450 },
+		{ "450 1800 *3200", 3200 },
+		{ "450 1800 *failboat", 0 },
+		{ "0 450 1800 *3200", 0 },
+		{ "450 at 37 1800 at 12 *3200 at 6", 3200 },
+		{ "450 at 125 1800 at 125   *3200 at 125  ", 3200 },
+		{ "450 at 125 *1800 at 125  3200 at 125", 1800 },
+		{ "*this @string fails", 0 },
+		{ "12 at 34 *45@", 0 },
+		{ "                                      * 12, 450, 800", 0 },
+		{ "                                      *12, 450, 800", 12 },
+		{ "*12, *450, 800", 12 },
+		{ NULL }
+	};
+	int i, dpi;
+
+	for (i = 0; tests[i].tag != NULL; i++) {
+		dpi = udev_parse_mouse_dpi_property(tests[i].tag);
+		ck_assert(dpi == tests[i].expected_dpi);
+	}
+}
+END_TEST
+
+int
+main(int argc, char **argv)
+{
+	litest_add_no_device("udev:dpi parser", udev_dpi_parser);
+
+	return litest_run(argc, argv);
+}
-- 
2.1.3



More information about the wayland-devel mailing list