From 39fcd1cdf295d310c1bfd220324fef5b2f725230 Mon Sep 17 00:00:00 2001 From: ko1 Date: Mon, 19 May 2008 05:20:21 +0000 Subject: * bootstraptest/test_knownbug.rb: move solved tests. * bootstraptest/test_eval.rb, test_literal.rb, test_syntax.rb, test_thread.rb: ditto. * test/ruby/test_m17n.rb, test_proc.rb, test_sprintf.rb, test_string.rb, test/ruby/test_struct.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 10 ++++ bootstraptest/test_eval.rb | 9 +++ bootstraptest/test_knownbug.rb | 122 ----------------------------------------- bootstraptest/test_literal.rb | 16 ++++++ bootstraptest/test_syntax.rb | 50 +++++++++++++++++ bootstraptest/test_thread.rb | 22 ++++++++ test/ruby/test_m17n.rb | 9 +++ test/ruby/test_proc.rb | 12 ++++ test/ruby/test_sprintf.rb | 1 + test/ruby/test_string.rb | 5 ++ test/ruby/test_struct.rb | 6 ++ 11 files changed, 140 insertions(+), 122 deletions(-) diff --git a/ChangeLog b/ChangeLog index 805d78f2bd..dff834ecdc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +Mon May 19 14:18:13 2008 Koichi Sasada + + * bootstraptest/test_knownbug.rb: move solved tests. + + * bootstraptest/test_eval.rb, test_literal.rb, test_syntax.rb, + test_thread.rb: ditto. + + * test/ruby/test_m17n.rb, test_proc.rb, test_sprintf.rb, + test_string.rb, test/ruby/test_struct.rb: ditto. + Mon May 19 13:23:03 2008 NAKAMURA Usaku * process.c (rb_spawn_internal): set last_status when status == -1 diff --git a/bootstraptest/test_eval.rb b/bootstraptest/test_eval.rb index 47976a304e..339e763f46 100644 --- a/bootstraptest/test_eval.rb +++ b/bootstraptest/test_eval.rb @@ -227,3 +227,12 @@ assert_equal 'ok', %q{ :ng end }, "[ruby-dev:34236]" + +assert_equal 'ok', %q{ + begin + eval("class nil::Foo; end") + :ng + rescue Exception + :ok + end +} diff --git a/bootstraptest/test_knownbug.rb b/bootstraptest/test_knownbug.rb index 9041cfdbf4..afa258eb11 100644 --- a/bootstraptest/test_knownbug.rb +++ b/bootstraptest/test_knownbug.rb @@ -29,28 +29,6 @@ assert_equal 'ok', %q{ C.new.foo }, '[ruby-core:14813]' -assert_equal 'ok', %q{ - class X < RuntimeError;end - x = [X] - begin - raise X - rescue *x - :ok - end -}, '[ruby-core:14537]' - -assert_normal_exit %q{ - "abc".gsub(/./, "a" => "z") -} - -assert_normal_exit %q{ - Encoding.compatible?("",0) -} - -assert_normal_exit %q{ - "".center(1, "\x80".force_encoding("utf-8")) -}, '[ruby-dev:33807]' - assert_equal 'ok', %q{ a = lambda {|x, y, &b| b } b = a.curry[1] @@ -61,10 +39,6 @@ assert_equal 'ok', %q{ end }, '[ruby-core:15551]' -assert_normal_exit %q{ - sprintf("% 0e", 1.0/0.0) -} - assert_normal_exit %q{ g = Module.enum_for(:new) loop { g.next } @@ -110,102 +84,6 @@ assert_equal %q{[:bar, :foo]}, %q{ foo }, "[ ruby-Bugs-19304 ]" -assert_equal 'ok', %q{ - def a() end - begin - if defined?(a(1).a) - :ng - else - :ok - end - rescue - :ng - end -}, '[ruby-core:16010]' - -assert_equal 'ok', %q{ - def a() end - begin - if defined?(a::B) - :ng - else - :ok - end - rescue - :ng - end -}, '[ruby-core:16010]' - -assert_equal 'ok', %q{ - def m - t = Thread.new { while true do // =~ "" end } - sleep 0.1 - 10.times { - if /((ab)*(ab)*)*(b)/ =~ "ab"*7 - return :ng if !$4 - return :ng if $~.size != 5 - end - } - :ok - ensure - Thread.kill t - end - m -}, '[ruby-dev:34492]' - -assert_normal_exit %q{ - begin - r = 0**-1 - r + r - rescue - end -}, '[ruby-dev:34524]' - -assert_normal_exit %q{ - begin - r = Marshal.load("\x04\bU:\rRational[\ai\x06i\x05") - r + r - rescue - end -}, '[ruby-dev:34536]' - -assert_normal_exit %q{ - begin - Struct.new(0) - rescue - end -} - -assert_normal_exit %q{ - defined? C && 0 -} - -assert_normal_exit %q{ - class C - def m - defined?(super()) - end - end - C.new.m -} - -assert_normal_exit %q{ - [1,2,3].slice!(1,10000).inspect -} - -assert_equal 'ok', %q{ - begin - eval("class nil::Foo; end") - :ng - rescue Exception - :ok - end -} - -assert_normal_exit %q{ - at_exit { Fiber.new{}.resume } -} - assert_equal 'ok', %q{ lambda { break :ok diff --git a/bootstraptest/test_literal.rb b/bootstraptest/test_literal.rb index fe4e966a00..8480c65308 100644 --- a/bootstraptest/test_literal.rb +++ b/bootstraptest/test_literal.rb @@ -176,3 +176,19 @@ assert_equal 'ok', %q{ ObjectSpace.each_object(Module) {|m| m.name.inspect } :ok } + +assert_normal_exit %q{ + begin + r = 0**-1 + r + r + rescue + end +}, '[ruby-dev:34524]' + +assert_normal_exit %q{ + begin + r = Marshal.load("\x04\bU:\rRational[\ai\x06i\x05") + r + r + rescue + end +}, '[ruby-dev:34536]' diff --git a/bootstraptest/test_syntax.rb b/bootstraptest/test_syntax.rb index dc4cae3dff..5479de0573 100644 --- a/bootstraptest/test_syntax.rb +++ b/bootstraptest/test_syntax.rb @@ -767,3 +767,53 @@ assert_equal "1\n2\n", %q{ } assert_valid_syntax('1.times {|i|print (42),1;}', '[ruby-list:44479]') + +assert_equal 'ok', %q{ + def a() end + begin + if defined?(a(1).a) + :ng + else + :ok + end + rescue + :ng + end +}, '[ruby-core:16010]' + +assert_equal 'ok', %q{ + def a() end + begin + if defined?(a::B) + :ng + else + :ok + end + rescue + :ng + end +}, '[ruby-core:16010]' + +assert_normal_exit %q{ + defined? C && 0 +} + +assert_normal_exit %q{ + class C + def m + defined?(super()) + end + end + C.new.m +} + +assert_equal 'ok', %q{ + class X < RuntimeError;end + x = [X] + begin + raise X + rescue *x + :ok + end +}, '[ruby-core:14537]' + diff --git a/bootstraptest/test_thread.rb b/bootstraptest/test_thread.rb index 8d88a0f708..3b1fa3f2a8 100644 --- a/bootstraptest/test_thread.rb +++ b/bootstraptest/test_thread.rb @@ -246,3 +246,25 @@ assert_normal_exit %q{ t.join } } + +assert_equal 'ok', %q{ + def m + t = Thread.new { while true do // =~ "" end } + sleep 0.1 + 10.times { + if /((ab)*(ab)*)*(b)/ =~ "ab"*7 + return :ng if !$4 + return :ng if $~.size != 5 + end + } + :ok + ensure + Thread.kill t + end + m +}, '[ruby-dev:34492]' + +assert_normal_exit %q{ + at_exit { Fiber.new{}.resume } +} + diff --git a/test/ruby/test_m17n.rb b/test/ruby/test_m17n.rb index a09dcc8f3b..6f319b2b02 100644 --- a/test/ruby/test_m17n.rb +++ b/test/ruby/test_m17n.rb @@ -1233,4 +1233,13 @@ class TestM17N < Test::Unit::TestCase s.setbyte(-4, 0x84) assert_equal(u("\xE3\x81\x84\xE3\x81\x84"), s) end + + def test_compatible + assert_equal(nil, Encoding.compatible?("",0), "moved from btest/knownbug") + end + + def test_force_encoding + assert(("".center(1, "\x80".force_encoding("utf-8")); true), + "moved from btest/knownbug, [ruby-dev:33807]") + end end diff --git a/test/ruby/test_proc.rb b/test/ruby/test_proc.rb index 3c1ea76420..ee53eeaf3a 100644 --- a/test/ruby/test_proc.rb +++ b/test/ruby/test_proc.rb @@ -210,6 +210,18 @@ class TestProc < Test::Unit::TestCase assert_equal(fib, [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]) end + def test_curry_from_knownbug + a = lambda {|x, y, &b| b } + b = a.curry[1] + + assert_equal(:ok, + if b.call(2){} == nil + :ng + else + :ok + end, 'moved from btest/knownbug, [ruby-core:15551]') + end + def test_dup_clone b = proc {|x| x + "bar" } class << b; attr_accessor :foo; end diff --git a/test/ruby/test_sprintf.rb b/test/ruby/test_sprintf.rb index ecb4ed1208..cad9f5e031 100644 --- a/test/ruby/test_sprintf.rb +++ b/test/ruby/test_sprintf.rb @@ -185,6 +185,7 @@ class TestSprintf < Test::Unit::TestCase def test_float assert_equal("36893488147419111424", sprintf("%20.0f", 36893488147419107329.0)) + assert_equal(" Inf", sprintf("% 0e", 1.0/0.0), "moved from btest/knownbug") end BSIZ = 120 diff --git a/test/ruby/test_string.rb b/test/ruby/test_string.rb index 648287a677..10e49708f5 100644 --- a/test/ruby/test_string.rb +++ b/test/ruby/test_string.rb @@ -624,6 +624,8 @@ class TestString < Test::Unit::TestCase a.taint assert(a.gsub(/./, S('X')).tainted?) + assert_equal("z", "abc".gsub(/./, "a" => "z"), "moved from btest/knownbug") + assert_raise(ArgumentError) { "foo".gsub } end @@ -1063,6 +1065,9 @@ class TestString < Test::Unit::TestCase assert_equal([S("a"), S(""), S("b"), S("c"), S("")], S("a||b|c|").split(S('|'), -1)) assert_equal([], "".split(//, 1)) + + assert_equal("[2, 3]", [1,2,3].slice!(1,10000).inspect, "moved from btest/knownbug") + end def test_squeeze diff --git a/test/ruby/test_struct.rb b/test/ruby/test_struct.rb index cbb0c1405e..6c0e1f4fb2 100644 --- a/test/ruby/test_struct.rb +++ b/test/ruby/test_struct.rb @@ -206,4 +206,10 @@ class TestStruct < Test::Unit::TestCase o = klass.new(1) assert_equal(1, o.size) end + + def test_error + assert_raise(TypeError){ + Struct.new(0) + } + end end -- cgit v1.2.3