diff options
Diffstat (limited to 'tests/misc/od-float.sh')
-rwxr-xr-x | tests/misc/od-float.sh | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/tests/misc/od-float.sh b/tests/misc/od-float.sh index 8a8e29b2..bbfa5704 100755 --- a/tests/misc/od-float.sh +++ b/tests/misc/od-float.sh @@ -1,7 +1,7 @@ #!/bin/sh # Test od on floating-point values. -# Copyright (C) 2010-2014 Free Software Foundation, Inc. +# Copyright (C) 2010-2015 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 @@ -29,7 +29,7 @@ export LC_ALL=C # on x86: sometimes there was no space between the columns. set x $(echo aaaabaaa | tr ab '\376\377' | od -t fF) || - framework_failure_ + fail=1 case "$*" in *0-*) fail=1;; esac @@ -38,7 +38,7 @@ case $3,$4 in esac set x $(echo aaaaaaaabaaaaaaa | tr ab '\376\377' | od -t fD) || - framework_failure_ + fail=1 case "$*" in *0-*) fail=1;; esac @@ -47,7 +47,7 @@ case $3,$4 in esac set x $(echo aaaaaaaaaaaaaaaabaaaaaaaaaaaaaaa | tr ab '\376\377' | od -t fL) || - framework_failure_ + fail=1 case "$*" in *0-*) fail=1;; esac @@ -55,4 +55,18 @@ case $3,$4 in -1.023442870282055988e+4855,-1.023442870282055988e+4855) fail=1;; esac +# Ensure od doesn't crash as it did on glibc <= 2.5: +# https://sourceware.org/bugzilla/show_bug.cgi?id=4586 +set x $(printf 00000000ff000000 | tr 0f '\000\377' | od -t fL) || fail=1 +# With coreutils <= 8.7 we used to print "nan" for the above invalid value. +# However since v8.7-22-ga71c22f we deferred to the system printf routines +# through the use of the ftoastr module. So the following check would only +# be valid on x86_64 if we again handle the conversion internally or +# if this glibc bug is resolved: +# https://sourceware.org/bugzilla/show_bug.cgi?id=17661 +#case "$*" in +#*nan*) ;; +#*) fail=1;; +#esac + Exit $fail |