svn commit: r313379 - head/lib/libc/tests/stdio
Ngie Cooper
ngie at FreeBSD.org
Tue Feb 7 05:39:02 UTC 2017
Author: ngie
Date: Tue Feb 7 05:39:00 2017
New Revision: 313379
URL: https://svnweb.freebsd.org/changeset/base/313379
Log:
Expect :int_within_limits to fail when ptrdiff_t/*intmax_t differ in base type
The %t{d,u} (ptrdiff_t) tests fail for the following reasons:
- ptrdiff_t is by definition int32_t on !LP64 architectures and int64_t on
LP64 architectures.
- intmax_t is by definition fixed to int64_t on all architectures.
- Some of the code in lib/libc/stdio/... is promoting ptrdiff_t to *intmax_t
when parsing/representing the value.
PR: 191674
MFC after: 1 week
Sponsored by: Dell EMC Isilon
Modified:
head/lib/libc/tests/stdio/printbasic_test.c
Modified: head/lib/libc/tests/stdio/printbasic_test.c
==============================================================================
--- head/lib/libc/tests/stdio/printbasic_test.c Tue Feb 7 04:25:21 2017 (r313378)
+++ head/lib/libc/tests/stdio/printbasic_test.c Tue Feb 7 05:39:00 2017 (r313379)
@@ -111,6 +111,11 @@ ATF_TC_BODY(int_within_limits, tc)
testfmt("-1", "%jd", (intmax_t)-1);
testfmt(S_UINT64MAX, "%ju", UINT64_MAX);
+ if (sizeof(ptrdiff_t) != sizeof(uintmax_t))
+ atf_tc_expect_fail("the %%t qualifier is broken on 32-bit "
+ "platforms where there's a mismatch between ptrdiff_t and "
+ "uintmax_t's type width; bug # 191674");
+
testfmt("-1", "%td", (ptrdiff_t)-1);
testfmt(S_SIZEMAX, "%tu", (size_t)-1);
More information about the svn-src-all
mailing list