1
0
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:
Jim Meyering
2008-10-25 11:34:14 +02:00
parent 2bf151cd93
commit b4ec994b26
4 changed files with 60 additions and 0 deletions

7
NEWS
View File

@@ -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 '.',

View File

@@ -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 \

View File

@@ -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
View 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