summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2022-05-06 10:51:33 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2022-05-09 05:03:00 +0000
commit43a8d769ac776bfa2173669cfe03f39e89850f4a (patch)
treee34e45ed8dc017efc175a1c273daad8b85ef01dd /tools
parentd48c7e72f725466f2579d4d687116b632a0cbdf9 (diff)
downloadlibinput-43a8d769ac776bfa2173669cfe03f39e89850f4a.tar.gz
tools: add a libinput test tool as entry point for our test suites
We already install libinput-test-suite if the meson option install-tests is set, see commit be7045cdc70d8c026d981997852cc706dab3d5b8 test: make the test suite runner available as installed binary To make other tests easily available and more discoverable, add a new tool "libinput test" with the matching man page. This will also help us to enforce some of the namespacing a bit better. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Diffstat (limited to 'tools')
-rw-r--r--tools/libinput-test.c76
-rw-r--r--tools/libinput-test.man33
-rw-r--r--tools/libinput.man3
3 files changed, 112 insertions, 0 deletions
diff --git a/tools/libinput-test.c b/tools/libinput-test.c
new file mode 100644
index 00000000..aff6d561
--- /dev/null
+++ b/tools/libinput-test.c
@@ -0,0 +1,76 @@
+/*
+ * Copyright © 2017 Red Hat, Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice (including the next
+ * paragraph) shall be included in all copies or substantial portions of the
+ * Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ */
+
+#include "config.h"
+
+#include <getopt.h>
+#include <stdio.h>
+
+#include "shared.h"
+
+static inline void
+usage(void)
+{
+#if HAVE_INSTALLED_TESTS
+ printf("Usage: libinput test [--help] <feature>\n");
+#else
+ fprintf(stderr, "libinput test was disabled in the build configuration\n");
+#endif
+}
+
+int
+main(int argc, char **argv)
+{
+ int option_index = 0;
+
+ while (1) {
+ int c;
+ static struct option opts[] = {
+ { "help", no_argument, 0, 'h' },
+ { 0, 0, 0, 0}
+ };
+
+ c = getopt_long(argc, argv, "+h", opts, &option_index);
+ if (c == -1)
+ break;
+
+ switch(c) {
+ case 'h':
+ usage();
+ return EXIT_SUCCESS;
+ default:
+ usage();
+ return EXIT_FAILURE;
+ }
+ }
+
+ if (optind >= argc) {
+ usage();
+ return EXIT_FAILURE;
+ }
+
+ argc--;
+ argv++;
+
+ return tools_exec_command("libinput-test", argc, argv);
+}
diff --git a/tools/libinput-test.man b/tools/libinput-test.man
new file mode 100644
index 00000000..491a7ecd
--- /dev/null
+++ b/tools/libinput-test.man
@@ -0,0 +1,33 @@
+
+.TH libinput-test "1" "" "libinput @LIBINPUT_VERSION@" "libinput Manual"
+.SH NAME
+libinput\-test \- test various components of libinput itself
+.SH SYNOPSIS
+.B libinput test [\-\-help] \fI<feature> [<args>]\fR
+.SH DESCRIPTION
+.PP
+The
+.B "libinput test"
+tool runs tests against libinput itself. There is usually no need for a user
+to use this tool, it is provided for distribution vendors.
+@HAVE_INSTALLED_TESTS@.B This tool was disabled at build time!
+.PP
+This is a testing tool only, its output may change at any time. Do not
+rely on the output.
+.PP
+This tool may need to be run as root to have access to the
+/dev/input/eventX nodes and/or create /dev/uinput devices.
+.SH OPTIONS
+.TP 8
+.B \-\-help
+Print help
+.SH FEATURES
+Tests that can be run are
+.TP 8
+.B libinput\-test\-suite(1)
+Run the full test suite. This is the most complete set of tests to run in
+libinput.
+.SH LIBINPUT
+Part of the
+.B libinput(1)
+suite
diff --git a/tools/libinput.man b/tools/libinput.man
index 7c09dd09..effe763c 100644
--- a/tools/libinput.man
+++ b/tools/libinput.man
@@ -56,6 +56,9 @@ Replay the events from a device
.TP 8
.B libinput\-analyze(1)
Analyze events from a device
+.TP 8
+.B libinput\-test(1)
+Test libinput itself.
.SH LIBINPUT
Part of the
.B libinput(1)