here's a test that shows the memory leak
[dbsrgits/DBM-Deep.git] / t / 43_transaction_maximum.t
CommitLineData
e9b0b5f0 1use strict;
2use Test::More;
3use Test::Deep;
4use Test::Exception;
5use t::common qw( new_fh );
6
7use DBM::Deep;
8
db2eb673 9my $max_txns = 250;
e9b0b5f0 10
11my ($fh, $filename) = new_fh();
12
13my @dbs = grep { $_ } map {
db2eb673 14 my $x =
e9b0b5f0 15 eval {
16 DBM::Deep->new(
db2eb673 17 file => $filename,
18 num_txns => $max_txns,
e9b0b5f0 19 );
20 };
db2eb673 21 die $@ if $@;
22 $x;
e9b0b5f0 23} 1 .. $max_txns;
24
25my $num = $#dbs;
26
27plan tests => do {
28 my $n = $num + 1;
29 2 * $n;
30};
31
32my %trans_ids;
33for my $n (0 .. $num) {
34 lives_ok {
35 $dbs[$n]->begin_work
36 } "DB $n can begin_work";
37
38 my $trans_id = $dbs[$n]->_engine->trans_id;
39 ok( !exists $trans_ids{ $trans_id }, "DB $n has a unique transaction ID ($trans_id)" );
40 $trans_ids{ $trans_id } = $n;
41}