diff --git a/test/dbm/test_dbm.rb b/test/dbm/test_dbm.rb index 9d63bdf5b32e2f..c7ca50cd090784 100644 --- a/test/dbm/test_dbm.rb +++ b/test/dbm/test_dbm.rb @@ -87,7 +87,7 @@ def test_s_open_with_block end def test_s_open_lock return unless have_fork? # snip this test - fork() { + pid = fork() { assert_instance_of(DBM, dbm = DBM.open("tmptest_dbm", 0644)) sleep 2 } @@ -101,7 +101,7 @@ def test_s_open_lock end } ensure - Process.wait + Process.wait pid end end @@ -127,7 +127,7 @@ def test_s_open_nolock end return unless have_fork? # snip this test - fork() { + pid = fork() { assert_instance_of(DBM, dbm = DBM.open("tmptest_dbm", 0644, DBM::NOLOCK)) sleep 2 @@ -139,13 +139,13 @@ def test_s_open_nolock assert_instance_of(DBM, dbm2 = DBM.open("tmptest_dbm", 0644)) } ensure - Process.wait + Process.wait pid dbm2.close if dbm2 end p Dir.glob("tmptest_dbm*") if $DEBUG - fork() { + pid = fork() { assert_instance_of(DBM, dbm = DBM.open("tmptest_dbm", 0644)) sleep 2 } @@ -158,7 +158,7 @@ def test_s_open_nolock DBM::NOLOCK)) } ensure - Process.wait + Process.wait pid dbm2.close if dbm2 end end @@ -590,8 +590,32 @@ def teardown FileUtils.rm_rf TMPROOT if File.directory?(TMPROOT) end + def test_reader_open_notexist + assert_raise(Errno::ENOENT) { + DBM.open("#{TMPROOT}/a", 0666, DBM::READER) + } + end + + def test_writer_open_notexist + assert_raise(Errno::ENOENT) { + DBM.open("#{TMPROOT}/a", 0666, DBM::WRITER) + } + end + + def test_wrcreat_open_notexist + v = DBM.open("#{TMPROOT}/a", 0666, DBM::WRCREAT) + assert_instance_of(DBM, v) + v.close + end + + def test_newdb_open_notexist + v = DBM.open("#{TMPROOT}/a", 0666, DBM::NEWDB) + assert_instance_of(DBM, v) + v.close + end + def test_reader_open - DBM.open("#{TMPROOT}/a") {} + DBM.open("#{TMPROOT}/a") {} # create a db. 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. diff --git a/test/gdbm/test_gdbm.rb b/test/gdbm/test_gdbm.rb index 307cd1c3da8045..db4a6564369739 100644 --- a/test/gdbm/test_gdbm.rb +++ b/test/gdbm/test_gdbm.rb @@ -118,7 +118,7 @@ def test_s_open_with_block end def test_s_open_lock return unless have_fork? # snip this test - fork() { + pid = fork() { assert_instance_of(GDBM, gdbm = GDBM.open("tmptest_gdbm", 0644)) sleep 2 } @@ -132,7 +132,7 @@ def test_s_open_lock end } ensure - Process.wait + Process.wait pid end end @@ -158,7 +158,7 @@ def test_s_open_nolock end return unless have_fork? # snip this test - fork() { + pid = fork() { assert_instance_of(GDBM, gdbm = GDBM.open("tmptest_gdbm", 0644, GDBM::NOLOCK)) sleep 2 @@ -170,13 +170,13 @@ def test_s_open_nolock assert_instance_of(GDBM, gdbm2 = GDBM.open("tmptest_gdbm", 0644)) } ensure - Process.wait + Process.wait pid gdbm2.close if gdbm2 end p Dir.glob("tmptest_gdbm*") if $DEBUG - fork() { + pid = fork() { assert_instance_of(GDBM, gdbm = GDBM.open("tmptest_gdbm", 0644)) sleep 2 } @@ -189,7 +189,7 @@ def test_s_open_nolock GDBM::NOLOCK)) } ensure - Process.wait + Process.wait pid gdbm2.close if gdbm2 end end @@ -660,8 +660,32 @@ def teardown FileUtils.rm_rf TMPROOT if File.directory?(TMPROOT) end + def test_reader_open_notexist + assert_raise(Errno::ENOENT) { + GDBM.open("#{TMPROOT}/a", 0666, GDBM::READER) + } + end + + def test_writer_open_notexist + assert_raise(Errno::ENOENT) { + GDBM.open("#{TMPROOT}/a", 0666, GDBM::WRITER) + } + end + + def test_wrcreat_open_notexist + v = GDBM.open("#{TMPROOT}/a", 0666, GDBM::WRCREAT) + assert_instance_of(GDBM, v) + v.close + end + + def test_newdb_open_notexist + v = GDBM.open("#{TMPROOT}/a", 0666, GDBM::NEWDB) + assert_instance_of(GDBM, v) + v.close + end + def test_reader_open - GDBM.open("#{TMPROOT}/a.dbm") {} + GDBM.open("#{TMPROOT}/a.dbm") {} # create a db. v = GDBM.open("#{TMPROOT}/a.dbm", nil, GDBM::READER) {|d| assert_raises(GDBMError) { d["k"] = "v" } true diff --git a/test/sdbm/test_sdbm.rb b/test/sdbm/test_sdbm.rb index 3cc75bf23c384d..09062d311f0ce4 100644 --- a/test/sdbm/test_sdbm.rb +++ b/test/sdbm/test_sdbm.rb @@ -81,7 +81,7 @@ def test_s_open_nolock end return unless have_fork? # snip this test - fork() { + pid = fork() { assert_instance_of(SDBM, sdbm = SDBM.open("tmptest_sdbm", 0644, SDBM::NOLOCK)) sleep 2 @@ -93,13 +93,13 @@ def test_s_open_nolock assert_instance_of(SDBM, sdbm2 = SDBM.open("tmptest_sdbm", 0644)) } ensure - Process.wait + Process.wait pid sdbm2.close if sdbm2 end p Dir.glob("tmptest_sdbm*") if $DEBUG - fork() { + pid = fork() { assert_instance_of(SDBM, sdbm = SDBM.open("tmptest_sdbm", 0644)) sleep 2 } @@ -112,7 +112,7 @@ def test_s_open_nolock SDBM::NOLOCK)) } ensure - Process.wait + Process.wait pid sdbm2.close if sdbm2 end end