Skip to content

Commit abbe390

Browse files
committed
Keep shared mock in log_processor
1 parent 6999b3e commit abbe390

File tree

3 files changed

+41
-74
lines changed

3 files changed

+41
-74
lines changed

opentelemetry-sdk/src/logs/batch_log_processor.rs

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -715,6 +715,7 @@ impl BatchConfigBuilder {
715715

716716
#[cfg(all(test, feature = "testing", feature = "logs"))]
717717
mod tests {
718+
use crate::logs::log_processor::tests::MockLogExporter;
718719
use super::{
719720
BatchConfig, BatchConfigBuilder, BatchLogProcessor, OTEL_BLRP_MAX_EXPORT_BATCH_SIZE,
720721
OTEL_BLRP_MAX_EXPORT_BATCH_SIZE_DEFAULT, OTEL_BLRP_MAX_QUEUE_SIZE,
@@ -723,9 +724,8 @@ mod tests {
723724
};
724725
#[cfg(feature = "experimental_logs_batch_log_processor_with_async_runtime")]
725726
use super::{OTEL_BLRP_EXPORT_TIMEOUT, OTEL_BLRP_EXPORT_TIMEOUT_DEFAULT};
726-
use crate::logs::{LogBatch, LogExporter, SdkLogRecord};
727+
use crate::logs::SdkLogRecord;
727728
use crate::{
728-
error::OTelSdkResult,
729729
logs::{InMemoryLogExporter, InMemoryLogExporterBuilder, LogProcessor, SdkLoggerProvider},
730730
Resource,
731731
};
@@ -734,41 +734,6 @@ mod tests {
734734
use std::sync::{Arc, Mutex};
735735
use std::time::Duration;
736736

737-
#[derive(Debug, Clone)]
738-
struct MockLogExporter {
739-
resource: Arc<Mutex<Option<Resource>>>,
740-
}
741-
742-
impl LogExporter for MockLogExporter {
743-
#[allow(clippy::manual_async_fn)]
744-
fn export(
745-
&self,
746-
_batch: LogBatch<'_>,
747-
) -> impl std::future::Future<Output = OTelSdkResult> + Send {
748-
async { Ok(()) }
749-
}
750-
751-
fn shutdown(&mut self) -> OTelSdkResult {
752-
Ok(())
753-
}
754-
755-
fn set_resource(&mut self, resource: &Resource) {
756-
self.resource
757-
.lock()
758-
.map(|mut res_opt| {
759-
res_opt.replace(resource.clone());
760-
})
761-
.expect("mock log exporter shouldn't error when setting resource");
762-
}
763-
}
764-
765-
// Implementation specific to the MockLogExporter, not part of the LogExporter trait
766-
impl MockLogExporter {
767-
fn get_resource(&self) -> Option<Resource> {
768-
(*self.resource).lock().unwrap().clone()
769-
}
770-
}
771-
772737
#[test]
773738
fn test_default_const_values() {
774739
assert_eq!(OTEL_BLRP_SCHEDULE_DELAY, "OTEL_BLRP_SCHEDULE_DELAY");

opentelemetry-sdk/src/logs/log_processor.rs

Lines changed: 38 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,9 @@ pub trait LogProcessor: Send + Sync + Debug {
6969
}
7070

7171
#[cfg(all(test, feature = "testing", feature = "logs"))]
72-
mod tests {
73-
use crate::logs::SdkLogRecord;
72+
pub(crate) mod tests {
73+
use crate::logs::{LogBatch, LogExporter, SdkLogRecord};
74+
use crate::Resource;
7475
use crate::{
7576
error::OTelSdkResult,
7677
logs::{LogProcessor, SdkLoggerProvider},
@@ -81,6 +82,41 @@ mod tests {
8182
use opentelemetry::{InstrumentationScope, Key};
8283
use std::sync::{Arc, Mutex};
8384

85+
#[derive(Debug, Clone)]
86+
pub(crate) struct MockLogExporter {
87+
pub resource: Arc<Mutex<Option<Resource>>>,
88+
}
89+
90+
impl LogExporter for MockLogExporter {
91+
#[allow(clippy::manual_async_fn)]
92+
fn export(
93+
&self,
94+
_batch: LogBatch<'_>,
95+
) -> impl std::future::Future<Output = OTelSdkResult> + Send {
96+
async { Ok(()) }
97+
}
98+
99+
fn shutdown(&mut self) -> OTelSdkResult {
100+
Ok(())
101+
}
102+
103+
fn set_resource(&mut self, resource: &Resource) {
104+
self.resource
105+
.lock()
106+
.map(|mut res_opt| {
107+
res_opt.replace(resource.clone());
108+
})
109+
.expect("mock log exporter shouldn't error when setting resource");
110+
}
111+
}
112+
113+
// Implementation specific to the MockLogExporter, not part of the LogExporter trait
114+
impl MockLogExporter {
115+
pub(crate) fn get_resource(&self) -> Option<Resource> {
116+
(*self.resource).lock().unwrap().clone()
117+
}
118+
}
119+
84120
#[derive(Debug)]
85121
struct FirstProcessor {
86122
pub(crate) logs: Arc<Mutex<Vec<(SdkLogRecord, InstrumentationScope)>>>,

opentelemetry-sdk/src/logs/simple_log_processor.rs

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ impl<T: LogExporter> LogProcessor for SimpleLogProcessor<T> {
135135

136136
#[cfg(all(test, feature = "testing", feature = "logs"))]
137137
mod tests {
138+
use crate::logs::log_processor::tests::MockLogExporter;
138139
use crate::logs::{LogBatch, LogExporter, SdkLogRecord};
139140
use crate::{
140141
error::OTelSdkResult,
@@ -147,41 +148,6 @@ mod tests {
147148
use std::sync::{Arc, Mutex};
148149
use std::time::Duration;
149150

150-
#[derive(Debug, Clone)]
151-
struct MockLogExporter {
152-
resource: Arc<Mutex<Option<Resource>>>,
153-
}
154-
155-
impl LogExporter for MockLogExporter {
156-
#[allow(clippy::manual_async_fn)]
157-
fn export(
158-
&self,
159-
_batch: LogBatch<'_>,
160-
) -> impl std::future::Future<Output = OTelSdkResult> + Send {
161-
async { Ok(()) }
162-
}
163-
164-
fn shutdown(&mut self) -> OTelSdkResult {
165-
Ok(())
166-
}
167-
168-
fn set_resource(&mut self, resource: &Resource) {
169-
self.resource
170-
.lock()
171-
.map(|mut res_opt| {
172-
res_opt.replace(resource.clone());
173-
})
174-
.expect("mock log exporter shouldn't error when setting resource");
175-
}
176-
}
177-
178-
// Implementation specific to the MockLogExporter, not part of the LogExporter trait
179-
impl MockLogExporter {
180-
fn get_resource(&self) -> Option<Resource> {
181-
(*self.resource).lock().unwrap().clone()
182-
}
183-
}
184-
185151
#[derive(Debug, Clone)]
186152
struct LogExporterThatRequiresTokio {
187153
export_count: Arc<AtomicUsize>,

0 commit comments

Comments
 (0)