summaryrefslogtreecommitdiff
path: root/test/dbm
diff options
context:
space:
mode:
Diffstat (limited to 'test/dbm')
-rw-r--r--test/dbm/test_dbm.rb27
1 files changed, 25 insertions, 2 deletions
diff --git a/test/dbm/test_dbm.rb b/test/dbm/test_dbm.rb
index f9198903a3..2de73d1d5e 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" }
}