X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F746sybase.t;h=b8a42e24811a2a9db0f260c6f1ed7e928893406d;hb=322b7a6b;hp=7e5696a3821eb0f1daf3c494f2614e3237c40372;hpb=51ac7136944f82aa2675cc133a8d080c5fb367b1;p=dbsrgits%2FDBIx-Class.git diff --git a/t/746sybase.t b/t/746sybase.t index 7e5696a..b8a42e2 100644 --- a/t/746sybase.t +++ b/t/746sybase.t @@ -11,7 +11,7 @@ use DBIx::Class::Storage::DBI::Sybase::NoBindVars; my ($dsn, $user, $pass) = @ENV{map { "DBICTEST_SYBASE_${_}" } qw/DSN USER PASS/}; -my $TESTS = 39 + 2; +my $TESTS = 40 + 2; if (not ($dsn && $user)) { plan skip_all => @@ -308,21 +308,36 @@ SQL }); # test insert transaction when there's an active cursor - TODO: { -# local $TODO = 'not supported yet or possibly ever'; + SKIP: { + skip 'not testing insert with active cursor if using ::NoBindVars', 1 + if $storage_type =~ /NoBindVars/i; + + my $artist_rs = $schema->resultset('Artist'); + $artist_rs->first; + lives_ok { + my $row = $schema->resultset('Money')->create({ amount => 100 }); + $row->delete; + } 'inserted a row with an active cursor'; + $ping_count-- if $@; # dbh_do calls ->connected + } - SKIP: { - skip 'not testing insert with active cursor if using unsafe_insert', 1 - if $schema->storage->unsafe_insert; +# test insert in an outer transaction when there's an active cursor + TODO: { + local $TODO = 'this should work once we have eager cursors'; - my $artist_rs = $schema->resultset('Artist'); - $artist_rs->first; - lives_ok { +# clear state, or we get a deadlock on $row->delete +# XXX figure out why this happens + $schema->storage->disconnect; + + lives_ok { + $schema->txn_do(sub { + my $artist_rs = $schema->resultset('Artist'); + $artist_rs->first; my $row = $schema->resultset('Money')->create({ amount => 100 }); $row->delete; - } 'inserted a row with an active cursor'; - $ping_count-- if $@; # dbh_do calls ->connected - } + }); + } 'inserted a row with an active cursor in outer txn'; + $ping_count-- if $@; # dbh_do calls ->connected } # Now test money values.