First checkin of the reversion back from the failed optimization effort. I will be...
[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
9c87a079 9my $max_txns = 255;
e9b0b5f0 10
11my ($fh, $filename) = new_fh();
12
13my @dbs = grep { $_ } map {
14 eval {
15 DBM::Deep->new(
9c87a079 16 file => $filename,
17 num_txns => $max_txns,
e9b0b5f0 18 );
19 };
20} 1 .. $max_txns;
21
22my $num = $#dbs;
23
24plan tests => do {
25 my $n = $num + 1;
26 2 * $n;
27};
28
29my %trans_ids;
30for 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}