summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--regress/lib/libusbhid/Makefile7
-rw-r--r--regress/lib/libusbhid/usage/Makefile25
-rw-r--r--regress/lib/libusbhid/usage/parsetest.c50
-rw-r--r--regress/lib/libusbhid/usage/runparse.sh32
4 files changed, 114 insertions, 0 deletions
diff --git a/regress/lib/libusbhid/Makefile b/regress/lib/libusbhid/Makefile
new file mode 100644
index 00000000000..84ade84ba04
--- /dev/null
+++ b/regress/lib/libusbhid/Makefile
@@ -0,0 +1,7 @@
+# $OpenBSD: Makefile,v 1.1 2018/07/09 09:03:29 mpi Exp $
+
+SUBDIR+= usage
+
+install:
+
+.include <bsd.subdir.mk>
diff --git a/regress/lib/libusbhid/usage/Makefile b/regress/lib/libusbhid/usage/Makefile
new file mode 100644
index 00000000000..d2c563c3fa8
--- /dev/null
+++ b/regress/lib/libusbhid/usage/Makefile
@@ -0,0 +1,25 @@
+# $OpenBSD: Makefile,v 1.1 2018/07/09 09:03:29 mpi Exp $
+
+LDADD= -lusbhid
+DPADD= ${LIBUSBHID}
+WARNINGS= Yes
+CFLAGS+= -Werror
+
+
+PROG= parsetest
+REGRESS_TARGETS+= run-regress-${PROG}-hex
+REGRESS_TARGETS+= run-regress-${PROG}-dec
+REGRESS_TARGETS+= run-regress-${PROG}-static
+
+.include <bsd.regress.mk>
+
+# hextest is commented in runparse.sh
+run-regress-${PROG}-hex: ${PROG}
+ sh ${.CURDIR}/runparse.sh hex "100002 100012"
+
+run-regress-${PROG}-dec: ${PROG}
+ sh ${.CURDIR}/runparse.sh dec "90002 A0002 810002"
+
+run-regress-${PROG}-static: ${PROG}
+ sh ${.CURDIR}/runparse.sh static "B0002 D0002 820012"
+
diff --git a/regress/lib/libusbhid/usage/parsetest.c b/regress/lib/libusbhid/usage/parsetest.c
new file mode 100644
index 00000000000..15c7036d2f7
--- /dev/null
+++ b/regress/lib/libusbhid/usage/parsetest.c
@@ -0,0 +1,50 @@
+/* $OpenBSD: parsetest.c,v 1.1 2018/07/09 09:03:29 mpi Exp $ */
+/*
+ * Copyright (c) 2018 David Bern <david.ml.bern@gmail.com>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, 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 <dev/usb/usb.h>
+#include <dev/usb/usbhid.h>
+
+#include <err.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <usbhid.h>
+
+int
+main(int argc, char *argv[])
+{
+ char *table = NULL;
+ char usage[1024];
+ int testval;
+ const char *errstr;
+
+ if (hid_start(table) == -1)
+ errx(1, "\nUnable to load table");
+
+ /* No args given, just test if able to load table */
+ if (argc < 2)
+ return 0;
+
+ testval = strtonum(argv[1], 0x0, 0xFFFFFFFF, &errstr);
+ if (errstr != NULL)
+ errx(1, "\nInvalid argument");
+
+ snprintf(usage, sizeof(usage), "%s:%s",
+ hid_usage_page(HID_PAGE(testval)),
+ hid_usage_in_page(testval));
+
+ return (hid_parse_usage_in_page(usage) != testval);
+}
diff --git a/regress/lib/libusbhid/usage/runparse.sh b/regress/lib/libusbhid/usage/runparse.sh
new file mode 100644
index 00000000000..b9d418d72ba
--- /dev/null
+++ b/regress/lib/libusbhid/usage/runparse.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+# $OpenBSD: runparse.sh,v 1.1 2018/07/09 09:03:29 mpi Exp $
+
+run() {
+ for i in $* ; do
+ ./parsetest $(echo "ibase=16; $i" | bc)
+ if [ $? -ne 0 ]
+ then
+ printf "\nFailed on 0x%s\n" "$i"
+ return 1
+ fi
+ printf " $i"
+ done
+ printf "\n"
+ return 0
+}
+
+case $1 in
+ hex)
+ printf "Unable to handle %%x format names - DISABLED\n"
+ # run $2
+ exit 0 ;;
+ dec)
+ printf "Testing %%d & %%u format names"
+ run $2
+ exit $? ;;
+ static)
+ printf "Testing staticly named usage names"
+ run $2
+ exit $? ;;
+esac
+