Skip to content

Commit

Permalink
dbm/test_dbm.rb: specify pid for Process.wait.
Browse files Browse the repository at this point in the history
gdbm/test_gdbm.rb: ditto.
sdbm/test_sdbm.rb: ditto.

dbm/test_dbm.rb: add tests for open when db is not exist.
gdbm/test_gdbm.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information
akr committed Aug 12, 2005
1 parent 66323da commit 2b5bb9a
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 18 deletions.
38 changes: 31 additions & 7 deletions test/dbm/test_dbm.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -101,7 +101,7 @@ def test_s_open_lock
end
}
ensure
Process.wait
Process.wait pid
end
end

Expand All @@ -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
Expand All @@ -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
}
Expand All @@ -158,7 +158,7 @@ def test_s_open_nolock
DBM::NOLOCK))
}
ensure
Process.wait
Process.wait pid
dbm2.close if dbm2
end
end
Expand Down Expand Up @@ -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.
Expand Down
38 changes: 31 additions & 7 deletions test/gdbm/test_gdbm.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -132,7 +132,7 @@ def test_s_open_lock
end
}
ensure
Process.wait
Process.wait pid
end
end

Expand All @@ -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
Expand All @@ -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
}
Expand All @@ -189,7 +189,7 @@ def test_s_open_nolock
GDBM::NOLOCK))
}
ensure
Process.wait
Process.wait pid
gdbm2.close if gdbm2
end
end
Expand Down Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions test/sdbm/test_sdbm.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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
}
Expand All @@ -112,7 +112,7 @@ def test_s_open_nolock
SDBM::NOLOCK))
}
ensure
Process.wait
Process.wait pid
sdbm2.close if sdbm2
end
end
Expand Down

0 comments on commit 2b5bb9a

Please sign in to comment.