1#!./perl -w 2 3# Tests for Concurrent Data Store mode 4 5use strict ; 6use lib 't' ; 7 8use BerkeleyDB; 9use util ; 10 11BEGIN 12{ 13 if ($BerkeleyDB::db_version < 2) { 14 print "1..0 # Skip: this needs Berkeley DB 2.x.x or better\n" ; 15 exit 0 ; 16 } 17} 18 19 20 21print "1..12\n"; 22 23my $Dfile = "dbhash.tmp"; 24unlink $Dfile; 25 26umask(0) ; 27 28{ 29 # Error case -- env not opened in CDS mode 30 31 my $lex = new LexFile $Dfile ; 32 33 my $home = "./fred" ; 34 ok 1, my $lexD = new LexDir($home) ; 35 36 ok 2, my $env = new BerkeleyDB::Env -Flags => DB_CREATE|DB_INIT_MPOOL, 37 -Home => $home, @StdErrFile ; 38 39 ok 3, my $db = new BerkeleyDB::Btree -Filename => $Dfile, 40 -Env => $env, 41 -Flags => DB_CREATE ; 42 43 ok 4, ! $env->cds_enabled() ; 44 ok 5, ! $db->cds_enabled() ; 45 46 eval { $db->cds_lock() }; 47 ok 6, $@ =~ /CDS not enabled for this database/; 48 49 undef $db; 50 undef $env ; 51} 52 53{ 54 my $lex = new LexFile $Dfile ; 55 56 my $home = "./fred" ; 57 ok 7, my $lexD = new LexDir($home) ; 58 59 ok 8, my $env = new BerkeleyDB::Env -Flags => DB_INIT_CDB|DB_CREATE|DB_INIT_MPOOL, 60 -Home => $home, @StdErrFile ; 61 62 ok 9, my $db = new BerkeleyDB::Btree -Filename => $Dfile, 63 -Env => $env, 64 -Flags => DB_CREATE ; 65 66 ok 10, $env->cds_enabled() ; 67 ok 11, $db->cds_enabled() ; 68 69 my $cds = $db->cds_lock() ; 70 ok 12, $cds ; 71 72 undef $db; 73 undef $env ; 74} 75