summaryrefslogtreecommitdiff
path: root/yarvtest/test_exception.rb
diff options
context:
space:
mode:
Diffstat (limited to 'yarvtest/test_exception.rb')
-rw-r--r--yarvtest/test_exception.rb816
1 files changed, 408 insertions, 408 deletions
diff --git a/yarvtest/test_exception.rb b/yarvtest/test_exception.rb
index 3b0bd10cd6..9e69d02909 100644
--- a/yarvtest/test_exception.rb
+++ b/yarvtest/test_exception.rb
@@ -1,408 +1,408 @@
-require 'yarvtest/yarvtest'
-
-class TestException < YarvTestBase
-
- def test_rescue
- ae %q{
- begin
- 1
- rescue
- 2
- end
- }
-
- ae %q{
- begin
- 1
- begin
- 2
- rescue
- 3
- end
- 4
- rescue
- 5
- end
- }
-
- ae %q{
- begin
- 1
- rescue
- 2
- else
- 3
- end
- }
- end
-
- def test_ensure
- ae %q{
- begin
- 1+1
- ensure
- 2+2
- end
- }
- ae %q{
- begin
- 1+1
- begin
- 2+2
- ensure
- 3+3
- end
- ensure
- 4+4
- end
- }
- ae %q{
- begin
- 1+1
- begin
- 2+2
- ensure
- 3+3
- end
- ensure
- 4+4
- begin
- 5+5
- ensure
- 6+6
- end
- end
- }
- end
-
- def test_rescue_ensure
- ae %q{
- begin
- 1+1
- rescue
- 2+2
- ensure
- 3+3
- end
- }
- ae %q{
- begin
- 1+1
- rescue
- 2+2
- ensure
- 3+3
- end
- }
- ae %q{
- begin
- 1+1
- rescue
- 2+2
- else
- 3+3
- ensure
- 4+4
- end
- }
- ae %q{
- begin
- 1+1
- begin
- 2+2
- rescue
- 3+3
- else
- 4+4
- end
- rescue
- 5+5
- else
- 6+6
- ensure
- 7+7
- end
- }
-
- end
-
- def test_raise
- ae %q{
- begin
- raise
- rescue
- :ok
- end
- }
- ae %q{
- begin
- raise
- rescue
- :ok
- ensure
- :ng
- end
- }
- ae %q{
- begin
- raise
- rescue => e
- e.class
- end
- }
- ae %q{
- begin
- raise
- rescue StandardError
- :ng
- rescue Exception
- :ok
- end
- }
- ae %q{
- begin
- begin
- raise "a"
- rescue
- raise "b"
- ensure
- raise "c"
- end
- rescue => e
- e.message
- end
- }
- end
-
- def test_error_variable
- ae %q{
- a = nil
- 1.times{|e|
- begin
- rescue => err
- end
- a = err.class
- }
- }
- ae %q{
- a = nil
- 1.times{|e|
- begin
- raise
- rescue => err
- end
- a = err.class
- }
- a
- }
- end
-
- def test_raise_in_other_scope
- ae %q{
- class E1 < Exception
- end
-
- def m
- yield
- end
-
- begin
- begin
- begin
- m{
- raise
- }
- rescue E1
- :ok2
- ensure
- end
- rescue
- :ok3
- ensure
- end
- rescue E1
- :ok
- ensure
- end
- } do
- remove_const :E1
- end
-
- ae %q{
- $i = 0
- def m
- iter{
- begin
- $i += 1
- begin
- $i += 2
- break
- ensure
-
- end
- ensure
- $i += 4
- end
- $i = 0
- }
- end
-
- def iter
- yield
- end
- m
- $i
- }
-
- ae %q{
- $i = 0
- def m
- begin
- $i += 1
- begin
- $i += 2
- return
- ensure
- $i += 3
- end
- ensure
- $i += 4
- end
- p :end
- end
- m
- $i
- }
- end
-
- def test_raise_in_cont_sp
- ae %q{
- def m a, b
- a + b
- end
- m(1, begin
- raise
- rescue
- 2
- end) +
- m(10, begin
- raise
- rescue
- 20
- ensure
- 30
- end)
- }
- ae %q{
- def m a, b
- a + b
- end
- m(begin
- raise
- rescue
- 1
- end,
- begin
- raise
- rescue
- 2
- end)
- }
- end
-
- def test_geterror
- ae %q{
- $!
- }
- ae %q{
- begin
- raise "FOO"
- rescue
- $!
- end
- }
- ae %q{
- def m
- $!
- end
- begin
- raise "FOO"
- rescue
- m()
- end
- }
- ae %q{
- $ans = []
- def m
- $!
- end
- begin
- raise "FOO"
- rescue
- begin
- raise "BAR"
- rescue
- $ans << m()
- end
- $ans << m()
- end
- $ans
- }
- ae %q{
- $ans = []
- def m
- $!
- end
-
- begin
- begin
- raise "FOO"
- ensure
- $ans << m()
- end
- rescue
- $ans << m()
- end
- }
- ae %q{
- $ans = []
- def m
- $!
- end
- def m2
- 1.times{
- begin
- return
- ensure
- $ans << m
- end
- }
- end
- m2
- $ans
- }
- end
-
- def test_stack_consistency
- ae %q{ #
- proc{
- begin
- raise
- break
- rescue
- :ok
- end
- }.call
- }
- ae %q{
- proc do
- begin
- raise StandardError
- redo
- rescue StandardError
- end
- end.call
- }
- end
-end
-
+require 'yarvtest/yarvtest'
+
+class TestException < YarvTestBase
+
+ def test_rescue
+ ae %q{
+ begin
+ 1
+ rescue
+ 2
+ end
+ }
+
+ ae %q{
+ begin
+ 1
+ begin
+ 2
+ rescue
+ 3
+ end
+ 4
+ rescue
+ 5
+ end
+ }
+
+ ae %q{
+ begin
+ 1
+ rescue
+ 2
+ else
+ 3
+ end
+ }
+ end
+
+ def test_ensure
+ ae %q{
+ begin
+ 1+1
+ ensure
+ 2+2
+ end
+ }
+ ae %q{
+ begin
+ 1+1
+ begin
+ 2+2
+ ensure
+ 3+3
+ end
+ ensure
+ 4+4
+ end
+ }
+ ae %q{
+ begin
+ 1+1
+ begin
+ 2+2
+ ensure
+ 3+3
+ end
+ ensure
+ 4+4
+ begin
+ 5+5
+ ensure
+ 6+6
+ end
+ end
+ }
+ end
+
+ def test_rescue_ensure
+ ae %q{
+ begin
+ 1+1
+ rescue
+ 2+2
+ ensure
+ 3+3
+ end
+ }
+ ae %q{
+ begin
+ 1+1
+ rescue
+ 2+2
+ ensure
+ 3+3
+ end
+ }
+ ae %q{
+ begin
+ 1+1
+ rescue
+ 2+2
+ else
+ 3+3
+ ensure
+ 4+4
+ end
+ }
+ ae %q{
+ begin
+ 1+1
+ begin
+ 2+2
+ rescue
+ 3+3
+ else
+ 4+4
+ end
+ rescue
+ 5+5
+ else
+ 6+6
+ ensure
+ 7+7
+ end
+ }
+
+ end
+
+ def test_raise
+ ae %q{
+ begin
+ raise
+ rescue
+ :ok
+ end
+ }
+ ae %q{
+ begin
+ raise
+ rescue
+ :ok
+ ensure
+ :ng
+ end
+ }
+ ae %q{
+ begin
+ raise
+ rescue => e
+ e.class
+ end
+ }
+ ae %q{
+ begin
+ raise
+ rescue StandardError
+ :ng
+ rescue Exception
+ :ok
+ end
+ }
+ ae %q{
+ begin
+ begin
+ raise "a"
+ rescue
+ raise "b"
+ ensure
+ raise "c"
+ end
+ rescue => e
+ e.message
+ end
+ }
+ end
+
+ def test_error_variable
+ ae %q{
+ a = nil
+ 1.times{|e|
+ begin
+ rescue => err
+ end
+ a = err.class
+ }
+ }
+ ae %q{
+ a = nil
+ 1.times{|e|
+ begin
+ raise
+ rescue => err
+ end
+ a = err.class
+ }
+ a
+ }
+ end
+
+ def test_raise_in_other_scope
+ ae %q{
+ class E1 < Exception
+ end
+
+ def m
+ yield
+ end
+
+ begin
+ begin
+ begin
+ m{
+ raise
+ }
+ rescue E1
+ :ok2
+ ensure
+ end
+ rescue
+ :ok3
+ ensure
+ end
+ rescue E1
+ :ok
+ ensure
+ end
+ } do
+ remove_const :E1
+ end
+
+ ae %q{
+ $i = 0
+ def m
+ iter{
+ begin
+ $i += 1
+ begin
+ $i += 2
+ break
+ ensure
+
+ end
+ ensure
+ $i += 4
+ end
+ $i = 0
+ }
+ end
+
+ def iter
+ yield
+ end
+ m
+ $i
+ }
+
+ ae %q{
+ $i = 0
+ def m
+ begin
+ $i += 1
+ begin
+ $i += 2
+ return
+ ensure
+ $i += 3
+ end
+ ensure
+ $i += 4
+ end
+ p :end
+ end
+ m
+ $i
+ }
+ end
+
+ def test_raise_in_cont_sp
+ ae %q{
+ def m a, b
+ a + b
+ end
+ m(1, begin
+ raise
+ rescue
+ 2
+ end) +
+ m(10, begin
+ raise
+ rescue
+ 20
+ ensure
+ 30
+ end)
+ }
+ ae %q{
+ def m a, b
+ a + b
+ end
+ m(begin
+ raise
+ rescue
+ 1
+ end,
+ begin
+ raise
+ rescue
+ 2
+ end)
+ }
+ end
+
+ def test_geterror
+ ae %q{
+ $!
+ }
+ ae %q{
+ begin
+ raise "FOO"
+ rescue
+ $!
+ end
+ }
+ ae %q{
+ def m
+ $!
+ end
+ begin
+ raise "FOO"
+ rescue
+ m()
+ end
+ }
+ ae %q{
+ $ans = []
+ def m
+ $!
+ end
+ begin
+ raise "FOO"
+ rescue
+ begin
+ raise "BAR"
+ rescue
+ $ans << m()
+ end
+ $ans << m()
+ end
+ $ans
+ }
+ ae %q{
+ $ans = []
+ def m
+ $!
+ end
+
+ begin
+ begin
+ raise "FOO"
+ ensure
+ $ans << m()
+ end
+ rescue
+ $ans << m()
+ end
+ }
+ ae %q{
+ $ans = []
+ def m
+ $!
+ end
+ def m2
+ 1.times{
+ begin
+ return
+ ensure
+ $ans << m
+ end
+ }
+ end
+ m2
+ $ans
+ }
+ end
+
+ def test_stack_consistency
+ ae %q{ #
+ proc{
+ begin
+ raise
+ break
+ rescue
+ :ok
+ end
+ }.call
+ }
+ ae %q{
+ proc do
+ begin
+ raise StandardError
+ redo
+ rescue StandardError
+ end
+ end.call
+ }
+ end
+end
+