mirror of https://gitee.com/bigwinds/arangodb
275 lines
3.2 KiB
Ruby
275 lines
3.2 KiB
Ruby
##
|
|
# Exception ISO Test
|
|
|
|
assert('Exception', '15.2.22') do
|
|
Exception.class == Class
|
|
end
|
|
|
|
assert('Exception superclass', '15.2.22.2') do
|
|
Exception.superclass == Object
|
|
end
|
|
|
|
assert('Exception.exception', '15.2.22.4.1') do
|
|
e = Exception.exception('a')
|
|
|
|
e.class == Exception
|
|
end
|
|
|
|
assert('Exception#exception', '15.2.22.5.1') do
|
|
e1 = Exception.exception()
|
|
e2 = Exception.exception('b')
|
|
|
|
e1.class == Exception and e2.class == Exception
|
|
end
|
|
|
|
assert('Exception#message', '15.2.22.5.2') do
|
|
e = Exception.exception('a')
|
|
|
|
e.message == 'a'
|
|
end
|
|
|
|
assert('Exception#to_s', '15.2.22.5.3') do
|
|
e = Exception.exception('a')
|
|
|
|
e.to_s == 'a'
|
|
end
|
|
|
|
assert('Exception.exception', '15.2.22.4.1') do
|
|
e = Exception.exception()
|
|
e.initialize('a')
|
|
|
|
e.message == 'a'
|
|
end
|
|
|
|
assert('ScriptError', '15.2.37') do
|
|
begin
|
|
raise ScriptError.new
|
|
rescue ScriptError
|
|
true
|
|
else
|
|
false
|
|
end
|
|
end
|
|
|
|
assert('SyntaxError', '15.2.38') do
|
|
begin
|
|
raise SyntaxError.new
|
|
rescue SyntaxError
|
|
true
|
|
else
|
|
false
|
|
end
|
|
end
|
|
|
|
# Not ISO specified
|
|
|
|
assert('Exception 1') do
|
|
begin
|
|
1+1
|
|
ensure
|
|
2+2
|
|
end == 2
|
|
end
|
|
|
|
assert('Exception 2') do
|
|
begin
|
|
1+1
|
|
begin
|
|
2+2
|
|
ensure
|
|
3+3
|
|
end
|
|
ensure
|
|
4+4
|
|
end == 4
|
|
end
|
|
|
|
assert('Exception 3') do
|
|
begin
|
|
1+1
|
|
begin
|
|
2+2
|
|
ensure
|
|
3+3
|
|
end
|
|
ensure
|
|
4+4
|
|
begin
|
|
5+5
|
|
ensure
|
|
6+6
|
|
end
|
|
end == 4
|
|
end
|
|
|
|
assert('Exception 4') do
|
|
a = nil
|
|
1.times{|e|
|
|
begin
|
|
rescue => err
|
|
end
|
|
a = err.class
|
|
}
|
|
a == NilClass
|
|
end
|
|
|
|
assert('Exception 5') do
|
|
$ans = []
|
|
def m
|
|
$!
|
|
end
|
|
def m2
|
|
1.times{
|
|
begin
|
|
return
|
|
ensure
|
|
$ans << m
|
|
end
|
|
}
|
|
end
|
|
m2
|
|
$ans == [nil]
|
|
end
|
|
|
|
assert('Exception 6') do
|
|
$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 == 7
|
|
end
|
|
|
|
assert('Exception 7') do
|
|
$i = 0
|
|
def m
|
|
begin
|
|
$i += 1
|
|
begin
|
|
$i += 2
|
|
return
|
|
ensure
|
|
$i += 3
|
|
end
|
|
ensure
|
|
$i += 4
|
|
end
|
|
p :end
|
|
end
|
|
m
|
|
$i == 10
|
|
end
|
|
|
|
assert('Exception 8') do
|
|
begin
|
|
1
|
|
rescue
|
|
2
|
|
else
|
|
3
|
|
end == 3
|
|
end
|
|
|
|
assert('Exception 9') do
|
|
begin
|
|
1+1
|
|
rescue
|
|
2+2
|
|
else
|
|
3+3
|
|
ensure
|
|
4+4
|
|
end == 6
|
|
end
|
|
|
|
assert('Exception 10') do
|
|
begin
|
|
1+1
|
|
begin
|
|
2+2
|
|
rescue
|
|
3+3
|
|
else
|
|
4+4
|
|
end
|
|
rescue
|
|
5+5
|
|
else
|
|
6+6
|
|
ensure
|
|
7+7
|
|
end == 12
|
|
end
|
|
|
|
assert('Exception 11') do
|
|
a = :ok
|
|
begin
|
|
begin
|
|
raise Exception
|
|
rescue
|
|
a = :ng
|
|
end
|
|
rescue Exception
|
|
end
|
|
a == :ok
|
|
end
|
|
|
|
assert('Exception 12') do
|
|
a = :ok
|
|
begin
|
|
raise Exception rescue a = :ng
|
|
rescue Exception
|
|
end
|
|
a == :ok
|
|
end
|
|
|
|
assert('Exception 13') do
|
|
a = :ng
|
|
begin
|
|
raise StandardError
|
|
rescue TypeError, ArgumentError
|
|
a = :ng
|
|
rescue
|
|
a = :ok
|
|
else
|
|
a = :ng
|
|
end
|
|
a == :ok
|
|
end
|
|
|
|
def exception_test14
|
|
UnknownConstant
|
|
end
|
|
|
|
assert('Exception 14') do
|
|
a = :ng
|
|
begin
|
|
send(:exception_test14)
|
|
rescue
|
|
a = :ok
|
|
end
|
|
|
|
a == :ok
|
|
end
|
|
|
|
assert('Exception#inspect without message') do
|
|
Exception.new.inspect
|
|
end
|