From 47b1a05e39a27be712ceca9e2a343de787ad78b8 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Mon, 13 Apr 2026 13:09:43 -0400 Subject: [PATCH] test: extract recorder used for ambient tests --- test/common/dune | 3 +++ test/common/test_trace_common.ml | 32 ++++++++++++++++++++++++++++++ test/tls/dune | 3 +-- test/tls/t_tls.real.ml | 34 ++------------------------------ 4 files changed, 38 insertions(+), 34 deletions(-) create mode 100644 test/common/dune create mode 100644 test/common/test_trace_common.ml diff --git a/test/common/dune b/test/common/dune new file mode 100644 index 0000000..987e92d --- /dev/null +++ b/test/common/dune @@ -0,0 +1,3 @@ +(library + (name test_trace_common) + (libraries trace.core)) diff --git a/test/common/test_trace_common.ml b/test/common/test_trace_common.ml new file mode 100644 index 0000000..358e1a7 --- /dev/null +++ b/test/common/test_trace_common.ml @@ -0,0 +1,32 @@ +(** Shared test utilities for ambient span tests. *) + +type Trace_core.span += Named of string + +let make_recorder () = + let open Trace_core.Collector in + let cbs = + Callbacks.make + ~enter_span:(fun + () + ~__FUNCTION__:_ + ~__FILE__:_ + ~__LINE__:_ + ~level:_ + ~params:_ + ~data:_ + ~parent:_ + name + -> Named name) + ~exit_span:(fun () _sp -> ()) + ~add_data_to_span:(fun () _sp _data -> ()) + ~message:(fun () ~level:_ ~params:_ ~data:_ ~span:_ _msg -> ()) + ~metric:(fun () ~level:_ ~params:_ ~data:_ _name _m -> ()) + () + in + C_some ((), cbs) + +let current_name () = + match Trace_core.current_span () with + | None -> "none" + | Some (Named s) -> s + | Some _ -> "" diff --git a/test/tls/dune b/test/tls/dune index 0ca3741..445c4f6 100644 --- a/test/tls/dune +++ b/test/tls/dune @@ -3,8 +3,7 @@ (modules t_tls) (libraries trace - ; avoid using a recent dune with `enabled-if`, by just using `select` instead. - ; the dummy case just echoes back the expected file. + test_trace_common (select t_tls.ml from diff --git a/test/tls/t_tls.real.ml b/test/tls/t_tls.real.ml index 47022c3..30cae42 100644 --- a/test/tls/t_tls.real.ml +++ b/test/tls/t_tls.real.ml @@ -1,39 +1,9 @@ (* Test ambient span tracking via thread-local-storage provider *) +open Test_trace_common + let ( let@ ) = ( @@ ) -(* Unique span type so we can identify spans by name *) -type Trace_core.span += Named of string - -let make_recorder () = - let open Trace_core.Collector in - let cbs = - Callbacks.make - ~enter_span:(fun - () - ~__FUNCTION__:_ - ~__FILE__:_ - ~__LINE__:_ - ~level:_ - ~params:_ - ~data:_ - ~parent:_ - name - -> Named name) - ~exit_span:(fun () _sp -> ()) - ~add_data_to_span:(fun () _sp _data -> ()) - ~message:(fun () ~level:_ ~params:_ ~data:_ ~span:_ _msg -> ()) - ~metric:(fun () ~level:_ ~params:_ ~data:_ _name _m -> ()) - () - in - C_some ((), cbs) - -let current_name () = - match Trace_core.current_span () with - | None -> "none" - | Some (Named s) -> s - | Some _ -> "" - let () = print_endline "=== ambient span (TLS) ==="; Trace_thread_local_storage.setup ();