diff options
Diffstat (limited to 'test/dbm/test_dbm.rb')
-rw-r--r-- | test/dbm/test_dbm.rb | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/test/dbm/test_dbm.rb b/test/dbm/test_dbm.rb index f9198903a..2de73d1d5 100644 --- a/test/dbm/test_dbm.rb +++ b/test/dbm/test_dbm.rb @@ -11,7 +11,7 @@ if defined? DBM require 'fileutils' class TestDBM < Test::Unit::TestCase - TMPROOT = "#{Dir.tmpdir}/ruby-gdbm.#{$$}" + TMPROOT = "#{Dir.tmpdir}/ruby-dbm.#{$$}" def setup Dir.mkdir TMPROOT @@ -21,8 +21,31 @@ if defined? DBM FileUtils.rm_rf TMPROOT if File.directory?(TMPROOT) end + def test_reader_open + DBM.open("#{TMPROOT}/a") {} + v = DBM.open("#{TMPROOT}/a", nil, DBM::READER) {|d| + # Errno::EPERM is raised on Solaris which use ndbm. + # DBMError is raised on Debian which use gdbm. + assert_raises(Errno::EPERM, DBMError) { d["k"] = "v" } + true + } + assert(v) + end + + def test_newdb_open + DBM.open("#{TMPROOT}/a") {|dbm| + dbm["k"] = "v" + } + v = DBM.open("#{TMPROOT}/a", nil, DBM::NEWDB) {|d| + assert_equal(0, d.length) + assert_nil(d["k"]) + true + } + assert(v) + end + def test_freeze - DBM.open("#{TMPROOT}/a.dbm") {|d| + DBM.open("#{TMPROOT}/a") {|d| d.freeze assert_raises(TypeError) { d["k"] = "v" } } |