X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F05_bigarray.t;h=24b9071c9309027fc826212f61816ddbca900af6;hb=7a960a129d8c03a7bc83325f2f8be78a0881d034;hp=011ee17a0bd18308442dfe010883451269b75e4a;hpb=075910edd08e4ee071dcf8b0abbde2ac00cc0daa;p=dbsrgits%2FDBM-Deep.git diff --git a/t/05_bigarray.t b/t/05_bigarray.t index 011ee17..24b9071 100644 --- a/t/05_bigarray.t +++ b/t/05_bigarray.t @@ -2,29 +2,37 @@ # DBM::Deep Test ## use strict; -use Test::More; - -my $max_keys = 4000; -plan tests => 2 + $max_keys; +use Test::More tests => 4; +use t::common qw( new_fh ); use_ok( 'DBM::Deep' ); -unlink "t/test.db"; +diag "This test can take up to a minute to run. Please be patient."; + +my ($fh, $filename) = new_fh(); my $db = DBM::Deep->new( - file => "t/test.db", - type => DBM::Deep->TYPE_ARRAY + file => $filename, + type => DBM::Deep->TYPE_ARRAY, ); -if ($db->error()) { - die "ERROR: " . $db->error(); -} ## # put/get many keys ## +my $max_keys = 4000; + for ( 0 .. $max_keys ) { $db->put( $_ => $_ * 2 ); } +my $count = -1; for ( 0 .. $max_keys ) { - is( $db->get( $_ ), $_ * 2, "The ${_}th value is correct" ); + $count = $_; + unless ( $db->get( $_ ) == $_ * 2 ) { + last; + }; } +is( $count, $max_keys, "We read $count keys" ); + +cmp_ok( scalar(@$db), '==', $max_keys + 1, "Number of elements is correct" ); +$db->clear; +cmp_ok( scalar(@$db), '==', 0, "Number of elements after clear() is correct" );