From 79692422922748c920d46dddfb13882a76037280 Mon Sep 17 00:00:00 2001 From: nahi Date: Thu, 4 Sep 2003 16:18:59 +0000 Subject: * test/ruby: tests for ruby itself. * test/ruby/test_*.rb: split sample/test.rb into 28 test/unit testcases. some tests could not be translates... search '!!' mark to see it. * test/csv/test_csv.rb: should require 'csv', not '../lib/csv'. test runner should set load path correctly. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@4498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/ruby/test_proc.rb | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 test/ruby/test_proc.rb (limited to 'test/ruby/test_proc.rb') diff --git a/test/ruby/test_proc.rb b/test/ruby/test_proc.rb new file mode 100644 index 000000000..0cf470ff0 --- /dev/null +++ b/test/ruby/test_proc.rb @@ -0,0 +1,45 @@ +require 'test/unit' + +$KCODE = 'none' + +class TestProc < Test::Unit::TestCase + def test_proc + $proc = proc{|i| i} + assert($proc.call(2) == 2) + assert($proc.call(3) == 3) + + $proc = proc{|i| i*2} + assert($proc.call(2) == 4) + assert($proc.call(3) == 6) + + proc{ + iii=5 # nested local variable + $proc = proc{|i| + iii = i + } + $proc2 = proc { + $x = iii # nested variables shared by procs + } + # scope of nested variables + assert(defined?(iii)) + }.call + assert(!defined?(iii)) # out of scope + + loop{iii=5; assert(eval("defined? iii")); break} + loop { + iii = 10 + def dyna_var_check + loop { + assert(!defined?(iii)) + break + } + end + dyna_var_check + break + } + $x=0 + $proc.call(5) + $proc2.call + assert($x == 5) + end +end -- cgit