Module Name: src Committed By: rillig Date: Tue Feb 20 21:45:36 UTC 2024
Modified Files: src/tests/lib/libutil: t_snprintb.c Log Message: tests/snprintb: test '=' and '*' directives that can never match To generate a diff of this commit: cvs rdiff -u -r1.24 -r1.25 src/tests/lib/libutil/t_snprintb.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/lib/libutil/t_snprintb.c diff -u src/tests/lib/libutil/t_snprintb.c:1.24 src/tests/lib/libutil/t_snprintb.c:1.25 --- src/tests/lib/libutil/t_snprintb.c:1.24 Tue Feb 20 20:31:56 2024 +++ src/tests/lib/libutil/t_snprintb.c Tue Feb 20 21:45:36 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: t_snprintb.c,v 1.24 2024/02/20 20:31:56 rillig Exp $ */ +/* $NetBSD: t_snprintb.c,v 1.25 2024/02/20 21:45:36 rillig Exp $ */ /* * Copyright (c) 2002, 2004, 2008, 2010, 2024 The NetBSD Foundation, Inc. @@ -32,7 +32,7 @@ #include <sys/cdefs.h> __COPYRIGHT("@(#) Copyright (c) 2008, 2010, 2024\ The NetBSD Foundation, inc. All rights reserved."); -__RCSID("$NetBSD: t_snprintb.c,v 1.24 2024/02/20 20:31:56 rillig Exp $"); +__RCSID("$NetBSD: t_snprintb.c,v 1.25 2024/02/20 21:45:36 rillig Exp $"); #include <stdio.h> #include <string.h> @@ -75,7 +75,9 @@ h_snprintb_loc(const char *file, size_t memset(buf, 'Z', sizeof(buf)); int rv = snprintb(buf, bufsize, bitfmt, val); - ATF_REQUIRE(rv >= 0); + ATF_CHECK_MSG(rv >= 0, "%s:%zu: unexpected rv %d", file, line, rv); + if (rv < 0) + return; size_t have_bufsize = sizeof(buf); while (have_bufsize > 0 && buf[have_bufsize - 1] == 'Z') have_bufsize--; @@ -681,6 +683,15 @@ ATF_TC_BODY(snprintb, tc) 0x3, "0x3<bit0,,bit1>"); + // new style bit-field, '=', can never match + h_snprintb( + "\177\020" + "f\000\007f\0" + "=\200never\0" + "=\377never\0", + 0xff, + "0xff<f=0x7f>"); + // new style, two separate bit-fields h_snprintb( "\177\020" @@ -763,6 +774,18 @@ ATF_TC_BODY(snprintb, tc) 0x1122, "0x1122<f=0x11=f(17),F(34)>"); + // new style bit-field default, can never match + h_snprintb( + "\177\020" + "f\010\002f\0" + "=\000zero\0" + "=\001one\0" + "=\002two\0" + "=\003three\0" + "*other\0", + 0xff00, + "0xff00<f=0x3=three>"); + // new style bit-field default, invalid conversion specifier // // There is no reliable way to make snprintf return an error, as such