From nobody Thu Jan 1 22:21:40 2026 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4dj1Wm4G2Dz6Lpmq for ; Thu, 01 Jan 2026 22:21:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4dj1Wm0zjYz49dt for ; Thu, 01 Jan 2026 22:21:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1767306100; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TtsDXvejQRAHNZN7lGbTMPkfK12G7ON5W7VU2SemUVY=; b=BAfbtXk3Bl9rS4UGRd6hkVHgmEAslTkb6ZkDCrwyaNh0BAJ1H+AkjCTkOcW2MCKNbcVmLb 83T7A7tX0HHhDIW9lFpxVQUREqPXgPqDO6gfYPhpIMam3c7B5hBkBn/jsZuTIZg/achmk0 Vk2DgCABxVKdb2RD5umz+ipoaAEnVZZ1V4iidmH2lGtqDsFQ7rim8Z00Le5R+l2YxMCuSt m8n3GRhNg4AfO1ocNUiG/lSo2waylLBcOZNKQfkLdW8hoK+EbMMPrVGTzwY48KMBIw/v/U RqINJpqKI8dlUg5wQPdu8xgTxYRtDBK7TzVHcHhcTZ25iRTal9O1W6GE5uzUWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1767306100; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=TtsDXvejQRAHNZN7lGbTMPkfK12G7ON5W7VU2SemUVY=; b=nXGEeSUn04Q38dzWUs6BzjSuaDzbVBoJuXoqyh+Ip4kFdkv4Uu1UT3TTCJxgtcvRnbasz0 +2+MSH+Uyq0o2VCbA87jFCBfn7AZIKRjzB9pKS8Zc4gSXGypU1AxxzE4xIKmpeb8RULXEN 4fOEOGR1TAlA0zhQkOjX8/wQCJYvPvgyJ86lULRn911IHzWkm71UGY5JCkM+vH0McCYEZ+ B9z4H0J1qdRh40PHbGZ3egxhVXBHMpX2XCEYAkFt051hj/676y0BK+DMfBw62CbUjVQndZ 2ZVWCVksmH7Y+mpIbGZN3WNnqcVxbBMXgnWG9BhTlsrFBCUAHan27ds+C4H+Zw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1767306100; a=rsa-sha256; cv=none; b=ebtVecO4/uCFUSK5AQOlfNGGMZjpxFpU/ftJAZvXTzzVS3/0BNKRy9DqAcOdxCUBn/o3u4 exxJYior+qNR9/+36Ojx271wVMaAhaJwPOHuLAaSyMvwpZrd202WQd3WIhQSQiIOT4vxRc +4o2R38EDVCZ9OtgGnX9tb/U2i6QxXNug8pEGMg7DFmaOyzHan5Ueg1SC18iAfRy0AAIYb J5hufV7JqFsmdp7Yh4ZW0l0iOuu68cDDPUGWm2K7u/Ew5ds3SJPX8Xb77Gx74vzCqt2AUG 1OVbZmNwE+EE/dqiR6r9ZbjbhbOG0bnGqJn6hco1RshyQKH2weh9Y1Gau0BpCw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4dj1Wm0XhMzqZY for ; Thu, 01 Jan 2026 22:21:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id f439 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 01 Jan 2026 22:21:40 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Robert Clausecker Subject: git: 12f87885206b - stable/15 - libc/tests: add test for *_MAX, *_MIN, and *_WIDTH List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: fuz X-Git-Repository: src X-Git-Refname: refs/heads/stable/15 X-Git-Reftype: branch X-Git-Commit: 12f87885206b25b7400d447059cb207341febf92 Auto-Submitted: auto-generated Date: Thu, 01 Jan 2026 22:21:40 +0000 Message-Id: <6956f374.f439.12bfbcc8@gitrepo.freebsd.org> The branch stable/15 has been updated by fuz: URL: https://cgit.FreeBSD.org/src/commit/?id=12f87885206b25b7400d447059cb207341febf92 commit 12f87885206b25b7400d447059cb207341febf92 Author: Robert Clausecker AuthorDate: 2025-11-19 19:26:11 +0000 Commit: Robert Clausecker CommitDate: 2026-01-01 20:51:52 +0000 libc/tests: add test for *_MAX, *_MIN, and *_WIDTH This file checks the correctness of the various _MAX, _MIN, and _WIDTH macros defined for the libc types. It assumes that none of the types have padding bits. Approved by: markj (mentor) MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D53831 (cherry picked from commit 4a1c7529c96ff54657ef701fa89b92230ee6bac2) --- lib/libc/tests/gen/Makefile | 1 + lib/libc/tests/gen/limits_test.c | 101 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) diff --git a/lib/libc/tests/gen/Makefile b/lib/libc/tests/gen/Makefile index 8c2151105209..054b1b426b3d 100644 --- a/lib/libc/tests/gen/Makefile +++ b/lib/libc/tests/gen/Makefile @@ -19,6 +19,7 @@ ATF_TESTS_C+= glob2_test .if ${COMPILER_FEATURES:Mblocks} ATF_TESTS_C+= glob_blocks_test .endif +ATF_TESTS_C+= limits_test ATF_TESTS_C+= makecontext_test ATF_TESTS_C+= opendir_test ATF_TESTS_C+= popen_test diff --git a/lib/libc/tests/gen/limits_test.c b/lib/libc/tests/gen/limits_test.c new file mode 100644 index 000000000000..b4e8bf3178f1 --- /dev/null +++ b/lib/libc/tests/gen/limits_test.c @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2025 Robert Clausecker + * + * SPDX-License-Identifier: FreeBSD-2-Clause + */ + +#include +#include +#include +#include +#include + +#include + +/* if this file builds, the unit tests have passed */ +#define CHECK_STYPE(type, TYPE) \ + static_assert(sizeof(type) * CHAR_BIT == TYPE ## _WIDTH, \ + __XSTRING(TYPE) "_WIDTH wrongly defined"); \ + static_assert((1ULL << (TYPE ## _WIDTH - 1)) - 1 == TYPE ## _MAX, \ + __XSTRING(TYPE) "_MAX wrongly defined"); \ + static_assert(TYPE ## _MIN == -TYPE ## _MAX - 1, \ + __XSTRING(TYPE) "_MIN wrongly defined") +#define CHECK_UTYPE(type, TYPE) \ + static_assert(sizeof(type) * CHAR_BIT == TYPE ## _WIDTH, \ + __XSTRING(TYPE) "_WIDTH wrongly defined"); \ + static_assert((type)~0ULL == TYPE ## _MAX, \ + __XSTRING(TYPE) "_MAX wrongly defined"); + +/* primitive types */ +#ifdef __CHAR_UNSIGNED__ +CHECK_UTYPE(char, CHAR); +#else +CHECK_STYPE(char, CHAR); +#endif + +CHECK_STYPE(signed char, SCHAR); +CHECK_STYPE(short, SHRT); +CHECK_STYPE(int, INT); +CHECK_STYPE(long, LONG); +CHECK_STYPE(long long, LLONG); + +CHECK_UTYPE(unsigned char, UCHAR); +CHECK_UTYPE(unsigned short, USHRT); +CHECK_UTYPE(unsigned int, UINT); +CHECK_UTYPE(unsigned long, ULONG); +CHECK_UTYPE(unsigned long long, ULLONG); + +/* fixed-width types */ +CHECK_STYPE(int8_t, INT8); +CHECK_STYPE(int16_t, INT16); +CHECK_STYPE(int32_t, INT32); +CHECK_STYPE(int64_t, INT64); + +CHECK_UTYPE(uint8_t, UINT8); +CHECK_UTYPE(uint16_t, UINT16); +CHECK_UTYPE(uint32_t, UINT32); +CHECK_UTYPE(uint64_t, UINT64); + +CHECK_STYPE(int_least8_t, INT_LEAST8); +CHECK_STYPE(int_least16_t, INT_LEAST16); +CHECK_STYPE(int_least32_t, INT_LEAST32); +CHECK_STYPE(int_least64_t, INT_LEAST64); + +CHECK_UTYPE(uint_least8_t, UINT_LEAST8); +CHECK_UTYPE(uint_least16_t, UINT_LEAST16); +CHECK_UTYPE(uint_least32_t, UINT_LEAST32); +CHECK_UTYPE(uint_least64_t, UINT_LEAST64); + +CHECK_STYPE(int_fast8_t, INT_FAST8); +CHECK_STYPE(int_fast16_t, INT_FAST16); +CHECK_STYPE(int_fast32_t, INT_FAST32); +CHECK_STYPE(int_fast64_t, INT_FAST64); + +CHECK_UTYPE(uint_fast8_t, UINT_FAST8); +CHECK_UTYPE(uint_fast16_t, UINT_FAST16); +CHECK_UTYPE(uint_fast32_t, UINT_FAST32); +CHECK_UTYPE(uint_fast64_t, UINT_FAST64); + +/* other types */ +#if WCHAR_MIN == 0 +CHECK_UTYPE(wchar_t, WCHAR); +#else +CHECK_STYPE(wchar_t, WCHAR); +#endif +CHECK_STYPE(intmax_t, INTMAX); +CHECK_STYPE(intptr_t, INTPTR); +CHECK_STYPE(ptrdiff_t, PTRDIFF); +CHECK_STYPE(wint_t, WINT); +CHECK_STYPE(sig_atomic_t, SIG_ATOMIC); + +CHECK_UTYPE(uintmax_t, UINTMAX); +CHECK_UTYPE(uintptr_t, UINTPTR); +CHECK_UTYPE(size_t, SIZE); + +/* dummy */ +ATF_TP_ADD_TCS(tp) +{ + (void)tp; + + return (atf_no_error()); +}