Added missing files to the MANIFEST
[dbsrgits/DBM-Deep.git] / t / 07_locking.t
CommitLineData
ffed8b01 1##
2# DBM::Deep Test
3##
4use strict;
25369e06 5use Test::More tests => 4;
2a81bf9e 6use File::Temp qw( tempfile tempdir );
58910373 7use Fcntl qw( :flock );
ffed8b01 8
bd773913 9use_ok( 'DBM::Deep' );
ffed8b01 10
2a81bf9e 11my $dir = tempdir( CLEANUP => 1 );
12my ($fh, $filename) = tempfile( 'tmpXXXX', UNLINK => 1, DIR => $dir );
58910373 13flock $fh, LOCK_UN;
bd773913 14my $db = DBM::Deep->new(
2a81bf9e 15 file => $filename,
2ccea4dc 16 locking => 1,
ffed8b01 17);
ffed8b01 18
19##
20# basic put/get
21##
22$db->{key1} = "value1";
bd773913 23is( $db->{key1}, "value1", "key1 is set" );
ffed8b01 24
25369e06 25$db->{key2} = [ 1 .. 3 ];
26is( $db->{key2}[1], 2 );
27
ffed8b01 28##
29# explicit lock
30##
bd773913 31$db->lock( DBM::Deep->LOCK_EX );
ffed8b01 32$db->{key1} = "value2";
33$db->unlock();
bd773913 34is( $db->{key1}, "value2", "key1 is overridden" );