X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2F22_internal_copy.t;h=bda4b1d13b303a569930b7630aa00de0d9852f17;hb=4f0f6fff0474a896cad8bbb80d8c0ccce3d87bf9;hp=699f6c0338910182db5a1d157eee913270735aeb;hpb=58910373ba1f3191dc7ac6cadafc6e61de2e10be;p=dbsrgits%2FDBM-Deep.git diff --git a/t/22_internal_copy.t b/t/22_internal_copy.t index 699f6c0..bda4b1d 100644 --- a/t/22_internal_copy.t +++ b/t/22_internal_copy.t @@ -3,28 +3,25 @@ ## use strict; use Test::More tests => 13; -use File::Temp qw( tempfile tempdir ); -use Fcntl qw( :flock ); +use t::common qw( new_fh ); use_ok( 'DBM::Deep' ); -my $dir = tempdir( CLEANUP => 1 ); -my ($fh, $filename) = tempfile( 'tmpXXXX', UNLINK => 1, DIR => $dir ); -flock $fh, LOCK_UN; +my ($fh, $filename) = new_fh(); my $db = DBM::Deep->new( $filename ); ## # 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" ); @@ -48,22 +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 ); -flock $fh2, LOCK_UN; +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->_engine->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;