diff options
| author | Daniel Bovensiepen <[email protected]> | 2012-05-16 15:50:54 +0800 |
|---|---|---|
| committer | Daniel Bovensiepen <[email protected]> | 2012-05-16 15:50:54 +0800 |
| commit | b4a80d7485beb63eb9a4baf5e149ccf58542ecb4 (patch) | |
| tree | 2de7bcd95cb7ed0d30804b66336026d791f1b834 /test/t/bs_exception.rb | |
| parent | 254023f1e795491cacd31944526c7c4d037599cf (diff) | |
| download | mruby-b4a80d7485beb63eb9a4baf5e149ccf58542ecb4.tar.gz mruby-b4a80d7485beb63eb9a4baf5e149ccf58542ecb4.zip | |
Add first part of the bootstrap code
Diffstat (limited to 'test/t/bs_exception.rb')
| -rw-r--r-- | test/t/bs_exception.rb | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/test/t/bs_exception.rb b/test/t/bs_exception.rb new file mode 100644 index 000000000..406c07467 --- /dev/null +++ b/test/t/bs_exception.rb @@ -0,0 +1,157 @@ +## +# Bootstrap tests for Exceptions + +assert('BS Exception 1') do + begin + 1+1 + ensure + 2+2 + end == 2 +end + +assert('BS Exception 2') do + begin + 1+1 + begin + 2+2 + ensure + 3+3 + end + ensure + 4+4 + end == 4 +end + +assert('BS 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('BS Exception 4') do + a = nil + 1.times{|e| + begin + rescue => err + end + a = err.class + } + a == NilClass +end + +assert('BS Exception 5') do + $ans = [] + def m + $! + end + def m2 + 1.times{ + begin + return + ensure + $ans << m + end + } + end + m2 + $ans == [nil] +end + +assert('BS 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('BS 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('BS Exception 8') do + begin + 1 + rescue + 2 + else + 3 + end == 3 +end + +assert('BS Exception 9') do + begin + 1+1 + rescue + 2+2 + else + 3+3 + ensure + 4+4 + end == 6 +end + +assert('BS 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 |
