mirror of
git://git.sv.gnu.org/coreutils.git
synced 2026-04-12 15:06:44 +02:00
tests: seq: check for today's extended long double fix
* tests/misc/seq-long-double: New file. Test for today's bug fix. * tests/check.mk (TESTS_ENVIRONMENT): Export CC definition. * tests/Makefile.am (TESTS): Add misc/seq-long-double. * NEWS (Bug fixes): Mention it.
This commit is contained in:
7
NEWS
7
NEWS
@@ -6,6 +6,13 @@ GNU coreutils NEWS -*- outline -*-
|
||||
|
||||
stat -f recognizes the Lustre file system type
|
||||
|
||||
** Bug fixes
|
||||
|
||||
seq 9223372036854775807 9223372036854775808 now prints only two numbers
|
||||
on systems with extended long double support and good library support.
|
||||
Even with this patch, on some systems, it still produces invalid output,
|
||||
from 3 to at least 1026 lines long. [bug introduced in coreutils-6.11]
|
||||
|
||||
** Changes in behavior
|
||||
|
||||
ls -l now marks SELinux-only files with the less obtrusive '.',
|
||||
|
||||
@@ -124,6 +124,7 @@ TESTS = \
|
||||
misc/ptx \
|
||||
misc/test \
|
||||
misc/seq \
|
||||
misc/seq-long-double \
|
||||
misc/head \
|
||||
misc/head-elide-tail \
|
||||
tail-2/tail-n0f \
|
||||
|
||||
@@ -80,6 +80,7 @@ TESTS_ENVIRONMENT = \
|
||||
top_srcdir='$(top_srcdir)' \
|
||||
CONFIG_HEADER='$(abs_top_builddir)/lib/config.h' \
|
||||
CU_TEST_NAME=`basename '$(abs_srcdir)'`,$$tst \
|
||||
CC='$(CC)' \
|
||||
AWK='$(AWK)' \
|
||||
EGREP='$(EGREP)' \
|
||||
EXEEXT='$(EXEEXT)' \
|
||||
|
||||
51
tests/misc/seq-long-double
Executable file
51
tests/misc/seq-long-double
Executable file
@@ -0,0 +1,51 @@
|
||||
#!/bin/sh
|
||||
# Test for this fix: 461231f022bdb3ee392622d31dc475034adceeb2.
|
||||
# Ensure that seq prints exactly two numbers for a 2-number integral
|
||||
# range at the limit of floating point precision.
|
||||
|
||||
# Copyright (C) 2008 Free Software Foundation, Inc.
|
||||
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation, either version 3 of the License, or
|
||||
# (at your option) any later version.
|
||||
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
if test "$VERBOSE" = yes; then
|
||||
set -x
|
||||
seq --version
|
||||
fi
|
||||
|
||||
. $srcdir/test-lib.sh
|
||||
|
||||
# Run this test only with glibc and sizeof (long double) > sizeof (double).
|
||||
# Otherwise, there are known failures:
|
||||
# http://thread.gmane.org/gmane.comp.gnu.coreutils.bugs/14939/focus=14944
|
||||
cat <<\EOF > long.c
|
||||
#include <features.h>
|
||||
#if defined __GNU_LIBRARY__ && __GLIBC__ >= 2
|
||||
int foo[sizeof (long double) - sizeof (double) - 1];
|
||||
#else
|
||||
"run this test only with glibc"
|
||||
#endif
|
||||
EOF
|
||||
$CC -c long.c \
|
||||
|| skip_test_ \
|
||||
'this test runs only on systems with glibc and long double != double'
|
||||
|
||||
a=9223372036854775807
|
||||
b=$(echo $a|sed 's/7$/8/')
|
||||
|
||||
fail=0
|
||||
seq $a $b > out || fail=1
|
||||
printf "$a\n$b\n" > exp || fail=1
|
||||
compare out exp || fail=1
|
||||
|
||||
Exit $fail
|
||||
Reference in New Issue
Block a user