summaryrefslogtreecommitdiffhomepage
path: root/test/t/exception.rb
diff options
context:
space:
mode:
authorDaniel Bovensiepen <[email protected]>2012-05-25 14:01:14 +0800
committerDaniel Bovensiepen <[email protected]>2012-05-25 14:01:14 +0800
commit150b235fb650f15277e99080bc639bc4b60e08ba (patch)
tree12f76d18a191c41d2e9f6098e673a6d080032cde /test/t/exception.rb
parentd9227aa41d8e626e7ff706f2d8cb94fea08658a9 (diff)
downloadmruby-150b235fb650f15277e99080bc639bc4b60e08ba.tar.gz
mruby-150b235fb650f15277e99080bc639bc4b60e08ba.zip
Add Tests for all Exception classes, for false, true, Proc, Module, nil and Object
Diffstat (limited to 'test/t/exception.rb')
-rw-r--r--test/t/exception.rb195
1 files changed, 195 insertions, 0 deletions
diff --git a/test/t/exception.rb b/test/t/exception.rb
new file mode 100644
index 000000000..6b46314d0
--- /dev/null
+++ b/test/t/exception.rb
@@ -0,0 +1,195 @@
+##
+# Exception ISO Test
+
+assert('Exception', '15.2.22') do
+ Exception.class == Class
+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
+
+# 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