@@ -671,7 +671,7 @@ mod tests {
671
671
use crate :: export:: trace:: { ExportResult , SpanData , SpanExporter } ;
672
672
use crate :: runtime;
673
673
use crate :: testing:: trace:: {
674
- new_test_export_span_data, new_tokio_test_exporter, TestSpanExporter ,
674
+ new_test_export_span_data, new_tokio_test_exporter, InMemorySpanExporterBuilder ,
675
675
} ;
676
676
use crate :: trace:: span_processor:: {
677
677
OTEL_BSP_EXPORT_TIMEOUT_DEFAULT , OTEL_BSP_MAX_EXPORT_BATCH_SIZE_DEFAULT ,
@@ -685,16 +685,17 @@ mod tests {
685
685
686
686
#[ test]
687
687
fn simple_span_processor_on_end_calls_export ( ) {
688
- let exporter = TestSpanExporter :: new ( ) ;
688
+ let exporter = InMemorySpanExporterBuilder :: new ( ) . build ( ) ;
689
689
let mut processor = SimpleSpanProcessor :: new ( Box :: new ( exporter. clone ( ) ) ) ;
690
- processor. on_end ( new_test_export_span_data ( ) ) ;
691
- assert ! ( exporter. is_export_called( ) ) ;
690
+ let span_data = new_test_export_span_data ( ) ;
691
+ processor. on_end ( span_data. clone ( ) ) ;
692
+ assert_eq ! ( exporter. get_finished_spans( ) . unwrap( ) [ 0 ] , span_data) ;
692
693
let _result = processor. shutdown ( ) ;
693
694
}
694
695
695
696
#[ test]
696
697
fn simple_span_processor_on_end_skips_export_if_not_sampled ( ) {
697
- let exporter = TestSpanExporter :: new ( ) ;
698
+ let exporter = InMemorySpanExporterBuilder :: new ( ) . build ( ) ;
698
699
let processor = SimpleSpanProcessor :: new ( Box :: new ( exporter. clone ( ) ) ) ;
699
700
let unsampled = SpanData {
700
701
span_context : SpanContext :: empty_context ( ) ,
@@ -712,16 +713,19 @@ mod tests {
712
713
instrumentation_lib : Default :: default ( ) ,
713
714
} ;
714
715
processor. on_end ( unsampled) ;
715
- assert ! ( ! exporter. is_export_called ( ) ) ;
716
+ assert ! ( exporter. get_finished_spans ( ) . unwrap ( ) . is_empty ( ) ) ;
716
717
}
717
718
718
719
#[ test]
719
720
fn simple_span_processor_shutdown_calls_shutdown ( ) {
720
- let exporter = TestSpanExporter :: new ( ) ;
721
+ let exporter = InMemorySpanExporterBuilder :: new ( ) . build ( ) ;
721
722
let mut processor = SimpleSpanProcessor :: new ( Box :: new ( exporter. clone ( ) ) ) ;
722
- assert ! ( !exporter. is_shutdown_called( ) ) ;
723
+ let span_data = new_test_export_span_data ( ) ;
724
+ processor. on_end ( span_data. clone ( ) ) ;
725
+ assert ! ( !exporter. get_finished_spans( ) . unwrap( ) . is_empty( ) ) ;
723
726
let _result = processor. shutdown ( ) ;
724
- assert ! ( exporter. is_shutdown_called( ) ) ;
727
+ // Assume shutdown is called by ensuring spans are empty in the exporter
728
+ assert ! ( exporter. get_finished_spans( ) . unwrap( ) . is_empty( ) ) ;
725
729
}
726
730
727
731
#[ test]
@@ -820,7 +824,10 @@ mod tests {
820
824
( OTEL_BSP_EXPORT_TIMEOUT , Some ( "2046" ) ) ,
821
825
] ;
822
826
temp_env:: with_vars ( env_vars. clone ( ) , || {
823
- let builder = BatchSpanProcessor :: builder ( TestSpanExporter :: new ( ) , runtime:: Tokio ) ;
827
+ let builder = BatchSpanProcessor :: builder (
828
+ InMemorySpanExporterBuilder :: new ( ) . build ( ) ,
829
+ runtime:: Tokio ,
830
+ ) ;
824
831
// export batch size cannot exceed max queue size
825
832
assert_eq ! ( builder. config. max_export_batch_size, 500 ) ;
826
833
assert_eq ! (
@@ -840,7 +847,10 @@ mod tests {
840
847
env_vars. push ( ( OTEL_BSP_MAX_QUEUE_SIZE , Some ( "120" ) ) ) ;
841
848
842
849
temp_env:: with_vars ( env_vars, || {
843
- let builder = BatchSpanProcessor :: builder ( TestSpanExporter :: new ( ) , runtime:: Tokio ) ;
850
+ let builder = BatchSpanProcessor :: builder (
851
+ InMemorySpanExporterBuilder :: new ( ) . build ( ) ,
852
+ runtime:: Tokio ,
853
+ ) ;
844
854
assert_eq ! ( builder. config. max_export_batch_size, 120 ) ;
845
855
assert_eq ! ( builder. config. max_queue_size, 120 ) ;
846
856
} ) ;
0 commit comments