# DBM::Deep Test
##
use strict;
-use Test::More tests => 12;
+use Test::More tests => 13;
+use t::common qw( new_fh );
use_ok( 'DBM::Deep' );
-unlink "t/test.db";
-my $db = DBM::Deep->new( "t/test.db" );
-if ($db->error()) {
- die "ERROR: " . $db->error();
-}
+my ($fh, $filename) = new_fh();
+my $db = DBM::Deep->new( $filename );
##
# Create structure in $db
$db->{copy} = $db->{hash2};
is( $db->{copy}{subkey3}, 'subvalue3', "After the second copy, we're still good" );
+
+my $max_keys = 1000;
+
+my ($fh2, $filename2) = new_fh();
+{
+ my $db = DBM::Deep->new( $filename2 );
+
+ $db->{foo} = [ 1 .. 3 ];
+ for ( 0 .. $max_keys ) {
+ $db->{'foo' . $_} = $db->{foo};
+ }
+}
+
+{
+ my $db = DBM::Deep->new( $filename2 );
+
+ my $base_offset = $db->{foo}->_base_offset;
+ my $count = -1;
+ for ( 0 .. $max_keys ) {
+ $count = $_;
+ unless ( $base_offset == $db->{'foo'.$_}->_base_offset ) {
+ last;
+ }
+ }
+ is( $count, $max_keys, "We read $count keys" );
+}