1#!./perl -w 2 3use strict ; 4use lib 't'; 5use BerkeleyDB; 6use Test::More; 7use util (1); 8 9plan(skip_all => "this needs Berkeley DB 4.x.x or better\n" ) 10 if $BerkeleyDB::db_version < 4; 11 12 13plan tests => 9; 14 15my $Dfile = "dbhash.tmp"; 16unlink $Dfile; 17 18umask(0) ; 19 20my $db = BerkeleyDB::Btree->new( 21 -Filename => $Dfile, 22 -Flags => DB_CREATE, 23 -Property => DB_DUP | DB_DUPSORT 24) || die "Cannot open file $Dfile: $! $BerkeleyDB::Error\n" ; 25 26my $cursor = $db->db_cursor(); 27 28my @pairs = qw( 29 Alabama/Athens 30 Alabama/Florence 31 Alaska/Anchorage 32 Alaska/Fairbanks 33 Arizona/Avondale 34 Arizona/Florence 35); 36 37for (@pairs) { 38 $db->db_put(split '/'); 39} 40 41my @tests = ( 42 ["Alaska", "Fa", "Alaska", "Fairbanks"], 43 ["Arizona", "Fl", "Arizona", "Florence"], 44 ["Alaska", "An", "Alaska", "Anchorage"], 45); 46 47#my $i; 48while (my $test = shift @tests) { 49 my ($k1, $v1, $k2, $v2) = @$test; 50 ok $cursor->c_get($k1, $v1, DB_GET_BOTH_RANGE) == 0; 51 is $k1, $k2; 52 is $v1, $v2; 53} 54 55undef $db; 56unlink $Dfile; 57