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