1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* test/dbm/test_dbm.rb: remove locking test, which may not be

supported on some platforms.  [ruby-dev:27030]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9133 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
matz 2005-09-12 15:12:52 +00:00
parent 86f0a80d7d
commit 757f06fdc7

View file

@ -85,83 +85,6 @@ if defined? DBM
def test_s_open_with_block def test_s_open_with_block
assert_equal(DBM.open("tmptest_dbm") { :foo }, :foo) assert_equal(DBM.open("tmptest_dbm") { :foo }, :foo)
end end
def test_s_open_lock
return unless have_fork? # snip this test
pid = fork() {
assert_instance_of(DBM, dbm = DBM.open("tmptest_dbm", 0644))
sleep 2
}
begin
sleep 1
assert_raise(Errno::EWOULDBLOCK, "NEVER MIND IF YOU USE Berkeley DB3") {
begin
assert_instance_of(DBM, dbm2 = DBM.open("tmptest_dbm", 0644))
rescue Errno::EAGAIN, Errno::EACCES, Errno::EINVAL
raise Errno::EWOULDBLOCK
end
}
ensure
Process.wait pid
end
end
=begin
# Is it guaranteed on many OS?
def test_s_open_lock_one_process
# locking on one process
assert_instance_of(DBM, dbm = DBM.open("tmptest_dbm", 0644))
assert_raise(Errno::EWOULDBLOCK) {
begin
DBM.open("tmptest_dbm", 0644)
rescue Errno::EAGAIN
raise Errno::EWOULDBLOCK
end
}
end
=end
def test_s_open_nolock
# dbm 1.8.0 specific
if not defined? DBM::NOLOCK
return
end
return unless have_fork? # snip this test
pid = fork() {
assert_instance_of(DBM, dbm = DBM.open("tmptest_dbm", 0644,
DBM::NOLOCK))
sleep 2
}
sleep 1
begin
dbm2 = nil
assert_no_exception(Errno::EWOULDBLOCK, Errno::EAGAIN, Errno::EACCES) {
assert_instance_of(DBM, dbm2 = DBM.open("tmptest_dbm", 0644))
}
ensure
Process.wait pid
dbm2.close if dbm2
end
p Dir.glob("tmptest_dbm*") if $DEBUG
pid = fork() {
assert_instance_of(DBM, dbm = DBM.open("tmptest_dbm", 0644))
sleep 2
}
begin
sleep 1
dbm2 = nil
assert_no_exception(Errno::EWOULDBLOCK, Errno::EAGAIN, Errno::EACCES) {
# this test is failed on Cygwin98 (???)
assert_instance_of(DBM, dbm2 = DBM.open("tmptest_dbm", 0644,
DBM::NOLOCK))
}
ensure
Process.wait pid
dbm2.close if dbm2
end
end
def test_s_open_error def test_s_open_error
assert_instance_of(DBM, dbm = DBM.open("tmptest_dbm", 0)) assert_instance_of(DBM, dbm = DBM.open("tmptest_dbm", 0))