@@ -6,6 +6,7 @@ use std::{fs::File, path::PathBuf};
6
6
7
7
use chrono:: { DateTime , FixedOffset , TimeZone , Timelike , Utc } ;
8
8
use temp_dir:: TempDir ;
9
+ use tracing:: span;
9
10
10
11
use crate :: {
11
12
encoding:: Encoding ,
@@ -348,3 +349,56 @@ pub fn check_file_against(file: &CaseFile, entry: &Entry, actual_bytes: &[u8]) {
348
349
}
349
350
}
350
351
}
352
+
353
+ // This test subscriber is used to suppress trace-level logs (yet executes
354
+ // the code, for coverage reasons)
355
+ pub fn install_test_subscriber ( ) {
356
+ let env_filter = tracing_subscriber:: EnvFilter :: builder ( ) . from_env_lossy ( ) ;
357
+ let sub = tracing_subscriber:: FmtSubscriber :: builder ( )
358
+ . with_env_filter ( env_filter)
359
+ . with_test_writer ( )
360
+ . finish ( ) ;
361
+ let sub = DebugOnlySubscriber { inner : sub } ;
362
+ tracing:: subscriber:: set_global_default ( sub) . unwrap ( )
363
+ }
364
+
365
+ struct DebugOnlySubscriber < S > {
366
+ inner : S ,
367
+ }
368
+
369
+ impl < S > tracing:: Subscriber for DebugOnlySubscriber < S >
370
+ where
371
+ S : tracing:: Subscriber ,
372
+ {
373
+ fn enabled ( & self , _metadata : & tracing:: Metadata < ' _ > ) -> bool {
374
+ true
375
+ }
376
+
377
+ fn new_span ( & self , span : & span:: Attributes < ' _ > ) -> span:: Id {
378
+ self . inner . new_span ( span)
379
+ }
380
+
381
+ fn record ( & self , span : & span:: Id , values : & span:: Record < ' _ > ) {
382
+ self . inner . record ( span, values)
383
+ }
384
+
385
+ fn record_follows_from ( & self , span : & span:: Id , follows : & span:: Id ) {
386
+ self . inner . record_follows_from ( span, follows)
387
+ }
388
+
389
+ fn event ( & self , event : & tracing:: Event < ' _ > ) {
390
+ if * event. metadata ( ) . level ( ) == tracing:: Level :: TRACE {
391
+ return ;
392
+ }
393
+
394
+ self . inner . event ( event)
395
+ }
396
+
397
+ fn enter ( & self , span : & span:: Id ) {
398
+ self . inner . enter ( span)
399
+ }
400
+
401
+ fn exit ( & self , span : & span:: Id ) {
402
+ self . inner . exit ( span)
403
+ }
404
+ }
0 commit comments