update tests and bump version

master
Justin Balthrop 2009-08-06 11:36:34 -07:00
parent c5e7eb6c73
commit 6d5a78fd98
3 changed files with 20 additions and 9 deletions

View File

@ -2,7 +2,7 @@ BDB_SPEC = Gem::Specification.new do |s|
s.platform = Gem::Platform::RUBY
s.required_ruby_version = '>=1.8.4'
s.name = "bdb"
s.version = "0.0.1"
s.version = "0.0.2"
s.authors = ["Matt Bauer", "Dan Janowski"]
s.email = "bauer@pedalbrain.com"
s.summary = "A Ruby interface to BerkeleyDB"

View File

@ -1259,14 +1259,14 @@ int bt_compare_callback(DB *db, const DBT* key1, const DBT* key2)
/*
* call-seq:
* db.set_bt_compare(proc)
* db.btree_compare = proc
*
* set the btree key comparison function to the callback proc.
*
* callback proc has signature:
* proc(db,key1,key2)
*/
VALUE db_set_bt_compare(VALUE obj, VALUE cb_proc)
VALUE db_btree_compare_set(VALUE obj, VALUE cb_proc)
{
t_dbh *dbh;
int rv;
@ -1283,10 +1283,10 @@ VALUE db_set_bt_compare(VALUE obj, VALUE cb_proc)
rv=dbh->db->set_bt_compare(dbh->db,bt_compare_callback);
#ifdef DEBUG_DB
fprintf(stderr,"set_bt_compare done 0x%x\n",dbh);
fprintf(stderr,"btree_compare set 0x%x\n",dbh);
#endif
if (rv != 0) {
raise_error(rv, "db_set_bt_compare failure: %s",db_strerror(rv));
raise_error(rv, "db_btree_compare_set failure: %s",db_strerror(rv));
}
return Qtrue;
}
@ -2874,7 +2874,7 @@ void Init_bdb() {
rb_define_method(cDb,"del",db_del,3);
rb_define_method(cDb,"cursor",db_cursor,2);
rb_define_method(cDb,"associate",db_associate,4);
rb_define_method(cDb,"set_btree_compare",db_set_bt_compare,1);
rb_define_method(cDb,"btree_compare=",db_btree_compare_set,1);
rb_define_method(cDb,"flags=",db_flags_set,1);
rb_define_method(cDb,"flags",db_flags_get,0);
rb_define_method(cDb,"open",db_open,6);

View File

@ -21,6 +21,17 @@ class CursorTest < Test::Unit::TestCase
assert_equal '0', key
assert_equal 'data-0', value
end
def test_get_range
keys = []
key, value = @cursor.get("4", nil, Bdb::DB_SET_RANGE)
while key and key <= "9"
keys << key
key, value = @cursor.get(nil, nil, Bdb::DB_NEXT)
end
assert_equal (4..9).collect {|i| i.to_s}, keys
end
def test_pget
@db1 = Bdb::Db.new
@ -71,9 +82,9 @@ class CursorTest < Test::Unit::TestCase
assert_equal (0..9).collect {|i| i.to_s}, all
end
def test_get_all_with_set_btree_compare
def test_get_all_with_btree_compare
@db1 = Bdb::Db.new
@db1.set_btree_compare(proc {|db, key1, key2| key2 <=> key1})
@db1.btree_compare = proc {|db, key1, key2| key2 <=> key1}
@db1.open(nil, File.join(File.dirname(__FILE__), 'tmp', 'test1.db'), nil, Bdb::Db::BTREE, Bdb::DB_CREATE, 0)
10.times { |i| @db1.put(nil, i.to_s, "data-#{i}", 0)}
@cursor1 = @db1.cursor(nil, 0)
@ -89,7 +100,7 @@ class CursorTest < Test::Unit::TestCase
def test_btree_compare_raises_if_fixnum_not_returned
@db1 = Bdb::Db.new
@db1.set_btree_compare(proc {|db, key1, key2| key1})
@db1.btree_compare = proc {|db, key1, key2| key1}
@db1.open(nil, File.join(File.dirname(__FILE__), 'tmp', 'test1.db'), nil, Bdb::Db::BTREE, Bdb::DB_CREATE, 0)
assert_raises(TypeError) do