Module Name:    src
Committed By:   jruoho
Date:           Thu Mar 24 07:37:05 UTC 2011

Modified Files:
        src/tests/include/sys: t_bitops.c

Log Message:
Add also a basic, naive, test for fast_divide32(3).


To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.3 src/tests/include/sys/t_bitops.c

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

Modified files:

Index: src/tests/include/sys/t_bitops.c
diff -u src/tests/include/sys/t_bitops.c:1.2 src/tests/include/sys/t_bitops.c:1.3
--- src/tests/include/sys/t_bitops.c:1.2	Thu Mar 24 07:06:34 2011
+++ src/tests/include/sys/t_bitops.c	Thu Mar 24 07:37:04 2011
@@ -1,4 +1,4 @@
-/*	$NetBSD: t_bitops.c,v 1.2 2011/03/24 07:06:34 jruoho Exp $ */
+/*	$NetBSD: t_bitops.c,v 1.3 2011/03/24 07:37:04 jruoho Exp $ */
 
 /*-
  * Copyright (c) 2011 The NetBSD Foundation, Inc.
@@ -59,6 +59,42 @@
 
 };
 
+ATF_TC(fast_divide32);
+ATF_TC_HEAD(fast_divide32, tc)
+{
+	atf_tc_set_md_var(tc, "descr", "A basic test of fast_divide32(3)");
+}
+
+ATF_TC_BODY(fast_divide32, tc)
+{
+	uint32_t a, b, q, r, m;
+	uint8_t i, s1, s2;
+
+	a = 0xFFFF;
+	b = 0x000F;
+
+	fast_divide32_prepare(b, &m, &s1, &s2);
+
+	q = fast_divide32(a, b, m, s1, s2);
+	r = fast_remainder32(a, b, m, s1, s2);
+
+	ATF_REQUIRE(q == 0x1111 && r == 0);
+
+	for (i = 1; i < __arraycount(bits); i++) {
+
+		a = bits[i].val;
+		b = bits[i].ffs;
+
+		fast_divide32_prepare(b, &m, &s1, &s2);
+
+		q = fast_divide32(a, b, m, s1, s2);
+		r = fast_remainder32(a, b, m, s1, s2);
+
+		ATF_REQUIRE(q == a / b);
+		ATF_REQUIRE(r == a % b);
+	}
+}
+
 ATF_TC(ffsfls);
 ATF_TC_HEAD(ffsfls, tc)
 {
@@ -140,6 +176,7 @@
 ATF_TP_ADD_TCS(tp)
 {
 
+	ATF_TP_ADD_TC(tp, fast_divide32);
 	ATF_TP_ADD_TC(tp, ffsfls);
 	ATF_TP_ADD_TC(tp, ilog2_1);
 	ATF_TP_ADD_TC(tp, ilog2_2);

Reply via email to