summaryrefslogtreecommitdiff
path: root/ruby_1_8_6/test/ruby/test_eval.rb
diff options
context:
space:
mode:
Diffstat (limited to 'ruby_1_8_6/test/ruby/test_eval.rb')
-rw-r--r--ruby_1_8_6/test/ruby/test_eval.rb157
1 files changed, 0 insertions, 157 deletions
diff --git a/ruby_1_8_6/test/ruby/test_eval.rb b/ruby_1_8_6/test/ruby/test_eval.rb
deleted file mode 100644
index 6b3fea7bb4..0000000000
--- a/ruby_1_8_6/test/ruby/test_eval.rb
+++ /dev/null
@@ -1,157 +0,0 @@
-require 'test/unit'
-
-class TestEval < Test::Unit::TestCase
- # eval with binding
- def test_ev
- local1 = "local1"
- lambda {
- local2 = "local2"
- return binding
- }.call
- end
-
- def test_eval
- assert_nil(eval(""))
- $bad=false
- eval 'while false; $bad = true; print "foo\n" end'
- assert(!$bad)
-
- assert(eval('TRUE'))
- assert(eval('true'))
- assert(!eval('NIL'))
- assert(!eval('nil'))
- assert(!eval('FALSE'))
- assert(!eval('false'))
-
- $foo = 'assert(true)'
- begin
- eval $foo
- rescue
- assert(false)
- end
-
- assert_equal('assert(true)', eval("$foo"))
- assert_equal(true, eval("true"))
- i = 5
- assert(eval("i == 5"))
- assert_equal(5, eval("i"))
- assert(eval("defined? i"))
-
- $x = test_ev
- assert_equal("local1", eval("local1", $x)) # normal local var
- assert_equal("local2", eval("local2", $x)) # nested local var
- $bad = true
- begin
- p eval("local1")
- rescue NameError # must raise error
- $bad = false
- end
- assert(!$bad)
-
- # !! use class_eval to avoid nested definition
- self.class.class_eval %q(
- module EvTest
- EVTEST1 = 25
- evtest2 = 125
- $x = binding
- end
- )
- assert_equal(25, eval("EVTEST1", $x)) # constant in module
- assert_equal(125, eval("evtest2", $x)) # local var in module
- $bad = true
- begin
- eval("EVTEST1")
- rescue NameError # must raise error
- $bad = false
- end
- assert(!$bad)
-
- x = proc{}
- eval "i4 = 1", x
- assert_equal(1, eval("i4", x))
- x = proc{proc{}}.call
- eval "i4 = 22", x
- assert_equal(22, eval("i4", x))
- $x = []
- x = proc{proc{}}.call
- eval "(0..9).each{|i5| $x[i5] = proc{i5*2}}", x
- assert_equal(8, $x[4].call)
-
- x = binding
- eval "i = 1", x
- assert_equal(1, eval("i", x))
- x = proc{binding}.call
- eval "i = 22", x
- assert_equal(22, eval("i", x))
- $x = []
- x = proc{binding}.call
- eval "(0..9).each{|i5| $x[i5] = proc{i5*2}}", x
- assert_equal(8, $x[4].call)
- x = proc{binding}.call
- eval "for i6 in 1..1; j6=i6; end", x
- assert(eval("defined? i6", x))
- assert(eval("defined? j6", x))
-
- proc {
- p = binding
- eval "foo11 = 1", p
- foo22 = 5
- proc{foo11=22}.call
- proc{foo22=55}.call
- assert_equal(eval("foo11"), eval("foo11", p))
- assert_equal(1, eval("foo11"))
- assert_equal(eval("foo22"), eval("foo22", p))
- assert_equal(55, eval("foo22"))
- }.call
-
- p1 = proc{i7 = 0; proc{i7}}.call
- assert_equal(0, p1.call)
- eval "i7=5", p1
- assert_equal(5, p1.call)
- assert(!defined?(i7))
-
- p1 = proc{i7 = 0; proc{i7}}.call
- i7 = nil
- assert_equal(0, p1.call)
- eval "i7=1", p1
- assert_equal(1, p1.call)
- eval "i7=5", p1
- assert_equal(5, p1.call)
- assert_nil(i7)
- end
-
- def test_nil_instance_eval_cvar # [ruby-dev:24103]
- def nil.test_binding
- binding
- end
- bb = eval("nil.instance_eval \"binding\"", nil.test_binding)
- assert_raise(NameError) { eval("@@a", bb) }
- class << nil
- remove_method :test_binding
- end
- end
-
- def test_fixnum_instance_eval_cvar # [ruby-dev:24213]
- assert_raise(NameError) { 1.instance_eval "@@a" }
- end
-
- def test_cvar_scope_with_instance_eval # [ruby-dev:24223]
- Fixnum.class_eval "@@test_cvar_scope_with_instance_eval = 1" # depends on [ruby-dev:24229]
- @@test_cvar_scope_with_instance_eval = 4
- assert_equal(4, 1.instance_eval("@@test_cvar_scope_with_instance_eval"))
- Fixnum.__send__(:remove_class_variable, :@@test_cvar_scope_with_instance_eval)
- end
-
- def test_eval_and_define_method # [ruby-dev:24228]
- assert_nothing_raised {
- def temporally_method_for_test_eval_and_define_method(&block)
- lambda {
- class << Object.new; self end.__send__(:define_method, :zzz, &block)
- }
- end
- v = eval("temporally_method_for_test_eval_and_define_method {}")
- {}[0] = {}
- v.call
- }
- end
-end