Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/tests/lib/libutil Add a new test case for snprintb_m(3) to c...



details:   https://anonhg.NetBSD.org/src/rev/85e88b6d1a54
branches:  trunk
changeset: 789134:85e88b6d1a54
user:      pgoyette <pgoyette%NetBSD.org@localhost>
date:      Thu Aug 08 04:52:10 2013 +0000

description:
Add a new test case for snprintb_m(3) to catch previous boundary bug.

diffstat:

 tests/lib/libutil/t_snprintb.c |  47 +++++++++++++++++++++++++++++++++++++++--
 1 files changed, 44 insertions(+), 3 deletions(-)

diffs (78 lines):

diff -r 16ba9b33f5f6 -r 85e88b6d1a54 tests/lib/libutil/t_snprintb.c
--- a/tests/lib/libutil/t_snprintb.c    Thu Aug 08 04:32:43 2013 +0000
+++ b/tests/lib/libutil/t_snprintb.c    Thu Aug 08 04:52:10 2013 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: t_snprintb.c,v 1.1 2010/07/16 13:56:32 jmmv Exp $ */
+/* $NetBSD: t_snprintb.c,v 1.2 2013/08/08 04:52:10 pgoyette Exp $ */
 
 /*
  * Copyright (c) 2002, 2004, 2008, 2010 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 #include <sys/cdefs.h>
 __COPYRIGHT("@(#) Copyright (c) 2008, 2010\
  The NetBSD Foundation, inc. All rights reserved.");
-__RCSID("$NetBSD: t_snprintb.c,v 1.1 2010/07/16 13:56:32 jmmv Exp $");
+__RCSID("$NetBSD: t_snprintb.c,v 1.2 2013/08/08 04:52:10 pgoyette Exp $");
 
 #include <string.h>
 #include <util.h>
@@ -59,17 +59,58 @@
 ATF_TC_BODY(snprintb, tc)
 {
        h_snprintb("\10\2BITTWO\1BITONE", 3, "03<BITTWO,BITONE>");
-
+   
        h_snprintb("\177\20b\05NOTBOOT\0b\06FPP\0b\013SDVMA\0b\015VIDEO\0"
                "b\020LORES\0b\021FPA\0b\022DIAG\0b\016CACHE\0"
                "b\017IOCACHE\0b\022LOOPBACK\0b\04DBGCACHE\0",
                0xe860, "0xe860<NOTBOOT,FPP,SDVMA,VIDEO,CACHE,IOCACHE>");
 }
 
+static void
+h_snprintb_m(const char *fmt, uint64_t val, int line_max, const char *res,
+            int res_len)
+{
+       char buf[1024];
+       int len;
+
+       len = snprintb_m(buf, sizeof(buf), fmt, val, line_max);
+
+       ATF_REQUIRE_EQG(len, res_len);
+       ATF_REQUIRE_EQ(0, memcmp(res, buf, res_len + 1));
+}
+
+ATF_TC(snprintb_m);
+ATF_TC_HEAD(snprintb_m, tc)
+{
+       atf_tc_set_md_var(tc, "descr", "Checks snprintb_m(3)");
+}
+ATF_TC_BODY(snprintb_m, tc)
+{
+       h_snprintb_m("\177\020b\0LSB\0b\1_BITONE\0f\4\4NIBBLE2\0"
+                       "f\x10\4BURST\0=\4FOUR\0=\xfSIXTEEN\0"
+                       "b\x1fMSB\0\0",
+                     0x800f0701,
+                    33,
+                    "0x800f0701<LSB,NIBBLE2=0x0>\0"
+                       "0x800f0701<BURST=0xf=SIXTEEN,MSB>\0\0",
+                    62);
+
+       h_snprintb_m("\177\020b\0LSB\0b\1_BITONE\0f\4\4NIBBLE2\0"
+                       "f\x10\4BURST\0=\4FOUR\0=\xfSIXTEEN\0"
+                       "b\x1fMSB\0\0",
+                     0x800f0701,
+                    32,
+                    "0x800f0701<LSB,NIBBLE2=0x0>\0"
+                       "0x800f0701<BURST=0xf=SIXTEEN>\0"
+                       "0x800f0701<MSB>\0\0",
+                    74);
+}
+
 ATF_TP_ADD_TCS(tp)
 {
 
        ATF_TP_ADD_TC(tp, snprintb);
+       ATF_TP_ADD_TC(tp, snprintb_m);
 
        return atf_no_error();
 }



Home | Main Index | Thread Index | Old Index