Module Name:    src
Committed By:   jakllsch
Date:           Tue Jan  5 17:22:39 UTC 2016

Modified Files:
        src/distrib/sets/lists/debug: mi
        src/distrib/sets/lists/tests: mi
        src/etc/mtree: NetBSD.dist.tests
        src/tests/dev: Makefile
Added Files:
        src/tests/dev/usb: Makefile t_hid.c
        src/tests/dev/usb/libhid: Makefile

Log Message:
Add some tests for the kernel HID parser.


To generate a diff of this commit:
cvs rdiff -u -r1.139 -r1.140 src/distrib/sets/lists/debug/mi
cvs rdiff -u -r1.658 -r1.659 src/distrib/sets/lists/tests/mi
cvs rdiff -u -r1.123 -r1.124 src/etc/mtree/NetBSD.dist.tests
cvs rdiff -u -r1.9 -r1.10 src/tests/dev/Makefile
cvs rdiff -u -r0 -r1.1 src/tests/dev/usb/Makefile src/tests/dev/usb/t_hid.c
cvs rdiff -u -r0 -r1.1 src/tests/dev/usb/libhid/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/distrib/sets/lists/debug/mi
diff -u src/distrib/sets/lists/debug/mi:1.139 src/distrib/sets/lists/debug/mi:1.140
--- src/distrib/sets/lists/debug/mi:1.139	Fri Jan  1 21:38:53 2016
+++ src/distrib/sets/lists/debug/mi	Tue Jan  5 17:22:38 2016
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.139 2016/01/01 21:38:53 jakllsch Exp $
+# $NetBSD: mi,v 1.140 2016/01/05 17:22:38 jakllsch Exp $
 ./etc/mtree/set.debug                           comp-sys-root
 ./usr/lib					comp-sys-usr		compatdir
 ./usr/lib/i18n/libBIG5_g.a			comp-c-debuglib		debuglib,compatfile
@@ -1579,6 +1579,7 @@
 ./usr/libdata/debug/usr/tests/dev/md/h_mdserv.debug					tests-fs-debug	debug,atf,rump
 ./usr/libdata/debug/usr/tests/dev/scsipi/t_cd.debug			tests-fs-debug		debug,atf,rump
 ./usr/libdata/debug/usr/tests/dev/sysmon/t_swwdog.debug			tests-fs-debug		debug,atf,rump
+./usr/libdata/debug/usr/tests/dev/usb/t_hid.debug			tests-fs-debug		debug,atf,rump
 ./usr/libdata/debug/usr/tests/fs/ffs/h_ffs_server.debug			tests-fs-debug		debug,atf,rump
 ./usr/libdata/debug/usr/tests/fs/ffs/h_quota2_server.debug		tests-obsolete		obsolete,compattestfile
 ./usr/libdata/debug/usr/tests/fs/ffs/h_quota2_tests.debug		tests-fs-debug		debug,atf,rump

Index: src/distrib/sets/lists/tests/mi
diff -u src/distrib/sets/lists/tests/mi:1.658 src/distrib/sets/lists/tests/mi:1.659
--- src/distrib/sets/lists/tests/mi:1.658	Fri Jan  1 21:38:54 2016
+++ src/distrib/sets/lists/tests/mi	Tue Jan  5 17:22:38 2016
@@ -1,4 +1,4 @@
-# $NetBSD: mi,v 1.658 2016/01/01 21:38:54 jakllsch Exp $
+# $NetBSD: mi,v 1.659 2016/01/05 17:22:38 jakllsch Exp $
 #
 # Note: don't delete entries from here - mark them as "obsolete" instead.
 #
@@ -29,6 +29,7 @@
 ./usr/libdata/debug/usr/tests/dev/md					tests-fs-debug		compattestfile,atf
 ./usr/libdata/debug/usr/tests/dev/scsipi				tests-fs-debug		compattestfile,atf
 ./usr/libdata/debug/usr/tests/dev/sysmon				tests-fs-debug		compattestfile,atf
+./usr/libdata/debug/usr/tests/dev/usb				tests-fs-debug		compattestfile,atf
 ./usr/libdata/debug/usr/tests/fs					tests-fs-debug		compattestfile,atf
 ./usr/libdata/debug/usr/tests/fs/ffs					tests-fs-debug		compattestfile,atf
 ./usr/libdata/debug/usr/tests/fs/fifofs					tests-fs-debug		compattestfile,atf
@@ -1372,6 +1373,10 @@
 ./usr/tests/dev/sysmon/Kyuafile			tests-fs-tests		atf,rump,kyua
 ./usr/tests/dev/sysmon/t_swsensor		tests-fs-tests		atf,rump
 ./usr/tests/dev/sysmon/t_swwdog			tests-fs-tests		atf,rump
+./usr/tests/dev/usb				tests-fs-tests		compattestfile,atf
+./usr/tests/dev/usb/Atffile			tests-fs-tests		atf,rump
+./usr/tests/dev/usb/Kyuafile			tests-fs-tests		atf,rump,kyua
+./usr/tests/dev/usb/t_hid			tests-fs-tests		atf,rump
 ./usr/tests/examples				tests-obsolete		obsolete
 ./usr/tests/examples/Atffile			tests-obsolete		obsolete
 ./usr/tests/examples/t_asm			tests-obsolete		obsolete

Index: src/etc/mtree/NetBSD.dist.tests
diff -u src/etc/mtree/NetBSD.dist.tests:1.123 src/etc/mtree/NetBSD.dist.tests:1.124
--- src/etc/mtree/NetBSD.dist.tests:1.123	Fri Jan  1 21:38:54 2016
+++ src/etc/mtree/NetBSD.dist.tests	Tue Jan  5 17:22:38 2016
@@ -1,4 +1,4 @@
-#	$NetBSD: NetBSD.dist.tests,v 1.123 2016/01/01 21:38:54 jakllsch Exp $
+#	$NetBSD: NetBSD.dist.tests,v 1.124 2016/01/05 17:22:38 jakllsch Exp $
 
 ./usr/libdata/debug/usr/tests
 ./usr/libdata/debug/usr/tests/atf
@@ -20,6 +20,7 @@
 ./usr/libdata/debug/usr/tests/dev/md
 ./usr/libdata/debug/usr/tests/dev/scsipi
 ./usr/libdata/debug/usr/tests/dev/sysmon
+./usr/libdata/debug/usr/tests/dev/usb
 ./usr/libdata/debug/usr/tests/fs
 ./usr/libdata/debug/usr/tests/fs/ffs
 ./usr/libdata/debug/usr/tests/fs/fifofs
@@ -189,6 +190,7 @@
 ./usr/tests/dev/raidframe
 ./usr/tests/dev/scsipi
 ./usr/tests/dev/sysmon
+./usr/tests/dev/usb
 ./usr/tests/fs
 ./usr/tests/fs/cd9660
 ./usr/tests/fs/ffs

Index: src/tests/dev/Makefile
diff -u src/tests/dev/Makefile:1.9 src/tests/dev/Makefile:1.10
--- src/tests/dev/Makefile:1.9	Mon Jun 22 00:05:23 2015
+++ src/tests/dev/Makefile	Tue Jan  5 17:22:38 2016
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.9 2015/06/22 00:05:23 matt Exp $
+#	$NetBSD: Makefile,v 1.10 2016/01/05 17:22:38 jakllsch Exp $
 #
 
 .include <bsd.own.mk>
@@ -7,7 +7,7 @@ TESTSDIR=	${TESTSBASE}/dev
 
 TESTS_SUBDIRS+=	cgd raidframe
 .if (${MKRUMP} != "no") && !defined(BSD_MK_COMPAT_FILE) 
-TESTS_SUBDIRS+=	audio md scsipi sysmon
+TESTS_SUBDIRS+=	audio md scsipi sysmon usb
 .endif
 
 

Added files:

Index: src/tests/dev/usb/Makefile
diff -u /dev/null src/tests/dev/usb/Makefile:1.1
--- /dev/null	Tue Jan  5 17:22:39 2016
+++ src/tests/dev/usb/Makefile	Tue Jan  5 17:22:38 2016
@@ -0,0 +1,22 @@
+#	$NetBSD: Makefile,v 1.1 2016/01/05 17:22:38 jakllsch Exp $
+#
+
+.include <bsd.own.mk>
+
+TESTSDIR=	${TESTSBASE}/dev/usb
+
+TESTS_C=	t_hid
+
+CPPFLAGS.t_hid.c=	-I${.CURDIR}/../../../sys/dev/usb
+
+SUBDIR=	libhid
+LIBHIDDIR!= cd ${.CURDIR}/libhid && ${PRINTOBJDIR}
+LDFLAGS.t_hid+= -L${LIBHIDDIR}
+LDADD.t_hid+= -Wl,--whole-archive -lrumpdev_hid -Wl,--no-whole-archive
+
+LDADD+= -lrump
+LDADD+= -lrumpuser
+LDADD+= -lrump
+LDADD+= -lpthread
+
+.include <bsd.test.mk>
Index: src/tests/dev/usb/t_hid.c
diff -u /dev/null src/tests/dev/usb/t_hid.c:1.1
--- /dev/null	Tue Jan  5 17:22:39 2016
+++ src/tests/dev/usb/t_hid.c	Tue Jan  5 17:22:38 2016
@@ -0,0 +1,210 @@
+/*	$NetBSD: t_hid.c,v 1.1 2016/01/05 17:22:38 jakllsch Exp $	*/
+
+/*
+ * Copyright (c) 2016 Jonathan A. Kollasch
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/cdefs.h>
+__RCSID("$NetBSD: t_hid.c,v 1.1 2016/01/05 17:22:38 jakllsch Exp $");
+
+#include <machine/types.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdio.h>
+#include <atf-c.h>
+#define hid_start_parse rumpns_hid_start_parse
+#define hid_end_parse rumpns_hid_end_parse
+#define hid_get_item rumpns_hid_get_item
+#define hid_locate rumpns_hid_locate
+#define hid_report_size rumpns_hid_report_size
+#define hid_get_data rumpns_hid_get_data
+#define hid_get_udata rumpns_hid_get_udata
+#define uhidevdebug rumpns_uhidevdebug
+#include <hid.h>
+
+#include "../../lib/libusbhid/hid_test_data.c"
+
+#define MYd_ATF_CHECK_EQ(d, v) \
+	ATF_CHECK_EQ_MSG(d, v, "== %d", (d))
+
+#define MYld_ATF_CHECK_EQ(d, v) \
+	ATF_CHECK_EQ_MSG(d, v, "== %ld", (d))
+
+#define MYu_ATF_CHECK_EQ(d, v) \
+	ATF_CHECK_EQ_MSG(d, v, "== %u", (d))
+
+#define MYlu_ATF_CHECK_EQ(d, v) \
+	ATF_CHECK_EQ_MSG(d, v, "== %lu", (d))
+
+#define MYx_ATF_CHECK_EQ(d, v) \
+	ATF_CHECK_EQ_MSG(d, v, "== 0x%x", (d))
+
+#define MYlx_ATF_CHECK_EQ(d, v) \
+	ATF_CHECK_EQ_MSG(d, v, "== 0x%lx", (d))
+
+int uhidevdebug;
+
+ATF_TC(khid);
+
+ATF_TC_HEAD(khid, tc)
+{
+
+        atf_tc_set_md_var(tc, "descr", "check kernel hid.c");
+}
+
+ATF_TC_BODY(khid, tc)
+{
+	int ret;
+	struct hid_item hi;
+	u_int32_t flags;
+
+	uhidevdebug = 0;
+
+	atf_tc_expect_fail("logical/physical range appears broken");
+
+	ret = hid_locate(range_test_report_descriptor,
+	    sizeof(range_test_report_descriptor), 0xff000003, 0, hid_input,
+	    &hi.loc, &flags);
+	ATF_REQUIRE(ret > 0);
+	MYu_ATF_CHECK_EQ(hi.loc.size, 32);
+	MYu_ATF_CHECK_EQ(hi.loc.count, 1);
+	MYu_ATF_CHECK_EQ(hi.loc.pos, 0);
+	MYx_ATF_CHECK_EQ(flags, 0);
+	MYd_ATF_CHECK_EQ(hi.logical_minimum, -2147483648);
+	MYd_ATF_CHECK_EQ(hi.logical_maximum, 2147483647);
+	MYd_ATF_CHECK_EQ(hi.physical_minimum, -2147483648);
+	MYd_ATF_CHECK_EQ(hi.physical_maximum, 2147483647);
+	MYld_ATF_CHECK_EQ(hid_get_data(range_test_minimum_report,
+	    &hi.loc), -2147483648);
+	MYld_ATF_CHECK_EQ(hid_get_data(range_test_negative_one_report,
+	    &hi.loc), -1);
+	MYld_ATF_CHECK_EQ(hid_get_data(range_test_positive_one_report,
+	    &hi.loc), 1);
+	MYld_ATF_CHECK_EQ(hid_get_data(range_test_maximum_report,
+	    &hi.loc), 2147483647);
+
+	ret = hid_locate(range_test_report_descriptor,
+	    sizeof(range_test_report_descriptor), 0xff000002, 0, hid_input,
+	    &hi.loc, &flags);
+	ATF_REQUIRE(ret > 0);
+	MYu_ATF_CHECK_EQ(hi.loc.size, 16);
+	MYu_ATF_CHECK_EQ(hi.loc.count, 1);
+	MYu_ATF_CHECK_EQ(hi.loc.pos, 32);
+	MYx_ATF_CHECK_EQ(flags, 0);
+	MYd_ATF_CHECK_EQ(hi.logical_minimum, -32768);
+	MYd_ATF_CHECK_EQ(hi.logical_maximum, 32767);
+	MYd_ATF_CHECK_EQ(hi.physical_minimum, -32768);
+	MYd_ATF_CHECK_EQ(hi.physical_maximum, 32767);
+	MYld_ATF_CHECK_EQ(hid_get_data(range_test_minimum_report,
+	    &hi.loc), -32768);
+	MYld_ATF_CHECK_EQ(hid_get_data(range_test_negative_one_report,
+	    &hi.loc), -1);
+	MYld_ATF_CHECK_EQ(hid_get_data(range_test_positive_one_report,
+	    &hi.loc), 1);
+	MYld_ATF_CHECK_EQ(hid_get_data(range_test_maximum_report,
+	    &hi.loc), 32767);
+
+	ret = hid_locate(range_test_report_descriptor,
+	    sizeof(range_test_report_descriptor), 0xff000001, 0, hid_input,
+	    &hi.loc, &flags);
+	ATF_REQUIRE(ret > 0);
+	MYu_ATF_CHECK_EQ(hi.loc.size, 8);
+	MYu_ATF_CHECK_EQ(hi.loc.count, 1);
+	MYu_ATF_CHECK_EQ(hi.loc.pos, 48);
+	MYx_ATF_CHECK_EQ(flags, 0);
+	MYd_ATF_CHECK_EQ(hi.logical_minimum, -128);
+	MYd_ATF_CHECK_EQ(hi.logical_maximum, 127);
+	MYd_ATF_CHECK_EQ(hi.physical_minimum, -128);
+	MYd_ATF_CHECK_EQ(hi.physical_maximum, 127);
+	MYld_ATF_CHECK_EQ(hid_get_data(range_test_minimum_report,
+	    &hi.loc), -128);
+	MYld_ATF_CHECK_EQ(hid_get_data(range_test_negative_one_report,
+	    &hi.loc), -1);
+	MYld_ATF_CHECK_EQ(hid_get_data(range_test_positive_one_report,
+	    &hi.loc), 1);
+	MYld_ATF_CHECK_EQ(hid_get_data(range_test_maximum_report,
+	    &hi.loc), 127);
+
+
+	ret = hid_locate(unsigned_range_test_report_descriptor,
+	    sizeof(unsigned_range_test_report_descriptor), 0xff000013, 0,
+	    hid_input, &hi.loc, &flags);
+	ATF_REQUIRE(ret > 0);
+	MYu_ATF_CHECK_EQ(hi.loc.size, 32);
+	MYu_ATF_CHECK_EQ(hi.loc.count, 1);
+	MYu_ATF_CHECK_EQ(hi.loc.pos, 0);
+	MYx_ATF_CHECK_EQ(flags, 0);
+	MYlx_ATF_CHECK_EQ(hid_get_udata(unsigned_range_test_minimum_report,
+	    &hi.loc), 0x0);
+	MYlx_ATF_CHECK_EQ(hid_get_udata(unsigned_range_test_positive_one_report,
+	    &hi.loc), 0x1);
+	MYlx_ATF_CHECK_EQ(hid_get_udata(unsigned_range_test_negative_one_report,
+	    &hi.loc), 0xfffffffe);
+	MYlx_ATF_CHECK_EQ(hid_get_udata(unsigned_range_test_maximum_report,
+	    &hi.loc), 0xffffffff);
+
+	ret = hid_locate(unsigned_range_test_report_descriptor,
+	    sizeof(unsigned_range_test_report_descriptor), 0xff000012, 0,
+	    hid_input, &hi.loc, &flags);
+	ATF_REQUIRE(ret > 0);
+	MYu_ATF_CHECK_EQ(hi.loc.size, 16);
+	MYu_ATF_CHECK_EQ(hi.loc.count, 1);
+	MYu_ATF_CHECK_EQ(hi.loc.pos, 32);
+	MYx_ATF_CHECK_EQ(flags, 0);
+	MYlx_ATF_CHECK_EQ(hid_get_udata(unsigned_range_test_minimum_report,
+	    &hi.loc), 0x0);
+	MYlx_ATF_CHECK_EQ(hid_get_udata(unsigned_range_test_positive_one_report,
+	    &hi.loc), 0x1);
+	MYlx_ATF_CHECK_EQ(hid_get_udata(unsigned_range_test_negative_one_report,
+	    &hi.loc), 0xfffe);
+	MYlx_ATF_CHECK_EQ(hid_get_udata(unsigned_range_test_maximum_report,
+	    &hi.loc), 0xffff);
+
+	ret = hid_locate(unsigned_range_test_report_descriptor,
+	    sizeof(unsigned_range_test_report_descriptor), 0xff000011, 0,
+	    hid_input, &hi.loc, &flags);
+	ATF_REQUIRE(ret > 0);
+	MYu_ATF_CHECK_EQ(hi.loc.size, 8);
+	MYu_ATF_CHECK_EQ(hi.loc.count, 1);
+	MYu_ATF_CHECK_EQ(hi.loc.pos, 48);
+	MYx_ATF_CHECK_EQ(flags, 0);
+	MYlx_ATF_CHECK_EQ(hid_get_udata(unsigned_range_test_minimum_report,
+	    &hi.loc), 0x0);
+	MYlx_ATF_CHECK_EQ(hid_get_udata(unsigned_range_test_positive_one_report,
+	    &hi.loc), 0x1);
+	MYlx_ATF_CHECK_EQ(hid_get_udata(unsigned_range_test_negative_one_report,
+	    &hi.loc), 0xfe);
+	MYlx_ATF_CHECK_EQ(hid_get_udata(unsigned_range_test_maximum_report,
+	    &hi.loc), 0xff);
+}
+
+ATF_TP_ADD_TCS(tp)
+{
+
+        ATF_TP_ADD_TC(tp, khid);
+
+	return atf_no_error();
+}
+

Index: src/tests/dev/usb/libhid/Makefile
diff -u /dev/null src/tests/dev/usb/libhid/Makefile:1.1
--- /dev/null	Tue Jan  5 17:22:39 2016
+++ src/tests/dev/usb/libhid/Makefile	Tue Jan  5 17:22:39 2016
@@ -0,0 +1,16 @@
+#	$NetBSD: Makefile,v 1.1 2016/01/05 17:22:39 jakllsch Exp $
+#
+
+.include <bsd.own.mk>
+
+RUMPTOP= ${NETBSDSRCDIR}/sys/rump
+.PATH:	${.CURDIR}/../../../../sys/dev/usb
+
+LIB=	rumpdev_hid
+LIBISPRIVATE= #defined
+
+SRCS=	hid.c
+
+.include "${RUMPTOP}/Makefile.rump"
+.include <bsd.lib.mk>
+.include <bsd.klinks.mk>

Reply via email to