summaryrefslogtreecommitdiff
path: root/test/coverage/test_coverage.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/coverage/test_coverage.rb')
-rw-r--r--test/coverage/test_coverage.rb20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/coverage/test_coverage.rb b/test/coverage/test_coverage.rb
index 1de39bf569..a80e33379c 100644
--- a/test/coverage/test_coverage.rb
+++ b/test/coverage/test_coverage.rb
@@ -740,4 +740,24 @@ class TestCoverage < Test::Unit::TestCase
end
end;
end
+
+ def test_branch_coverage_in_ensure_clause
+ result = {
+ :branches => {
+ [:if, 0, 4, 2, 4, 11] => {
+ [:then, 1, 4, 2, 4, 5] => 1,
+ [:else, 2, 4, 2, 4, 11] => 1,
+ }
+ }
+ }
+ assert_coverage(<<~"end;", { branches: true }, result) # Bug #16967
+ def foo
+ yield
+ ensure
+ :ok if $!
+ end
+ foo {}
+ foo { raise } rescue nil
+ end;
+ end
end