better DT inflation for Firebird and _ping
[dbsrgits/DBIx-Class.git] / t / 750firebird.t
index a1cecad..0c98f95 100644 (file)
@@ -24,12 +24,14 @@ my @info = (
 
 my $schema;
 
-foreach my $info (@info) {
-  my ($dsn, $user, $pass) = @$info;
+foreach my $conn_idx (0..1) {
+  my ($dsn, $user, $pass) = @{ $info[$conn_idx] };
 
   next unless $dsn;
 
-  $schema = DBICTest::Schema->connect($dsn, $user, $pass);
+  $schema = DBICTest::Schema->connect($dsn, $user, $pass, {
+    auto_savepoint => 1
+  });
   my $dbh = $schema->storage->dbh;
 
   my $sg = Scope::Guard->new(\&cleanup);
@@ -63,6 +65,24 @@ EOF
   my $new = $ars->create({ name => 'foo' });
   ok($new->artistid, "Auto-PK worked");
 
+# test savepoints
+#  eval {
+#    $schema->txn_do(sub {
+#      eval {
+#        $schema->txn_do(sub {
+#          $ars->create({ name => 'in_savepoint' });
+#          die "rolling back savepoint";
+#        });
+#      };
+#      ok ((not $ars->search({ name => 'in_savepoint' })->first),
+#        'savepoint rolled back');
+#      $ars->create({ name => 'in_outer_txn' });
+#      die "rolling back outer txn";
+#    });
+#  };
+#  ok ((not $ars->search({ name => 'in_outer_txn' })->first),
+#    'outer txn rolled back');
+
 # test explicit key spec
   $new = $ars->create ({ name => 'bar', artistid => 66 });
   is($new->artistid, 66, 'Explicit PK worked');
@@ -118,9 +138,9 @@ EOF
 
 # test blobs (stolen from 73oracle.t)
   SKIP: {
-    eval { $dbh->do('DROP TABLE bindtype_test') };
+    eval { $dbh->do('DROP TABLE bindtype_test2') };
     $dbh->do(q[
-    CREATE TABLE bindtype_test
+    CREATE TABLE bindtype_test2
     (
       id     INT PRIMARY KEY,
       bytea  INT,
@@ -129,15 +149,13 @@ EOF
     )
     ]);
 
-    last SKIP; # XXX blob ops cause segfaults!
-
     my %binstr = ( 'small' => join('', map { chr($_) } ( 1 .. 127 )) );
     $binstr{'large'} = $binstr{'small'} x 1024;
 
     my $maxloblen = length $binstr{'large'};
     local $dbh->{'LongReadLen'} = $maxloblen;
 
-    my $rs = $schema->resultset('BindType');
+    my $rs = $schema->resultset('BindType2');
     my $id = 0;
 
     foreach my $type (qw( a_blob a_clob )) {