X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F752sqlite.t;h=273a1ed5dc6ba07c4a140af7c1cff2490c3951e4;hb=398215b170197df314fb0c40e0654c3a6860f19d;hp=0fbad3449df281d6b7a81d245b8a9cd367b1c12f;hpb=113322e503f3c3f39c4652ac47417279c096db6a;p=dbsrgits%2FDBIx-Class.git diff --git a/t/752sqlite.t b/t/752sqlite.t index 0fbad34..273a1ed 100644 --- a/t/752sqlite.t +++ b/t/752sqlite.t @@ -53,6 +53,7 @@ use DBIx::Class::_Util qw(sigwarn_silencer modver_gt_or_eq); # However DBD::SQLite 1.38_02 seems to fix this, with an accompanying test: # https://metacpan.org/source/ADAMK/DBD-SQLite-1.38_02/t/54_literal_txn.t +require DBD::SQLite; my $lit_txn_todo = modver_gt_or_eq('DBD::SQLite', '1.38_02') ? undef : "DBD::SQLite before 1.38_02 is retarded wrt detecting literal BEGIN/COMMIT statements" @@ -124,6 +125,46 @@ DDL } } +# test blank begin/svp/commit/begin cycle +warnings_are { + my $schema = DBICTest->init_schema( no_populate => 1 ); + my $rs = $schema->resultset('Artist'); + is ($rs->count, 0, 'Start with empty table'); + + for my $do_commit (1, 0) { + $schema->txn_begin; + $schema->svp_begin; + $schema->svp_rollback; + + $schema->svp_begin; + $schema->svp_rollback; + + $schema->svp_release; + + $schema->svp_begin; + + $schema->txn_rollback; + + $schema->txn_begin; + $schema->svp_begin; + $schema->svp_rollback; + + $schema->svp_begin; + $schema->svp_rollback; + + $schema->svp_release; + + $schema->svp_begin; + + $do_commit ? $schema->txn_commit : $schema->txn_rollback; + + is_deeply $schema->storage->savepoints, [], 'Savepoint names cleared away' + } + + $schema->txn_do(sub { + ok (1, 'all seems fine'); + }); +} [], 'No warnings emitted'; my $schema = DBICTest->init_schema();