@@ -39,7 +39,7 @@ mod logtests {
39
39
use super :: * ;
40
40
use integration_test_runner:: logs_asserter:: { read_logs_from_json, LogsAsserter } ;
41
41
use opentelemetry_appender_tracing:: layer:: OpenTelemetryTracingBridge ;
42
- use std:: { fs:: File , time :: Duration } ;
42
+ use std:: fs:: File ;
43
43
use tracing:: info;
44
44
use tracing_subscriber:: layer:: SubscriberExt ;
45
45
@@ -70,9 +70,11 @@ mod logtests {
70
70
#[ tokio:: test( flavor = "multi_thread" , worker_threads = 4 ) ]
71
71
#[ cfg( not( feature = "hyper-client" ) ) ]
72
72
#[ cfg( not( feature = "reqwest-client" ) ) ]
73
+ #[ serial_test:: serial]
73
74
pub async fn test_logs ( ) -> Result < ( ) > {
74
- // Make sure the container is running
75
+ test_utils :: cleanup_logs_file ( "./actual/logs.json" ) ? ; // Ensure logs.json is empty before the test
75
76
77
+ // Make sure the container is running
76
78
use integration_test_runner:: test_utils;
77
79
use opentelemetry_appender_tracing:: layer;
78
80
use tracing:: info;
@@ -88,21 +90,20 @@ mod logtests {
88
90
let _guard = tracing:: subscriber:: set_default ( subscriber) ;
89
91
info ! ( target: "my-target" , "hello from {}. My price is {}." , "banana" , 2.99 ) ;
90
92
}
91
- // TODO: remove below wait before calling logger_provider.shutdown()
92
- // tokio::time::sleep(Duration::from_secs(10)).await;
93
- let _ = logger_provider. shutdown ( ) ;
94
-
95
- tokio:: time:: sleep ( Duration :: from_secs ( 10 ) ) . await ;
96
93
94
+ let _ = logger_provider. shutdown ( ) ;
97
95
assert_logs_results ( test_utils:: LOGS_FILE , "expected/logs.json" ) ?;
98
96
99
97
Ok ( ( ) )
100
98
}
101
99
102
- #[ ignore = "TODO: [Fix Me] Failing on CI. Needs to be investigated and resolved." ]
100
+ // #[ignore = "TODO: [Fix Me] Failing on CI. Needs to be investigated and resolved."]
103
101
#[ test]
102
+ #[ serial_test:: serial]
104
103
#[ cfg( any( feature = "tonic-client" , feature = "reqwest-blocking-client" ) ) ]
105
104
pub fn logs_batch_non_tokio_main ( ) -> Result < ( ) > {
105
+ test_utils:: cleanup_logs_file ( "./actual/logs.json" ) ?; // Ensure logs.json is empty before the test
106
+
106
107
// Initialize the logger provider inside a tokio runtime
107
108
// as this allows tonic client to capture the runtime,
108
109
// but actual export occurs from the dedicated std::thread
@@ -114,15 +115,14 @@ mod logtests {
114
115
init_logs ( )
115
116
} ) ?;
116
117
117
- info ! ( "LoggerProvider created" ) ;
118
118
let layer = OpenTelemetryTracingBridge :: new ( & logger_provider) ;
119
119
let subscriber = tracing_subscriber:: registry ( ) . with ( layer) ;
120
120
{
121
121
let _guard = tracing:: subscriber:: set_default ( subscriber) ;
122
122
info ! ( target: "my-target" , "hello from {}. My price is {}." , "banana" , 2.99 ) ;
123
123
}
124
124
let _ = logger_provider. shutdown ( ) ;
125
- // tokio::time::sleep(Duration::from_secs(10)).await;
125
+
126
126
assert_logs_results ( test_utils:: LOGS_FILE , "expected/logs.json" ) ?;
127
127
128
128
Ok ( ( ) )
0 commit comments