summaryrefslogtreecommitdiff
path: root/ocaml-binary-annot/testsuite/tests/backtrace/backtrace.ml
diff options
context:
space:
mode:
Diffstat (limited to 'ocaml-binary-annot/testsuite/tests/backtrace/backtrace.ml')
-rw-r--r--ocaml-binary-annot/testsuite/tests/backtrace/backtrace.ml17
1 files changed, 17 insertions, 0 deletions
diff --git a/ocaml-binary-annot/testsuite/tests/backtrace/backtrace.ml b/ocaml-binary-annot/testsuite/tests/backtrace/backtrace.ml
new file mode 100644
index 0000000000..d8755710a1
--- /dev/null
+++ b/ocaml-binary-annot/testsuite/tests/backtrace/backtrace.ml
@@ -0,0 +1,17 @@
+(* A test for stack backtraces *)
+
+exception Error of string
+
+let rec f msg n =
+ if n = 0 then raise(Error msg) else 1 + f msg (n-1)
+
+let g msg =
+ try
+ f msg 5
+ with Error "a" -> print_string "a"; print_newline(); 0
+ | Error "b" as exn -> print_string "b"; print_newline(); raise exn
+ | Error "c" -> raise (Error "c")
+
+let _ =
+ Printexc.record_backtrace true;
+ ignore (g Sys.argv.(1))