summaryrefslogtreecommitdiffstats
path: root/test_knownbug.rb
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-09 12:10:43 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-06-09 12:10:43 +0000
commitdf67e28de7ad4353be269a2a07f5650d0ecd5bef (patch)
tree2fb08b92d09702e1bc7bb4f55beb7cfdfbdaafd2 /test_knownbug.rb
parentf09368230374aa70ed2a2ee8f8b5b8d5b822c0f8 (diff)
downloadruby-df67e28de7ad4353be269a2a07f5650d0ecd5bef.tar.gz
ruby-df67e28de7ad4353be269a2a07f5650d0ecd5bef.tar.xz
ruby-df67e28de7ad4353be269a2a07f5650d0ecd5bef.zip
* bootstraptest/test_knownbug.rb -> ./test_knownbug.rb: moved.
* common.mk: add a rule "test-knownbug". git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@17057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'test_knownbug.rb')
-rw-r--r--test_knownbug.rb107
1 files changed, 107 insertions, 0 deletions
diff --git a/test_knownbug.rb b/test_knownbug.rb
new file mode 100644
index 000000000..f90746765
--- /dev/null
+++ b/test_knownbug.rb
@@ -0,0 +1,107 @@
+#
+# This test file concludes tests which point out known bugs.
+# So all tests will cause failure.
+#
+
+assert_equal 'ok', %q{
+ class C
+ define_method(:foo) {
+ if block_given?
+ :ng
+ else
+ :ok
+ end
+ }
+ end
+ C.new.foo {}
+}, '[ruby-core:14813]'
+
+assert_equal 'ok', %q{
+ class C
+ define_method(:foo) {
+ if block_given?
+ :ng
+ else
+ :ok
+ end
+ }
+ end
+ C.new.foo
+}, '[ruby-core:14813]'
+
+assert_equal 'ok', %q{
+ a = lambda {|x, y, &b| b }
+ b = a.curry[1]
+ if b.call(2){} == nil
+ :ng
+ else
+ :ok
+ end
+}, '[ruby-core:15551]'
+
+assert_normal_exit %q{
+ g = Module.enum_for(:new)
+ loop { g.next }
+}, '[ruby-dev:34128]'
+
+assert_normal_exit %q{
+ Fiber.new(&Object.method(:class_eval)).resume("foo")
+}, '[ruby-dev:34128]'
+
+assert_normal_exit %q{
+ Thread.new("foo", &Object.method(:class_eval)).join
+}, '[ruby-dev:34128]'
+
+assert_normal_exit %q{
+ g = enum_for(:local_variables)
+ loop { g.next }
+}, '[ruby-dev:34128]'
+
+assert_normal_exit %q{
+ g = enum_for(:block_given?)
+ loop { g.next }
+}, '[ruby-dev:34128]'
+
+assert_normal_exit %q{
+ g = enum_for(:binding)
+ loop { g.next }
+}, '[ruby-dev:34128]'
+
+assert_normal_exit %q{
+ g = "abc".enum_for(:scan, /./)
+ loop { g.next }
+}, '[ruby-dev:34128]'
+
+assert_equal %q{[:bar, :foo]}, %q{
+ def foo
+ klass = Class.new do
+ define_method(:bar) do
+ return :bar
+ end
+ end
+ [klass.new.bar, :foo]
+ end
+ foo
+}, "[ ruby-Bugs-19304 ]"
+
+assert_equal 'ok', %q{
+ lambda {
+ break :ok
+ :ng
+ }.call
+}, '[ruby-dev:34646]'
+
+assert_normal_exit %q{
+ eval("", method(:proc).call {}.binding)
+}
+
+assert_normal_exit %q{
+ a = []
+ 100.times {|i| a << i << nil << nil }
+ p a.compact!
+}
+
+assert_equal 'ok', %q{
+ a = [false]
+ (a[0] &&= true) == false ? :ok : :ng
+}, '[ruby-dev:34679]'