summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-25 05:40:41 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-25 05:40:41 +0000
commitc4b30b4449b0f8c843871a6468eaa416335c7024 (patch)
tree83e40f64b03beca781ec558141fd06c3021affdc /test
parentdea037cc67be817ae75719ad76332c7e451c8b53 (diff)
* test/ruby/test_eval.rb: add new test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test')
-rw-r--r--test/ruby/test_eval.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/test/ruby/test_eval.rb b/test/ruby/test_eval.rb
index 23d34a5f81..2f4b0bfbbd 100644
--- a/test/ruby/test_eval.rb
+++ b/test/ruby/test_eval.rb
@@ -1,4 +1,5 @@
require 'test/unit'
+require_relative 'envutil'
class TestEval < Test::Unit::TestCase
@@ -7,6 +8,15 @@ class TestEval < Test::Unit::TestCase
$gvar__eval = 14
Const = 15
+ def ruby(*args)
+ args = ['-e', '$>.write($<.read)'] if args.empty?
+ ruby = EnvUtil.rubybin
+ f = IO.popen([ruby] + args, 'r+')
+ yield(f)
+ ensure
+ f.close unless !f || f.closed?
+ end
+
def test_eval_basic
assert_equal nil, eval("nil")
assert_equal true, eval("true")
@@ -391,4 +401,11 @@ class TestEval < Test::Unit::TestCase
end.join
end
end
+
+ def test_eval_with_toplevel_binding # [ruby-dev:37142]
+ ruby("-e", "x = 0; eval('p x', TOPLEVEL_BINDING)") do |f|
+ f.close_write
+ assert_equal("0", f.read.chomp)
+ end
+ end
end