summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog10
-rw-r--r--bootstraptest/test_eval.rb9
-rw-r--r--bootstraptest/test_knownbug.rb122
-rw-r--r--bootstraptest/test_literal.rb16
-rw-r--r--bootstraptest/test_syntax.rb50
-rw-r--r--bootstraptest/test_thread.rb22
-rw-r--r--test/ruby/test_m17n.rb9
-rw-r--r--test/ruby/test_proc.rb12
-rw-r--r--test/ruby/test_sprintf.rb1
-rw-r--r--test/ruby/test_string.rb5
-rw-r--r--test/ruby/test_struct.rb6
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 <ko1@atdot.net>
+
+ * 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 <usa@ruby-lang.org>
* 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
@@ -30,28 +30,6 @@ assert_equal 'ok', %q{
}, '[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]
if b.call(2){} == nil
@@ -62,10 +40,6 @@ assert_equal 'ok', %q{
}, '[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 }
}, '[ruby-dev:34128]'
@@ -111,102 +85,6 @@ assert_equal %q{[:bar, :foo]}, %q{
}, "[ 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
:ng
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