1#!./perl -w 2 3use strict ; 4 5use lib 't' ; 6use BerkeleyDB; 7use Test::More ; 8use util (1); 9 10plan(skip_all => "this needs Berkeley DB 4.4.x or better\n" ) 11 if $BerkeleyDB::db_version < 4.4; 12 13plan tests => 5; 14 15{ 16 title "Testing compact"; 17 18 # db->db_compact 19 20 my $Dfile; 21 my $lex = new LexFile $Dfile ; 22 my ($k, $v) ; 23 ok my $db = new BerkeleyDB::Btree -Filename => $Dfile, 24 -Flags => DB_CREATE ; 25 26 # create some data 27 my %data = ( 28 "red" => 2, 29 "green" => "house", 30 "blue" => "sea", 31 ) ; 32 33 my $ret = 0 ; 34 while (($k, $v) = each %data) { 35 $ret += $db->db_put($k, $v) ; 36 } 37 ok $ret == 0, " Created some data" ; 38 39 my $key; 40 my $end; 41 my %hash; 42 $hash{compact_filepercent} = 20; 43 44 ok $db->compact("red", "green", \%hash, 0, $end) == 0, " Compacted ok"; 45 46 if (0) 47 { 48 diag "end at $end"; 49 for my $key (sort keys %hash) 50 { 51 diag "[$key][$hash{$key}]\n"; 52 } 53 } 54 55 ok $db->compact() == 0, " Compacted ok"; 56} 57 58