@@ -1488,21 +1488,31 @@ pub(super) mod test {
14881488 . with_thread_names ( false ) ;
14891489 #[ cfg( feature = "ansi" ) ]
14901490 let subscriber = subscriber. with_ansi ( false ) ;
1491- run_test ( subscriber, make_writer, "hello\n " )
1491+ assert_info_hello ( subscriber, make_writer, "hello\n " )
14921492 }
14931493
14941494 #[ cfg( feature = "ansi" ) ]
14951495 #[ test]
14961496 fn with_ansi_true ( ) {
14971497 let expected = "\u{1b} [2mfake time\u{1b} [0m \u{1b} [32m INFO\u{1b} [0m \u{1b} [2mtracing_subscriber::fmt::format::test\u{1b} [0m\u{1b} [2m:\u{1b} [0m hello\n " ;
1498- test_ansi ( true , expected) ;
1498+ assert_info_hello_ansi ( true , expected) ;
14991499 }
15001500
15011501 #[ cfg( feature = "ansi" ) ]
15021502 #[ test]
15031503 fn with_ansi_false ( ) {
15041504 let expected = "fake time INFO tracing_subscriber::fmt::format::test: hello\n " ;
1505- test_ansi ( false , expected) ;
1505+ assert_info_hello_ansi ( false , expected) ;
1506+ }
1507+
1508+ #[ cfg( feature = "ansi" ) ]
1509+ fn assert_info_hello_ansi ( is_ansi : bool , expected : & str ) {
1510+ let make_writer = MockMakeWriter :: default ( ) ;
1511+ let subscriber = crate :: fmt:: Collector :: builder ( )
1512+ . with_writer ( make_writer. clone ( ) )
1513+ . with_ansi ( is_ansi)
1514+ . with_timer ( MockTime ) ;
1515+ assert_info_hello ( subscriber, make_writer, expected)
15061516 }
15071517
15081518 #[ cfg( not( feature = "ansi" ) ) ]
@@ -1513,7 +1523,7 @@ pub(super) mod test {
15131523 let subscriber = crate :: fmt:: Collector :: builder ( )
15141524 . with_writer ( make_writer)
15151525 . with_timer ( MockTime ) ;
1516- run_test ( subscriber, make_writer, expected) ;
1526+ assert_info_hello ( subscriber, make_writer, expected) ;
15171527 }
15181528
15191529 #[ test]
@@ -1526,23 +1536,60 @@ pub(super) mod test {
15261536 . with_timer ( MockTime ) ;
15271537 let expected = "fake time tracing_subscriber::fmt::format::test: hello\n " ;
15281538
1529- run_test ( subscriber, make_writer, expected) ;
1539+ assert_info_hello ( subscriber, make_writer, expected) ;
15301540 }
15311541
1532- #[ cfg ( feature = "ansi" ) ]
1533- fn test_ansi ( is_ansi : bool , expected : & str ) {
1542+ #[ test ]
1543+ fn with_thread_ids ( ) {
15341544 let make_writer = MockMakeWriter :: default ( ) ;
15351545 let subscriber = crate :: fmt:: Collector :: builder ( )
15361546 . with_writer ( make_writer. clone ( ) )
1537- . with_ansi ( is_ansi)
1547+ . with_thread_ids ( true )
1548+ . with_ansi ( false )
1549+ . with_timer ( MockTime ) ;
1550+ let expected = "fake time INFO ThreadId() tracing_subscriber::fmt::format::test: hello\n " ;
1551+
1552+ assert_info_hello_ignore_numeric ( subscriber, make_writer, expected) ;
1553+ }
1554+
1555+ #[ test]
1556+ fn pretty_default ( ) {
1557+ let make_writer = MockMakeWriter :: default ( ) ;
1558+ let subscriber = crate :: fmt:: Collector :: builder ( )
1559+ . pretty ( )
1560+ . with_writer ( make_writer. clone ( ) )
1561+ . with_ansi ( false )
15381562 . with_timer ( MockTime ) ;
1539- run_test ( subscriber, make_writer, expected)
1563+ let expected = r#" fake time INFO tracing_subscriber::fmt::format::test: hello
1564+ at tracing-subscriber/src/fmt/format/mod.rs:
1565+
1566+ "#
1567+ . replace ( '/' , & std:: path:: MAIN_SEPARATOR . to_string ( ) ) ;
1568+
1569+ assert_info_hello_ignore_numeric ( subscriber, make_writer, & expected)
15401570 }
15411571
1542- fn run_test ( subscriber : impl Into < Dispatch > , buf : MockMakeWriter , expected : & str ) {
1572+ fn assert_info_hello ( subscriber : impl Into < Dispatch > , buf : MockMakeWriter , expected : & str ) {
15431573 let _default = set_default ( & subscriber. into ( ) ) ;
15441574 tracing:: info!( "hello" ) ;
1545- assert_eq ! ( expected, buf. get_string( ) )
1575+ let result = buf. get_string ( ) ;
1576+
1577+ assert_eq ! ( expected, result)
1578+ }
1579+
1580+ // When numeric characters are used they often form a non-deterministic value as they usually represent things like a thread id or line number.
1581+ // This assert method should be used when non-deterministic numeric characters are present.
1582+ fn assert_info_hello_ignore_numeric (
1583+ subscriber : impl Into < Dispatch > ,
1584+ buf : MockMakeWriter ,
1585+ expected : & str ,
1586+ ) {
1587+ let _default = set_default ( & subscriber. into ( ) ) ;
1588+ tracing:: info!( "hello" ) ;
1589+
1590+ let result = buf. get_string ( ) . replace ( char:: is_numeric, "" ) ;
1591+
1592+ assert_eq ! ( expected, result)
15461593 }
15471594
15481595 #[ test]
0 commit comments