aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2020-04-22 22:21:11 +0900
committernagachika <nagachika@ruby-lang.org>2020-08-01 17:17:00 +0900
commit34427bc09e68a81a9986bc7fe0d1d9886e6d00d5 (patch)
tree7a138488ff685969b218ded58cf75e560fd42839
parenta024bae53999cb02f6ef556bbe03af8b6d002bcf (diff)
downloadruby-34427bc09e68a81a9986bc7fe0d1d9886e6d00d5.tar.gz
Split test_defined
-rw-r--r--test/ruby/test_defined.rb18
1 files changed, 16 insertions, 2 deletions
diff --git a/test/ruby/test_defined.rb b/test/ruby/test_defined.rb
index 9976db3b6f..d254857dea 100644
--- a/test/ruby/test_defined.rb
+++ b/test/ruby/test_defined.rb
@@ -23,24 +23,30 @@ class TestDefined < Test::Unit::TestCase
return !defined?(yield)
end
- def test_defined
+ def test_defined_gloval_variable
$x = nil
assert(defined?($x)) # global variable
assert_equal('global-variable', defined?($x))# returns description
+ end
+ def test_defined_local_variable
assert_nil(defined?(foo)) # undefined
foo=5
assert(defined?(foo)) # local variable
+ end
+ def test_defined_constant
assert(defined?(Array)) # constant
assert(defined?(::Array)) # toplevel constant
assert(defined?(File::Constants)) # nested constant
+ end
+
+ def test_defined_method
assert(defined?(Object.new)) # method
assert(defined?(Object::new)) # method
assert(!defined?(Object.print)) # private method
assert(defined?(1 == 2)) # operator expression
-
f = Foo.new
assert_nil(defined?(f.foo)) # protected method
f.bar(f) { |v| assert(v) }
@@ -53,10 +59,14 @@ class TestDefined < Test::Unit::TestCase
assert_nil(defined?(quux(x)))
assert(defined?(f.attr = 1))
f.attrasgn_test { |v| assert(v) }
+ end
+ def test_defined_yield
assert(defined_test) # not iterator
assert(!defined_test{}) # called as iterator
+ end
+ def test_defined_matchdata
/a/ =~ ''
assert_equal nil, defined?($&)
assert_equal nil, defined?($`)
@@ -85,12 +95,16 @@ class TestDefined < Test::Unit::TestCase
assert_equal 'global-variable', defined?($+)
assert_equal 'global-variable', defined?($1)
assert_equal nil, defined?($2)
+ end
+ def test_defined_literal
assert_equal("nil", defined?(nil))
assert_equal("true", defined?(true))
assert_equal("false", defined?(false))
assert_equal("expression", defined?(1))
+ end
+ def test_defined_empty_paren_expr
bug8224 = '[ruby-core:54024] [Bug #8224]'
(1..3).each do |level|
expr = "("*level+")"*level