From caa535286d7442ddcbc1caf9fb2778efd435c56d Mon Sep 17 00:00:00 2001 From: ko1 Date: Wed, 27 Jun 2007 16:26:31 +0000 Subject: * bootstraptest/runner.rb: fix to show file name. * bootstraptest/test_*.rb: add bootstarp tests. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12639 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- bootstraptest/test_flow.rb | 491 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 491 insertions(+) create mode 100644 bootstraptest/test_flow.rb (limited to 'bootstraptest/test_flow.rb') diff --git a/bootstraptest/test_flow.rb b/bootstraptest/test_flow.rb new file mode 100644 index 0000000000..9964dfb2ed --- /dev/null +++ b/bootstraptest/test_flow.rb @@ -0,0 +1,491 @@ +assert_equal %q{[1, 2, 4, 5, 6, 7, 8]}, %q{$a = []; begin; ; $a << 1 + [1,2].each{; $a << 2 + break; $a << 3 + }; $a << 4 + begin; $a << 5 + ensure; $a << 6 + end; $a << 7 +; $a << 8 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 5, 6, 7, 8]}, %q{$a = []; begin; ; $a << 1 + begin; $a << 2 + [1,2].each do; $a << 3 + break; $a << 4 + end; $a << 5 + ensure; $a << 6 + end; $a << 7 +; $a << 8 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{ok}, %q{ + ["a"].inject("ng"){|x,y| + break :ok + } +} +assert_equal %q{ok}, %q{ + unless ''.respond_to? :lines + class String + def lines + self + end + end + end + + ('a').lines.map{|e| + break :ok + } +} +assert_equal %q{[1, 2, 4, 5]}, %q{$a = []; begin; ; $a << 1 + ["a"].inject("ng"){|x,y|; $a << 2 + break :ok; $a << 3 + }; $a << 4 +; $a << 5 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 4, 5]}, %q{$a = []; begin; ; $a << 1 + ('a'..'b').map{|e|; $a << 2 + break :ok; $a << 3 + }; $a << 4 +; $a << 5 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 5, 7, 8]}, %q{$a = []; begin; ; $a << 1 + [1,2].each do; $a << 2 + begin; $a << 3 + break; $a << 4 + ensure; $a << 5 + end; $a << 6 + end; $a << 7 +; $a << 8 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 5, 6, 9, 10]}, %q{$a = []; begin; ; $a << 1 + i=0; $a << 2 + while i<3; $a << 3 + i+=1; $a << 4 + begin; $a << 5 + ensure; $a << 6 + break; $a << 7 + end; $a << 8 + end; $a << 9 +; $a << 10 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 5, 7, 10, 11]}, %q{$a = []; begin; ; $a << 1 + i=0; $a << 2 + while i<3; $a << 3 + i+=1; $a << 4 + begin; $a << 5 + raise; $a << 6 + ensure; $a << 7 + break; $a << 8 + end; $a << 9 + end; $a << 10 +; $a << 11 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 5, 7, 10, 11]}, %q{$a = []; begin; ; $a << 1 + i=0; $a << 2 + while i<3; $a << 3 + i+=1; $a << 4 + begin; $a << 5 + raise; $a << 6 + rescue; $a << 7 + break; $a << 8 + end; $a << 9 + end; $a << 10 +; $a << 11 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 5, 8, 9]}, %q{$a = []; begin; ; $a << 1 + [1,2].each do; $a << 2 + begin; $a << 3 + raise StandardError; $a << 4 + ensure; $a << 5 + break; $a << 6 + end; $a << 7 + end; $a << 8 +; $a << 9 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 5, 8, 9]}, %q{$a = []; begin; ; $a << 1 + [1,2].each do; $a << 2 + begin; $a << 3 + raise StandardError; $a << 4 + rescue; $a << 5 + break; $a << 6 + end; $a << 7 + end; $a << 8 +; $a << 9 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 6, 8, 10, 11]}, %q{$a = []; begin; ; $a << 1 + [1,2].each do; $a << 2 + begin; $a << 3 + begin; $a << 4 + break; $a << 5 + ensure; $a << 6 + end; $a << 7 + ensure; $a << 8 + end; $a << 9 + end; $a << 10 +; $a << 11 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 5, 6, 7, 8, 10, 13, 3, 4, 5, 6, 7, 8, 10, 13, 3, 4, 5, 6, 7, 8, 10, 13, 14, 15]}, %q{$a = []; begin; ; $a << 1 + i = 0; $a << 2 + while i<3; $a << 3 + i+=1; $a << 4 + j = 0; $a << 5 + while j<3; $a << 6 + j+=1; $a << 7 + begin; $a << 8 + raise; $a << 9 + rescue; $a << 10 + break; $a << 11 + end; $a << 12 + end; $a << 13 + end; $a << 14 +; $a << 15 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 16, 17]}, %q{$a = []; begin; ; $a << 1 + i = 0; $a << 2 + while i<3; $a << 3 + i+=1; $a << 4 + j = 0; $a << 5 + while j<3; $a << 6 + j+=1; $a << 7 + 1.times{; $a << 8 + begin; $a << 9 + raise; $a << 10 + rescue; $a << 11 + break; $a << 12 + end; $a << 13 + }; $a << 14 + end; $a << 15 + end; $a << 16 +; $a << 17 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 5, 6, 7, 8, 10, 13, 3, 4, 5, 6, 7, 8, 10, 13, 3, 4, 5, 6, 7, 8, 10, 13, 14, 15]}, %q{$a = []; begin; ; $a << 1 + i = 0; $a << 2 + while i<3; $a << 3 + i+=1; $a << 4 + j = 0; $a << 5 + while j<3; $a << 6 + j+=1; $a << 7 + begin; $a << 8 + raise; $a << 9 + ensure; $a << 10 + break; $a << 11 + end; $a << 12 + end; $a << 13 + end; $a << 14 +; $a << 15 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 3, 4, 5, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 6, 7, 8, 9, 11, 14, 15, 16, 17]}, %q{$a = []; begin; ; $a << 1 + i = 0; $a << 2 + while i<3; $a << 3 + i+=1; $a << 4 + j = 0; $a << 5 + while j<3; $a << 6 + j+=1; $a << 7 + 1.times{; $a << 8 + begin; $a << 9 + raise; $a << 10 + ensure; $a << 11 + break; $a << 12 + end; $a << 13 + }; $a << 14 + end; $a << 15 + end; $a << 16 +; $a << 17 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 5, 8, 9]}, %q{$a = []; begin; ; $a << 1 + while true; $a << 2 + begin; $a << 3 + break; $a << 4 + ensure; $a << 5 + break; $a << 6 + end; $a << 7 + end; $a << 8 +; $a << 9 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 5, 99]}, %q{$a = []; begin; ; $a << 1 + while true; $a << 2 + begin; $a << 3 + break; $a << 4 + ensure; $a << 5 + raise; $a << 6 + end; $a << 7 + end; $a << 8 +; $a << 9 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 6, 8, 9, 10, 11]}, %q{$a = []; begin; ; $a << 1 + begin; $a << 2 + [1,2].each do; $a << 3 + begin; $a << 4 + break; $a << 5 + ensure; $a << 6 + end; $a << 7 + end; $a << 8 + ensure; $a << 9 + end; $a << 10 +; $a << 11 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 4, 99]}, %q{$a = []; begin; ; $a << 1 + begin; $a << 2 + raise StandardError; $a << 3 + ensure; $a << 4 + end; $a << 5 +; $a << 6 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4]}, %q{$a = []; begin; ; $a << 1 + begin; $a << 2 + ensure; $a << 3 + end ; $a << 4 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 5, 99]}, %q{$a = []; begin; ; $a << 1 + [1,2].each do; $a << 2 + begin; $a << 3 + break; $a << 4 + ensure; $a << 5 + raise StandardError; $a << 6 + end; $a << 7 + end; $a << 8 +; $a << 9 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{3}, %q{ + def m a, b + a + b + end + m(1, + while true + break 2 + end + ) +} +assert_equal %q{4}, %q{ + def m a, b + a + b + end + m(1, + (i=0; while i<2 + i+=1 + class C + next 2 + end + end; 3) + ) +} +assert_equal %q{34}, %q{ + def m a, b + a+b + end + m(1, 1.times{break 3}) + + m(10, (1.times{next 3}; 20)) +} +assert_equal %q{[1, 2, 3, 6, 7]}, %q{$a = []; begin; ; $a << 1 + 3.times{; $a << 2 + class C; $a << 3 + break; $a << 4 + end; $a << 5 + }; $a << 6 +; $a << 7 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 8, 9]}, %q{$a = []; begin; ; $a << 1 + 3.times{; $a << 2 + class A; $a << 3 + class B; $a << 4 + break; $a << 5 + end; $a << 6 + end; $a << 7 + }; $a << 8 +; $a << 9 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 2, 3, 2, 3, 6, 7]}, %q{$a = []; begin; ; $a << 1 + 3.times{; $a << 2 + class C; $a << 3 + next; $a << 4 + end; $a << 5 + }; $a << 6 +; $a << 7 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 2, 3, 4, 2, 3, 4, 8, 9]}, %q{$a = []; begin; ; $a << 1 + 3.times{; $a << 2 + class C; $a << 3 + class D; $a << 4 + next; $a << 5 + end; $a << 6 + end; $a << 7 + }; $a << 8 +; $a << 9 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 6, 7]}, %q{$a = []; begin; ; $a << 1 + while true; $a << 2 + class C; $a << 3 + break; $a << 4 + end; $a << 5 + end; $a << 6 +; $a << 7 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 8, 9]}, %q{$a = []; begin; ; $a << 1 + while true; $a << 2 + class C; $a << 3 + class D; $a << 4 + break; $a << 5 + end; $a << 6 + end; $a << 7 + end; $a << 8 +; $a << 9 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 3, 4, 5, 3, 4, 5, 3, 4, 5, 8, 9]}, %q{$a = []; begin; ; $a << 1 + i=0; $a << 2 + while i<3; $a << 3 + i+=1; $a << 4 + class C; $a << 5 + next 10; $a << 6 + end; $a << 7 + end; $a << 8 +; $a << 9 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{1}, %q{ + 1.times{ + while true + class C + begin + break + ensure + break + end + end + end + } +} +assert_equal %q{[1, 2, 3, 5, 2, 3, 5, 7, 8]}, %q{$a = []; begin; ; $a << 1 + [1,2].each do; $a << 2 + begin; $a << 3 + next; $a << 4 + ensure; $a << 5 + end; $a << 6 + end; $a << 7 +; $a << 8 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 2, 6, 3, 5, 7, 8]}, %q{$a = []; begin; ; $a << 1 + o = "test"; $a << 2 + def o.test(a); $a << 3 + return a; $a << 4 + ensure; $a << 5 + end; $a << 6 + o.test(123); $a << 7 +; $a << 8 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 4, 7, 5, 8, 9]}, %q{$a = []; begin; ; $a << 1 + def m1 *args; $a << 2 + ; $a << 3 + end; $a << 4 + def m2; $a << 5 + m1(:a, :b, (return 1; :c)); $a << 6 + end; $a << 7 + m2; $a << 8 +; $a << 9 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 8, 2, 3, 4, 5, 9, 10]}, %q{$a = []; begin; ; $a << 1 + def m(); $a << 2 + begin; $a << 3 + 2; $a << 4 + ensure; $a << 5 + return 3; $a << 6 + end; $a << 7 + end; $a << 8 + m; $a << 9 +; $a << 10 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 3, 11, 4, 5, 6, 7, 12, 13]}, %q{$a = []; begin; ; $a << 1 + def m2; $a << 2 + end; $a << 3 + def m(); $a << 4 + m2(begin; $a << 5 + 2; $a << 6 + ensure; $a << 7 + return 3; $a << 8 + end); $a << 9 + 4; $a << 10 + end; $a << 11 + m(); $a << 12 +; $a << 13 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[1, 16, 2, 3, 4, 5, 6, 7, 10, 11, 17, 18]}, %q{$a = []; begin; ; $a << 1 + def m; $a << 2 + 1; $a << 3 + 1.times{; $a << 4 + 2; $a << 5 + begin; $a << 6 + 3; $a << 7 + return; $a << 8 + 4; $a << 9 + ensure; $a << 10 + 5; $a << 11 + end; $a << 12 + 6; $a << 13 + }; $a << 14 + 7; $a << 15 + end; $a << 16 + m(); $a << 17 +; $a << 18 +; rescue Exception; $a << 99; end; $a} +assert_equal %q{[:ok, :ok2, :last]}, %q{ + a = [] + i = 0 + begin + while i < 1 + i+=1 + begin + begin + next + ensure + a << :ok + end + ensure + a << :ok2 + end + end + ensure + a << :last + end + a +} +assert_equal %q{[:ok, :ok2, :last]}, %q{ + a = [] + i = 0 + begin + while i < 1 + i+=1 + begin + begin + break + ensure + a << :ok + end + ensure + a << :ok2 + end + end + ensure + a << :last + end + a +} +assert_equal %q{[:ok, :ok2, :last]}, %q{ + a = [] + i = 0 + begin + while i < 1 + if i>0 + break + end + i+=1 + begin + begin + redo + ensure + a << :ok + end + ensure + a << :ok2 + end + end + ensure + a << :last + end + a + } -- cgit v1.2.3