The double-double mantissa precision ... it's complicated.
authorJarkko Hietaniemi <jhi@iki.fi>
Mon, 6 Oct 2014 19:36:04 +0000 (21:36 +0200)
committerJarkko Hietaniemi <jhi@iki.fi>
Mon, 6 Oct 2014 20:45:34 +0000 (22:45 +0200)
t/op/inc.t

index 6003a6c..b494af5 100644 (file)
@@ -1,8 +1,15 @@
 #!./perl -w
 
-require './test.pl';
+BEGIN {
+    chdir 't' if -d 't';
+    unshift @INC, '../lib';
+    require './test.pl';
+}
+
 use strict;
 
+use Config;
+
 # Tests of post/pre - increment/decrement operators.
 
 # Verify that addition/subtraction properly upgrade to doubles.
@@ -179,6 +186,12 @@ cmp_ok($a, '==', 2147483647, "postdecrement properly downgrades from double");
     cmp_ok($x, '==', 0, "(void) i_postdec");
 }
 
+SKIP: {
+    if ($Config{uselongdouble} &&
+        ($Config{longdblkind} == 6 || $Config{longdoublekind} == 5)) {
+        skip "the double-double format is weird", 1;
+    }
+
 # I'm sure that there's an IBM format with a 48 bit mantissa
 # IEEE doubles have a 53 bit mantissa
 # 80 bit long doubles have a 64 bit mantissa
@@ -245,6 +258,8 @@ EOC
 
 ok($found, "found a NV value which overflows the mantissa");
 
+} # SKIP
+
 # these will segfault if they fail
 
 sub PVBM () { 'foo' }