Imported Upstream version 1.46.0
[platform/upstream/nghttp2.git] / third-party / mruby / test / t / ensure.rb
1 ##
2 # ensure Test
3
4 class EnsureYieldBreak
5   attr_reader :ensure_context
6   def try
7     yield
8   ensure
9     @ensure_context = self
10   end
11 end
12
13 assert('ensure - context - yield') do
14   yielder = EnsureYieldBreak.new
15   yielder.try do
16   end
17   assert_equal yielder, yielder.ensure_context
18 end
19
20 assert('ensure - context - yield and break') do
21   yielder = EnsureYieldBreak.new
22   yielder.try do
23     break
24   end
25   assert_equal yielder, yielder.ensure_context
26 end
27
28 assert('ensure - context - yield and return') do
29   yielder = EnsureYieldBreak.new
30   lambda do
31     yielder.try do
32       return
33     end
34   end.call
35   assert_equal yielder, yielder.ensure_context
36 end