mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
set svn:eol-style
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
1a4b93cf92
commit
fd81221a8e
81 changed files with 13317 additions and 13317 deletions
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue