File tree Expand file tree Collapse file tree 2 files changed +45
-0
lines changed
Expand file tree Collapse file tree 2 files changed +45
-0
lines changed Original file line number Diff line number Diff line change @@ -35,5 +35,8 @@ rustdoc-args = ["--cfg", "docsrs"]
3535fastrace = { workspace = true }
3636logforth-core = { workspace = true }
3737
38+ [dev-dependencies ]
39+ fastrace = { workspace = true , features = [" enable" ] }
40+
3841[lints ]
3942workspace = true
Original file line number Diff line number Diff line change @@ -61,3 +61,45 @@ impl Diagnostic for FastraceDiagnostic {
6161 Ok ( ( ) )
6262 }
6363}
64+
65+ #[ cfg( test) ]
66+ mod tests {
67+ use std:: collections:: BTreeMap ;
68+
69+ use fastrace:: Span ;
70+ use logforth_core:: kv:: ValueOwned ;
71+
72+ use super :: * ;
73+
74+ #[ test]
75+ fn key_values ( ) {
76+ struct Collector ( BTreeMap < String , ValueOwned > ) ;
77+
78+ impl Visitor for Collector {
79+ fn visit ( & mut self , key : Key < ' _ > , value : Value < ' _ > ) -> Result < ( ) , Error > {
80+ self . 0 . insert ( key. to_string ( ) , value. to_owned ( ) ) ;
81+ Ok ( ( ) )
82+ }
83+ }
84+
85+ let diagnostic = FastraceDiagnostic :: default ( ) ;
86+
87+ let mut map = {
88+ let span = Span :: root ( "test" , SpanContext :: random ( ) ) ;
89+ let _guard = span. set_local_parent ( ) ;
90+
91+ let mut collector = Collector ( BTreeMap :: new ( ) ) ;
92+ diagnostic. visit ( & mut collector) . unwrap ( ) ;
93+ collector. 0
94+ } ;
95+
96+ let trace_id = map. remove ( "trace_id" ) . unwrap ( ) ;
97+ assert_eq ! ( 32 , trace_id. to_string( ) . len( ) ) ;
98+ let span_id = map. remove ( "span_id" ) . unwrap ( ) ;
99+ assert_eq ! ( 16 , span_id. to_string( ) . len( ) ) ;
100+ let sampled = map. remove ( "sampled" ) . unwrap ( ) ;
101+ assert ! ( sampled. by_ref( ) . to_bool( ) . unwrap( ) ) ;
102+
103+ assert ! ( map. is_empty( ) ) ;
104+ }
105+ }
You can’t perform that action at this time.
0 commit comments