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

* eval.c, vm_insnhelper.c: fix cref in instance_eval

and cvar_base search protocol.
* bootstraptest/test_knownbug.rb, test_eval.rb: move soleved test
  and add new tests.
* test/ruby/test_eval.rb: fix tests for spec.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2008-05-19 18:47:56 +00:00
parent e07663ec1f
commit d457fdad2d
6 changed files with 105 additions and 52 deletions

View file

@ -139,7 +139,7 @@ class TestEval < Test::Unit::TestCase
assert_equal 11, o.instance_eval("11")
assert_equal 12, o.instance_eval("@ivar")
assert_raise(NameError) {o.instance_eval("@@cvar")}
assert_equal 13, o.instance_eval("@@cvar")
assert_equal 14, o.instance_eval("$gvar__eval")
assert_equal 15, o.instance_eval("Const")
assert_equal 16, o.instance_eval("7 + 9")
@ -149,7 +149,7 @@ class TestEval < Test::Unit::TestCase
1.times {
assert_equal 12, o.instance_eval("@ivar")
assert_raise(NameError) {o.instance_eval("@@cvar")}
assert_equal 13, o.instance_eval("@@cvar")
assert_equal 14, o.instance_eval("$gvar__eval")
assert_equal 15, o.instance_eval("Const")
}
@ -169,7 +169,7 @@ class TestEval < Test::Unit::TestCase
assert_equal 11, o.instance_eval { 11 }
assert_equal 12, o.instance_eval { @ivar }
assert_raise(NameError) {o.instance_eval{ @@cvar }}
assert_equal 13, o.instance_eval { @@cvar }
assert_equal 14, o.instance_eval { $gvar__eval }
assert_equal 15, o.instance_eval { Const }
assert_equal 16, o.instance_eval { 7 + 9 }
@ -179,7 +179,7 @@ class TestEval < Test::Unit::TestCase
1.times {
assert_equal 12, o.instance_eval { @ivar }
assert_raise(NameError) {o.instance_eval{ @@cvar }}
assert_equal 13, o.instance_eval { @@cvar }
assert_equal 14, o.instance_eval { $gvar__eval }
assert_equal 15, o.instance_eval { Const }
}
@ -187,8 +187,10 @@ class TestEval < Test::Unit::TestCase
def test_instance_eval_cvar
[Object.new, [], 7, :sym, true, false, nil].each do |obj|
assert_raise(NameError){obj.instance_eval("@@cvar")}
assert_raise(NameError){obj.instance_eval{@@cvar}}
assert_equal(13, obj.instance_eval("@@cvar"))
assert_equal(13, obj.instance_eval{@@cvar})
# assert_raise(NameError){obj.instance_eval("@@cvar")}
# assert_raise(NameError){obj.instance_eval{@@cvar}}
end
end
@ -339,9 +341,10 @@ class TestEval < Test::Unit::TestCase
end
def test_cvar_scope_with_instance_eval
# TODO: check
Fixnum.class_eval "@@test_cvar_scope_with_instance_eval = 1" # depends on [ruby-dev:24229]
@@test_cvar_scope_with_instance_eval = 4
assert_equal(1, 1.instance_eval("@@test_cvar_scope_with_instance_eval"), "[ruby-dev:24223]")
assert_equal(4, 1.instance_eval("@@test_cvar_scope_with_instance_eval"), "[ruby-dev:24223]")
Fixnum.__send__(:remove_class_variable, :@@test_cvar_scope_with_instance_eval)
end