##
use strict;
use Test::More tests => 9;
+use File::Temp qw( tmpnam );
use_ok( 'DBM::Deep' );
-unlink "t/test.db";
+my $filename = tmpnam();
my $db = DBM::Deep->new(
- file => "t/test.db",
+ file => $filename,
autoflush => 1,
);
is( $db->{key1}, 'value1', "key1's value is still there after optimize" );
is( $db->{a}{c}, 'value2', "key2's value is still there after optimize" );
+#print keys %{$db->{a}}, $/;
+
##
# now for the tricky one -- try to store a new key while file is being
# optimized and locked by another process. filehandle should be invalidated,
# re-open db
$db = DBM::Deep->new(
- file => "t/test.db",
+ file => $filename,
autoflush => 1,
locking => 1
);
# re-open db
$db = DBM::Deep->new(
- file => "t/test.db",
+ file => $filename,
autoflush => 1,
locking => 1
);
# see if it was stored successfully
is( $db->{parentfork}, "hello", "stored key while optimize took place" );
- # ok(1);
+
+# undef $db;
+# $db = DBM::Deep->new(
+# file => $filename,
+# autoflush => 1,
+# locking => 1
+# );
# now check some existing values from before
is( $db->{key1}, 'value1', "key1's value is still there after optimize" );