Cmdliner terms for ergonomic logging configuration
at main 34 lines 1.1 kB view raw
1(*--------------------------------------------------------------------------- 2 Copyright (c) 2025 Thomas Gazagnaire. All rights reserved. 3 SPDX-License-Identifier: MIT 4 ---------------------------------------------------------------------------*) 5 6(** Test CLI for vlog cram tests. *) 7 8open Cmdliner 9 10(* Create a test log source *) 11let src = Logs.Src.create "test" ~doc:"Test source" 12 13module Log = (val Logs.src_log src : Logs.LOG) 14 15(* Create a tracing source *) 16let tracing_src = Logs.Src.create "test.tracing" ~doc:"Test tracing source" 17 18module Trace = (val Logs.src_log tracing_src : Logs.LOG) 19 20let run _config = 21 Log.err (fun m -> m "error message"); 22 Log.warn (fun m -> m "warning message"); 23 Log.info (fun m -> m "info message"); 24 Log.debug (fun m -> m "debug message"); 25 Trace.debug (fun m -> m "trace message") 26 27let suite = ("cli", [ Alcotest.test_case "noop" `Quick ignore ]) 28 29let cmd = 30 let doc = "Test CLI for vlog" in 31 let info = Cmd.info "test-cli" ~doc in 32 Cmd.v info Term.(const run $ Vlog.setup "test") 33 34let () = exit (Cmd.eval cmd)