summaryrefslogtreecommitdiff
path: root/test/ruby/test_enumerator.rb
diff options
context:
space:
mode:
authorYusuke Endoh <mame@ruby-lang.org>2020-09-25 23:45:42 +0900
committerYusuke Endoh <mame@ruby-lang.org>2020-09-25 23:45:42 +0900
commitabdd3c5616e82af487249ef5e9d3e42bc983de1c (patch)
tree27d7385836229857cfd644ef7bb0fe9e79ae106f /test/ruby/test_enumerator.rb
parent0db5324e0d3e891768962de8da7507be0288f18f (diff)
test/ruby/test_enumerator.rb: check the deprecation warning
by explicitly setting `Warning[:deprecated] = true`. I removed "capture_io" at 79063d8cbfb7ce4740774289252a2a20dc9a5dc1, but it printed the warning when `RUBYOPT=-w`. This change makes the warnings enabled explicitly, capture and check the warning.
Diffstat (limited to 'test/ruby/test_enumerator.rb')
-rw-r--r--test/ruby/test_enumerator.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/test/ruby/test_enumerator.rb b/test/ruby/test_enumerator.rb
index 8544c42fd4..5b634ef72f 100644
--- a/test/ruby/test_enumerator.rb
+++ b/test/ruby/test_enumerator.rb
@@ -69,7 +69,15 @@ class TestEnumerator < Test::Unit::TestCase
def test_initialize
assert_equal([1, 2, 3], @obj.to_enum(:foo, 1, 2, 3).to_a)
- assert_equal([1, 2, 3], Enumerator.new(@obj, :foo, 1, 2, 3).to_a)
+ begin
+ deprecated_bak, Warning[:deprecated] = Warning[:deprecated], true
+ _, err = capture_io do
+ assert_equal([1, 2, 3], Enumerator.new(@obj, :foo, 1, 2, 3).to_a)
+ end
+ assert_match 'Enumerator.new without a block is deprecated', err
+ ensure
+ Warning[:deprecated] = deprecated_bak
+ end
assert_equal([1, 2, 3], Enumerator.new { |y| i = 0; loop { y << (i += 1) } }.take(3))
assert_raise(ArgumentError) { Enumerator.new }