First checkin of the reversion back from the failed optimization effort. I will be...
[dbsrgits/DBM-Deep.git] / t / 43_transaction_maximum.t
1 use strict;
2 use Test::More;
3 use Test::Deep;
4 use Test::Exception;
5 use t::common qw( new_fh );
6
7 use DBM::Deep;
8
9 my $max_txns = 255;
10
11 my ($fh, $filename) = new_fh();
12
13 my @dbs = grep { $_ } map {
14     eval {
15         DBM::Deep->new(
16             file => $filename,
17             num_txns  => $max_txns,
18         );
19     };
20 } 1 .. $max_txns;
21
22 my $num = $#dbs;
23
24 plan tests => do {
25     my $n = $num + 1;
26     2 * $n;
27 };
28
29 my %trans_ids;
30 for my $n (0 .. $num) {
31     lives_ok {
32         $dbs[$n]->begin_work
33     } "DB $n can begin_work";
34
35     my $trans_id = $dbs[$n]->_engine->trans_id;
36     ok( !exists $trans_ids{ $trans_id }, "DB $n has a unique transaction ID ($trans_id)" );
37     $trans_ids{ $trans_id } = $n;
38 }