blob: 7f2a6514c3ca02eb50cb6d4a80a5fc4c9394a32b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
(*
Test that multiple handlers coexist happily.
*)
let test_multiple_handlers =
let trace = ref [] in
let collect v = trace := v :: !trace in
let _ =
match
begin
match
begin
collect "one";
failwith "two"
end
with
() -> collect "failure one"
| exception (Failure x) ->
collect x;
failwith "three"
end
with
() ->
collect "failure two";
| exception (Failure x) ->
collect x;
match
begin
collect "four";
failwith "five"
end
with
() -> collect "failure three"
| exception (Failure x) ->
collect x
in
print_endline (String.concat " " !trace);
assert (!trace = [
"five";
"four";
"three";
"two";
"one";
])
;;
|