summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--test/dbm/test_dbm.rb41
-rw-r--r--test/gdbm/test_gdbm.rb43
3 files changed, 66 insertions, 24 deletions
diff --git a/ChangeLog b/ChangeLog
index fb194d9fcf..0c8b2f3cf3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Nov 8 20:50:45 2011 Tanaka Akira <akr@fsij.org>
+
+ * test/dbm/test_dbm.rb: split tests for read only database.
+
+ * test/gdbm/test_gdbm.rb: ditto.
+
Tue Nov 8 18:59:07 2011 Tanaka Akira <akr@fsij.org>
* ext/pty/pty.c (MasterDevice): define only when used.
diff --git a/test/dbm/test_dbm.rb b/test/dbm/test_dbm.rb
index 14fd83899e..2a8113569d 100644
--- a/test/dbm/test_dbm.rb
+++ b/test/dbm/test_dbm.rb
@@ -10,8 +10,8 @@ if defined? DBM
require 'tmpdir'
require 'fileutils'
- class TestDBM < Test::Unit::TestCase
- def TestDBM.uname_s
+ class TestDBM_RDONLY < Test::Unit::TestCase
+ def TestDBM_RDONLY.uname_s
require 'rbconfig'
case RbConfig::CONFIG['target_os']
when 'cygwin'
@@ -31,7 +31,6 @@ if defined? DBM
@tmpdir = Dir.mktmpdir("tmptest_dbm")
@prefix = "tmptest_dbm_#{$$}"
@path = "#{@tmpdir}/#{@prefix}_"
- assert_instance_of(DBM, @dbm = DBM.new(@path))
# prepare to make readonly DBM file
DBM.open("#{@tmpdir}/#{@prefix}_rdonly") {|dbm|
@@ -43,7 +42,6 @@ if defined? DBM
assert_instance_of(DBM, @dbm_rdonly = DBM.new("#{@tmpdir}/#{@prefix}_rdonly", nil))
end
def teardown
- assert_nil(@dbm.close)
assert_nil(@dbm_rdonly.close)
ObjectSpace.each_object(DBM) do |obj|
obj.close unless obj.closed?
@@ -51,6 +49,32 @@ if defined? DBM
FileUtils.remove_entry_secure @tmpdir
end
+ def test_delete_rdonly
+ if /^CYGWIN_9/ !~ SYSTEM
+ assert_raise(DBMError) {
+ @dbm_rdonly.delete("foo")
+ }
+
+ assert_nil(@dbm_rdonly.delete("bar"))
+ end
+ end
+ end
+
+ class TestDBM < Test::Unit::TestCase
+ def setup
+ @tmpdir = Dir.mktmpdir("tmptest_dbm")
+ @prefix = "tmptest_dbm_#{$$}"
+ @path = "#{@tmpdir}/#{@prefix}_"
+ assert_instance_of(DBM, @dbm = DBM.new(@path))
+ end
+ def teardown
+ assert_nil(@dbm.close)
+ ObjectSpace.each_object(DBM) do |obj|
+ obj.close unless obj.closed?
+ end
+ FileUtils.remove_entry_secure @tmpdir
+ end
+
def check_size(expect, dbm=@dbm)
assert_equal(expect, dbm.size)
n = 0
@@ -322,15 +346,8 @@ if defined? DBM
assert_equal(2, @dbm.size)
assert_nil(@dbm.delete(key))
-
- if /^CYGWIN_9/ !~ SYSTEM
- assert_raise(DBMError) {
- @dbm_rdonly.delete("foo")
- }
-
- assert_nil(@dbm_rdonly.delete("bar"))
- end
end
+
def test_delete_with_block
key = 'no called block'
@dbm[key] = 'foo'
diff --git a/test/gdbm/test_gdbm.rb b/test/gdbm/test_gdbm.rb
index 64f135b683..523febef00 100644
--- a/test/gdbm/test_gdbm.rb
+++ b/test/gdbm/test_gdbm.rb
@@ -10,8 +10,8 @@ if defined? GDBM
require 'tmpdir'
require 'fileutils'
- class TestGDBM < Test::Unit::TestCase
- def TestGDBM.uname_s
+ class TestGDBM_RDONLY < Test::Unit::TestCase
+ def TestGDBM_RDONLY.uname_s
require 'rbconfig'
case RbConfig::CONFIG['target_os']
when 'cygwin'
@@ -31,7 +31,6 @@ if defined? GDBM
@tmpdir = Dir.mktmpdir("tmptest_gdbm")
@prefix = "tmptest_gdbm_#{$$}"
@path = "#{@tmpdir}/#{@prefix}_"
- assert_instance_of(GDBM, @gdbm = GDBM.new(@path))
# prepare to make readonly GDBM file
GDBM.open("#{@tmpdir}/#{@prefix}_rdonly", 0400) {|gdbm|
@@ -40,7 +39,6 @@ if defined? GDBM
assert_instance_of(GDBM, @gdbm_rdonly = GDBM.new("#{@tmpdir}/#{@prefix}_rdonly", nil))
end
def teardown
- assert_nil(@gdbm.close)
assert_nil(@gdbm_rdonly.close)
ObjectSpace.each_object(GDBM) do |obj|
obj.close unless obj.closed?
@@ -48,6 +46,34 @@ if defined? GDBM
FileUtils.remove_entry_secure @tmpdir
end
+ def test_delete_rdonly
+ if /^CYGWIN_9/ !~ SYSTEM
+ assert_raise(GDBMError) {
+ @gdbm_rdonly.delete("foo")
+ }
+
+ assert_nil(@gdbm_rdonly.delete("bar"))
+ end
+ end
+ end
+
+ class TestGDBM < Test::Unit::TestCase
+ SYSTEM = TestGDBM_RDONLY::SYSTEM
+
+ def setup
+ @tmpdir = Dir.mktmpdir("tmptest_gdbm")
+ @prefix = "tmptest_gdbm_#{$$}"
+ @path = "#{@tmpdir}/#{@prefix}_"
+ assert_instance_of(GDBM, @gdbm = GDBM.new(@path))
+ end
+ def teardown
+ assert_nil(@gdbm.close)
+ ObjectSpace.each_object(GDBM) do |obj|
+ obj.close unless obj.closed?
+ end
+ FileUtils.remove_entry_secure @tmpdir
+ end
+
def check_size(expect, gdbm=@gdbm)
assert_equal(expect, gdbm.size)
n = 0
@@ -438,15 +464,8 @@ if defined? GDBM
assert_equal(2, @gdbm.size)
assert_nil(@gdbm.delete(key))
-
- if /^CYGWIN_9/ !~ SYSTEM
- assert_raise(GDBMError) {
- @gdbm_rdonly.delete("foo")
- }
-
- assert_nil(@gdbm_rdonly.delete("bar"))
- end
end
+
def test_delete_with_block
key = 'no called block'
@gdbm[key] = 'foo'