Fix test failure on 5.8.x with DBIC_TRACE=1 (introduced by 68b8ba54)
[dbsrgits/DBIx-Class.git] / t / 752sqlite.t
index 1c4e7c7..c07327e 100644 (file)
@@ -179,7 +179,6 @@ for my $bi ( qw(
   1
   2
 
-  -9223372036854775808
   -9223372036854775807
   -8694837494948124658
   -6848440844435891639
@@ -214,6 +213,15 @@ for my $bi ( qw(
   $sqlite_broken_bigint
     ? ()
     : ( '2147483648', '2147483649' )
+  ,
+
+  # with newer compilers ( gcc 4.9+ ) older DBD::SQLite does not
+  # play well with the "Most Negative Number"
+  modver_gt_or_eq( 'DBD::SQLite', '1.33' )
+    ? ( '-9223372036854775808' )
+    : ()
+  ,
+
 ) {
   # unsigned 32 bit ints have a range of −2,147,483,648 to 2,147,483,647
   # alternatively expressed as the hexadecimal numbers below
@@ -245,7 +253,7 @@ for my $bi ( qw(
   eval {
     $row = $schema->resultset('BigIntArtist')->create({ bigint => $bi });
   } or do {
-    fail("Exception on inserting $v_desc") unless $sqlite_broken_bigint;
+    fail("Exception on inserting $v_desc: $@") unless $sqlite_broken_bigint;
     next;
   };
 
@@ -271,11 +279,6 @@ for my $bi ( qw(
     "value in database correct ($v_desc)"
   );
 
-# FIXME - temporary smoke-only escape
-SKIP: {
-  skip 'Potential for false negatives - investigation pending', 1
-    if DBICTest::RunMode->is_plain;
-
   # check if math works
   # start by adding/subtracting a 50 bit integer, and then divide by 2 for good measure
   my ($sqlop, $expect) = $bi < 0
@@ -309,8 +312,6 @@ SKIP: {
     , "simple integer math with@{[ $dtype ? '' : 'out' ]} bindtype in database correct (base $v_desc)")
       or diag sprintf '%s != %s', $row->bigint, $expect;
   }
-# end of fixme
-}
 
   is_deeply (\@w, [], "No mismatch warnings on bigint operations ($v_desc)" );