Modified a buggy test of the thousands separator.
Signed-of-by: WizardHowl <liuwenyu7@huawei.com>
This commit is contained in:
parent
748b550e57
commit
36d876e495
@ -0,0 +1,56 @@
|
||||
From 5172494c09718ffcb7ef1f19b3b211e3bce8781a Mon Sep 17 00:00:00 2001
|
||||
From: Vincent Lefevre <vincent@vinc17.net>
|
||||
Date: Tue, 10 Jan 2023 17:05:17 +0100
|
||||
Subject: [PATCH] [tests/tsprintf.c] Modified a buggy test of the thousands
|
||||
separator.
|
||||
|
||||
The test
|
||||
|
||||
check_vsprintf ("+01,234,567 :", "%0+ -'13.10Pd:", (mpfr_prec_t) 1234567);
|
||||
|
||||
is based on the output from glibc up to 2.36, which is incorrect:
|
||||
|
||||
https://sourceware.org/bugzilla/show_bug.cgi?id=23432
|
||||
|
||||
The GNU C Library has apparently been partially fixed in its Git
|
||||
repository for the future 2.37, since a tsprintf failure has been
|
||||
reported (this is a bug in this test, not in the MPFR library):
|
||||
|
||||
https://sympa.inria.fr/sympa/arc/mpfr/2023-01/msg00001.html
|
||||
|
||||
So, modified the test to avoid the particular case of leading zeros
|
||||
due to the precision field larger than the number of digits. This
|
||||
case has already been tested without the thousands separator (where
|
||||
there are no issues with the C libraries), so that we do not miss
|
||||
much testing. Added a comment explaining the issue and a possible
|
||||
solution for future testing of this particular case (if need be).
|
||||
---
|
||||
tests/tsprintf.c | 12 +++++++++++-
|
||||
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/tests/tsprintf.c b/tests/tsprintf.c
|
||||
index c68b2ba71..c0182503b 100644
|
||||
--- a/tests/tsprintf.c
|
||||
+++ b/tests/tsprintf.c
|
||||
@@ -1719,7 +1719,17 @@ test_locale (void)
|
||||
check_sprintf ("000000001,000", "%'013.4Rg", x);
|
||||
|
||||
#ifdef PRINTF_GROUPFLAG
|
||||
- check_vsprintf ("+01,234,567 :", "%0+ -'13.10Pd:", (mpfr_prec_t) 1234567);
|
||||
+ /* Do not test the thousands separator with a precision field larger
|
||||
+ than the number of digits (thus needing leading zeros), such as
|
||||
+ "%0+ -'13.10Pd:" (used up to MPFR 4.2.0), since the GNU libc is
|
||||
+ buggy: https://sourceware.org/bugzilla/show_bug.cgi?id=23432
|
||||
+ We don't know about the other implementations.
|
||||
+ If we wanted to check that and avoid a failure of the test because of
|
||||
+ a buggy C library (while MPFR would be consistent with the C library),
|
||||
+ we could compare the MPFR output with both the correct output and the
|
||||
+ output from the C library (possibly buggy). But to do that in a clean
|
||||
+ way, this would require a change in the check_vsprintf() call. */
|
||||
+ check_vsprintf ("+1,234,567 :", "%0+ -'13Pd:", (mpfr_prec_t) 1234567);
|
||||
#endif
|
||||
|
||||
mpfr_clear (x);
|
||||
--
|
||||
2.33.0
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
Name: mpfr
|
||||
Version: 4.2.0
|
||||
Release: 1
|
||||
Release: 2
|
||||
Summary: A C library for multiple-precision floating-point computations
|
||||
URL: http://www.mpfr.org/
|
||||
License: LGPLv3+ and GPLv3+ and GFDL-1.2-only
|
||||
@ -10,6 +10,8 @@ Requires: gmp >= 4.2.3
|
||||
|
||||
Source0: http://www.mpfr.org/%{name}-%{version}/%{name}-%{version}.tar.xz
|
||||
|
||||
Patch1: mpfr-tests-tsprintf.c-Modified-a-buggy-test-of-the-thousa.patch
|
||||
|
||||
%description
|
||||
MPFR is a C library for arbitrary-precision binary floating-point computation
|
||||
with correct rounding, based on Multi-Precision Library. The computation is
|
||||
@ -78,6 +80,9 @@ fi
|
||||
%{_libdir}/pkgconfig/mpfr.pc
|
||||
|
||||
%changelog
|
||||
* Fri Aug 4 2023 Wenyu Liu<liuwenyu7@huawei.com> - 4.2.0-2
|
||||
- Modified a buggy test of the thousands separator.
|
||||
|
||||
* Fri Aug 4 2023 Wenyu Liu<liuwenyu7@huawei.com> - 4.2.0-1
|
||||
- update to 4.2.0
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user