Merged revisions 76176 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r76176 | mark.dickinson | 2009-11-09 17:03:34 +0000 (Mon, 09 Nov 2009) | 7 lines

  Issue #7251: Break out round tests for large values into a separate
  test function, and skip that test on Linux/alpha systems with a broken
  system round function.

  This should turn the Debian/alpha buildbot green.
........
This commit is contained in:
Mark Dickinson 2009-11-09 17:12:30 +00:00
parent b087268217
commit ad731b9af9
1 changed files with 22 additions and 0 deletions

View File

@ -1,5 +1,6 @@
# Python test set -- built-in functions # Python test set -- built-in functions
import platform
import test.support, unittest import test.support, unittest
from test.support import fcmp, TESTFN, unlink, run_unittest, \ from test.support import fcmp, TESTFN, unlink, run_unittest, \
run_with_locale run_with_locale
@ -1123,6 +1124,27 @@ class BuiltinTest(unittest.TestCase):
self.assertRaises(TypeError, round, t) self.assertRaises(TypeError, round, t)
self.assertRaises(TypeError, round, t, 0) self.assertRaises(TypeError, round, t, 0)
# Some versions of glibc for alpha have a bug that affects
# float -> integer rounding (floor, ceil, rint, round) for
# values in the range [2**52, 2**53). See:
#
# http://sources.redhat.com/bugzilla/show_bug.cgi?id=5350
#
# We skip this test on Linux/alpha if it would fail.
linux_alpha = (platform.system().startswith('Linux') and
platform.machine().startswith('alpha'))
system_round_bug = round(5e15+1) != 5e15+1
@unittest.skipIf(linux_alpha and system_round_bug,
"test will fail; failure is probably due to a "
"buggy system round function")
def test_round_large(self):
# Issue #1869: integral floats should remain unchanged
self.assertEqual(round(5e15-1), 5e15-1)
self.assertEqual(round(5e15), 5e15)
self.assertEqual(round(5e15+1), 5e15+1)
self.assertEqual(round(5e15+2), 5e15+2)
self.assertEqual(round(5e15+3), 5e15+3)
def test_setattr(self): def test_setattr(self):
setattr(sys, 'spam', 1) setattr(sys, 'spam', 1)
self.assertEqual(sys.spam, 1) self.assertEqual(sys.spam, 1)