1.8のdbm.soをBerkeley DB[234]を使って構築した場合、
testdbm.rbでエラーが出るようです。

エラーになるのは

  def setup
    @path = "tmptest_dbm_"
    assert_instance_of(DBM, @dbm = DBM.new(@path))

    # prepare to make readonly DBM file
    DBM.open("tmptest_dbm_rdonly", 0400) {|dbm|
      dbm['foo'] = 'FOO'
    }
    assert_instance_of(DBM, @dbm_rdonly = DBM.new("tmptest_dbm_rdonly", nil))
  end

の「DBM.open("tmptest_dbm_rdonly", 0400)」で、
「dbm_open(RSTRING(file)->ptr, O_RDWR|O_CREAT, mode);」が
コケてしまうのが原因のようです。
# gdbmだとまた挙動が違いそう。

dbm.so側で対処してあげなくてはならないのではないかなあと
思っているのですが、どんなものでしょうか。

-- 
やまだあきら / akira yamada <URL:http://arika.org>
Vine Caves, Ltd. <URL:http://vinecaves.com>
(akira / arika.org, akira / debian.org or akira / vinecaves.com)