X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F09_deeparray.t;h=9bd883c8ffba35050b09231e49de53556eef3088;hb=0e3e35555b9d0f781548d4d383f601ba69837310;hp=a9260e6c71077e39c4def2363aa3182460c8a0cc;hpb=4f0f6fff0474a896cad8bbb80d8c0ccce3d87bf9;p=dbsrgits%2FDBM-Deep.git diff --git a/t/09_deeparray.t b/t/09_deeparray.t index a9260e6..9bd883c 100644 --- a/t/09_deeparray.t +++ b/t/09_deeparray.t @@ -1,52 +1,45 @@ -## -# DBM::Deep Test -## use strict; +use warnings FATAL => 'all'; + use Test::More; plan skip_all => "You must set \$ENV{LONG_TESTS} to run the long tests" unless $ENV{LONG_TESTS}; -plan tests => 3; -use t::common qw( new_fh ); +use t::common qw( new_dbm ); -diag "This test can take up to a minute to run. Please be patient."; +diag "This test can take up to several minutes to run. Please be patient."; use_ok( 'DBM::Deep' ); -my ($fh, $filename) = new_fh(); - -my $max_levels = 1000; +my $dbm_factory = new_dbm( type => DBM::Deep->TYPE_ARRAY ); +while ( my $dbm_maker = $dbm_factory->() ) { + my $max_levels = 1000; -{ - my $db = DBM::Deep->new( - file => $filename, - type => DBM::Deep->TYPE_ARRAY, - ); + { + my $db = $dbm_maker->(); - $db->[0] = []; - my $temp_db = $db->[0]; - for my $k ( 0 .. $max_levels ) { - $temp_db->[$k] = []; - $temp_db = $temp_db->[$k]; + $db->[0] = []; + my $temp_db = $db->[0]; + for my $k ( 0 .. $max_levels ) { + $temp_db->[$k] = []; + $temp_db = $temp_db->[$k]; + } + $temp_db->[0] = "deepvalue"; } - $temp_db->[0] = "deepvalue"; -} -{ - open $fh, '+<', $filename; - my $db = DBM::Deep->new( - file => $filename, - type => DBM::Deep->TYPE_ARRAY, - ); - - my $cur_level = -1; - my $temp_db = $db->[0]; - for my $k ( 0 .. $max_levels ) { - $cur_level = $k; - $temp_db = $temp_db->[$k]; - eval { $temp_db->isa( 'DBM::Deep' ) } or last; + { + my $db = $dbm_maker->(); + + my $cur_level = -1; + my $temp_db = $db->[0]; + for my $k ( 0 .. $max_levels ) { + $cur_level = $k; + $temp_db = $temp_db->[$k]; + eval { $temp_db->isa( 'DBM::Deep' ) } or last; + } + is( $cur_level, $max_levels, "We read all the way down to level $cur_level" ); + is( $temp_db->[0], "deepvalue", "And we retrieved the value at the bottom of the ocean" ); } - is( $cur_level, $max_levels, "We read all the way down to level $cur_level" ); - is( $temp_db->[0], "deepvalue", "And we retrieved the value at the bottom of the ocean" ); } +done_testing;