[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