summaryrefslogtreecommitdiff
path: root/test/-ext-/hash
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-23 12:42:57 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-10-23 12:42:57 +0000
commitca7835bec6714f0704a32a25d2c23e465f3c10b2 (patch)
tree50db1476fe90a7e0afb363383656bce7389cb766 /test/-ext-/hash
parentd8918fa6b5ecf660ebdb5530fa971e324f6847bb (diff)
hash.c: rb_hash_delete does not call the block
* hash.c (rb_hash_delete): now does not call the block given to the current method. [ruby-core:65861] [Bug #10413] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48114 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test/-ext-/hash')
-rw-r--r--test/-ext-/hash/test_delete.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/-ext-/hash/test_delete.rb b/test/-ext-/hash/test_delete.rb
new file mode 100644
index 0000000000..d4f2023e75
--- /dev/null
+++ b/test/-ext-/hash/test_delete.rb
@@ -0,0 +1,19 @@
+require 'test/unit'
+require '-test-/hash'
+
+class TestHash < Test::Unit::TestCase
+ class TestDelete < Test::Unit::TestCase
+ def test_delete
+ hash = Bug::Hash.new
+ hash[1] = 2
+ called = false
+ assert_equal 1, hash.size
+ assert_equal true, hash.delete(1) {called = true}
+ assert_equal false, called, "block called"
+ assert_equal 0, hash.size
+ assert_equal false, hash.delete(1) {called = true}
+ assert_equal false, called, "block called"
+ assert_equal 0, hash.size
+ end
+ end
+end