mirror of
https://github.com/ocaml-tracing/ocaml-trace.git
synced 2026-03-07 18:37:56 -05:00
add lwt test
This commit is contained in:
parent
c76fc129b3
commit
e6f01f57ac
3 changed files with 5290 additions and 0 deletions
7
test/lwt/dune
Normal file
7
test/lwt/dune
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
|
||||
|
||||
(test
|
||||
(name t1)
|
||||
(package trace-lwt)
|
||||
(libraries trace trace-tef trace-lwt lwt lwt.unix))
|
||||
|
||||
5206
test/lwt/t1.expected
Normal file
5206
test/lwt/t1.expected
Normal file
File diff suppressed because it is too large
Load diff
77
test/lwt/t1.ml
Normal file
77
test/lwt/t1.ml
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
open Lwt.Syntax
|
||||
|
||||
let ( let@ ) = ( @@ )
|
||||
|
||||
let inner_loop i =
|
||||
let rec loop j =
|
||||
if j >= 5 then
|
||||
Lwt.return ()
|
||||
else
|
||||
let* () =
|
||||
let@ _sp =
|
||||
Trace_lwt.with_span_lwt ~__FILE__ ~__LINE__ "inner.loop.step"
|
||||
in
|
||||
Trace.messagef (fun k -> k "hello %d %d" i j);
|
||||
Trace.message "world";
|
||||
|
||||
let* () =
|
||||
if j = 2 then
|
||||
let@ _sp =
|
||||
Trace_lwt.with_span_lwt ~__FILE__ ~__LINE__ "sub-sleep"
|
||||
in
|
||||
Lwt_unix.sleep 0.010
|
||||
else
|
||||
Lwt.return ()
|
||||
in
|
||||
|
||||
Lwt_unix.sleep 0.006
|
||||
in
|
||||
|
||||
loop (j + 1)
|
||||
in
|
||||
let@ _sp =
|
||||
Trace_lwt.with_span_lwt ~force_toplevel:true ~__FILE__ ~__LINE__
|
||||
"inner.loop"
|
||||
in
|
||||
loop 0
|
||||
|
||||
let outer_loop () =
|
||||
let rec loop i =
|
||||
if i = 50 then
|
||||
Lwt.return ()
|
||||
else
|
||||
let* () =
|
||||
let@ _sp =
|
||||
Trace_lwt.with_span_lwt ~__FILE__ ~__LINE__ "outer.loop.step"
|
||||
in
|
||||
|
||||
let fut_sleep =
|
||||
let@ _sp =
|
||||
Trace_lwt.with_span_lwt ~__FILE__ ~__LINE__ "outer.sleep"
|
||||
in
|
||||
Lwt_unix.sleep 0.09
|
||||
in
|
||||
|
||||
let* () = inner_loop i and* () = inner_loop i in
|
||||
let* () = fut_sleep in
|
||||
Lwt.return ()
|
||||
in
|
||||
loop (i + 1)
|
||||
in
|
||||
|
||||
let@ _sp =
|
||||
Trace_lwt.with_span_lwt ~force_toplevel:true ~__FILE__ ~__LINE__
|
||||
"outer.loop"
|
||||
in
|
||||
loop 0
|
||||
|
||||
let run () : unit Lwt.t =
|
||||
Trace.set_process_name "main";
|
||||
Trace.set_thread_name "t1";
|
||||
|
||||
let* () = outer_loop () and* () = outer_loop () in
|
||||
Lwt.return ()
|
||||
|
||||
let () =
|
||||
Trace_tef.Internal_.mock_all_ ();
|
||||
Trace_tef.with_setup ~out:`Stdout () @@ fun () -> Lwt_main.run (run ())
|
||||
Loading…
Add table
Reference in a new issue