X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F22_internal_copy.t;h=0988f8da5d39c12108899daa953c32b7f503e88c;hb=5c0756fcb3b5c7ca76c52be6c7c9d78841e5d57b;hp=e75ac0c92cf18409463f6e61e1864d3eff32c305;hpb=98ac82afade6822238f9a0aee8900bc9365096e3;p=dbsrgits%2FDBM-Deep.git diff --git a/t/22_internal_copy.t b/t/22_internal_copy.t index e75ac0c..0988f8d 100644 --- a/t/22_internal_copy.t +++ b/t/22_internal_copy.t @@ -3,26 +3,25 @@ ## use strict; use Test::More tests => 13; -use File::Temp qw( tempfile tempdir ); +use t::common qw( new_fh ); use_ok( 'DBM::Deep' ); -my $dir = tempdir( CLEANUP => 1 ); -my ($fh, $filename) = tempfile( 'tmpXXXX', UNLINK => 1, DIR => $dir ); -my $db = DBM::Deep->new( $filename ); +my ($fh, $filename) = new_fh(); +my $db = DBM::Deep->new( file => $filename, fh => $fh, ); ## # Create structure in $db ## -$db->import( - hash1 => { - subkey1 => "subvalue1", - subkey2 => "subvalue2", - }, +$db->import({ + hash1 => { + subkey1 => "subvalue1", + subkey2 => "subvalue2", + }, hash2 => { subkey3 => 'subvalue3', }, -); +}); is( $db->{hash1}{subkey1}, 'subvalue1', "Value imported correctly" ); is( $db->{hash1}{subkey2}, 'subvalue2', "Value imported correctly" ); @@ -46,21 +45,23 @@ is( scalar(keys %{$db->{hash1}}), 1, "... and only 1 key in the original" ); $db->{copy} = $db->{hash2}; is( $db->{copy}{subkey3}, 'subvalue3', "After the second copy, we're still good" ); - my $max_keys = 1000; -my ($fh2, $filename2) = tempfile( 'tmpXXXX', UNLINK => 1, DIR => $dir ); +my ($fh2, $filename2) = new_fh(); { - my $db = DBM::Deep->new( $filename2 ); + my $db = DBM::Deep->new( file => $filename2, fh => $fh2, ); $db->{foo} = [ 1 .. 3 ]; for ( 0 .. $max_keys ) { $db->{'foo' . $_} = $db->{foo}; } + ## Rewind handle otherwise the signature is not recognised below. + ## The signature check should probably rewind the fh? + seek $db->_get_self->_storage->{fh}, 0, 0; } { - my $db = DBM::Deep->new( $filename2 ); + my $db = DBM::Deep->new( fh => $fh2, ); my $base_offset = $db->{foo}->_base_offset; my $count = -1;