diff options
-rw-r--r-- | regress/lib/libusbhid/Makefile | 7 | ||||
-rw-r--r-- | regress/lib/libusbhid/usage/Makefile | 25 | ||||
-rw-r--r-- | regress/lib/libusbhid/usage/parsetest.c | 50 | ||||
-rw-r--r-- | regress/lib/libusbhid/usage/runparse.sh | 32 |
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 + |