In perl.git, the branch blead has been updated <http://perl5.git.perl.org/perl.git/commitdiff/3dfaac447d030f911d146c3ae56b9dba63ce9dd4?hp=c81114d2b6e9ca2fa098dbdac89edfaca24540f9>
- Log ----------------------------------------------------------------- commit 3dfaac447d030f911d146c3ae56b9dba63ce9dd4 Author: Nicholas Clark <[email protected]> Date: Sat Mar 12 00:03:40 2011 +0000 11883c88c2a3bf14 introduced an error in 64bitint.t with long doubles. On a platform where an NV is long enough to preserve all UVs, division is always done in floating point. Hence the result may become stringified in E notation. Hence testing that it is not in E notation (as a testing proxy for "was integer arithmetic used?") is inappropriate on such a platform. ----------------------------------------------------------------------- Summary of changes: t/op/64bitint.t | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/t/op/64bitint.t b/t/op/64bitint.t index e4296f2..168d597 100644 --- a/t/op/64bitint.t +++ b/t/op/64bitint.t @@ -14,6 +14,7 @@ BEGIN { # 32+ bit integers don't cause noise use warnings; no warnings qw(overflow portable); +use Config; # as 6 * 6 = 36, the last digit of 6**n will always be six. Hence the last # digit of 16**n will always be six. Hence 16**n - 1 will always end in 5. @@ -314,6 +315,8 @@ cmp_ok($q, '==', 0x5555555555555555); SKIP: { skip("Maths does not preserve UVs", 2) unless $maths_preserves_UVs; cmp_ok($q, '!=', 0x5555555555555556); + skip("All UV division is precise as NVs, so is done as NVs", 1) + if $Config{d_nv_preserves_uv}; unlike($q, qr/[e.]/); } -- Perl5 Master Repository
