mirror of
https://github.com/ruby/ruby.git
synced 2025-09-23 20:44:00 +02:00
object.c: check const names
* object.c (rb_mod_const_get, rb_mod_const_defined): check constant names more strictly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44197 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
1e4a955435
commit
a370556cd2
2 changed files with 24 additions and 10 deletions
|
@ -240,7 +240,7 @@ class TestModule < Test::Unit::TestCase
|
|||
assert_not_operator(Math, :const_defined?, "IP")
|
||||
end
|
||||
|
||||
def test_bad_constants
|
||||
def each_bad_constants(m, &b)
|
||||
[
|
||||
"#<Class:0x7b8b718b>",
|
||||
":Object",
|
||||
|
@ -248,15 +248,28 @@ class TestModule < Test::Unit::TestCase
|
|||
":",
|
||||
["String::", "[Bug #7573]"],
|
||||
"\u3042",
|
||||
"Name?",
|
||||
].each do |name, msg|
|
||||
expected = "wrong constant name %s" % quote(name)
|
||||
msg = "#{msg}#{': ' if msg}wrong constant name #{name.dump}"
|
||||
assert_raise_with_message(NameError, expected, msg) {
|
||||
Object.const_get name
|
||||
}
|
||||
assert_raise_with_message(NameError, expected, "#{msg} to #{m}") do
|
||||
yield name
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def test_bad_constants_get
|
||||
each_bad_constants("get") {|name|
|
||||
Object.const_get name
|
||||
}
|
||||
end
|
||||
|
||||
def test_bad_constants_defined
|
||||
each_bad_constants("defined?") {|name|
|
||||
Object.const_defined? name
|
||||
}
|
||||
end
|
||||
|
||||
def test_leading_colons
|
||||
assert_equal Object, AClass.const_get('::Object')
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue