@@ -66,6 +66,7 @@ pub struct TraceExporterConfig {
6666    output_format :  TraceExporterOutputFormat , 
6767    compute_stats :  bool , 
6868    telemetry_cfg :  Option < TelemetryConfig > , 
69+     test_session_token :  Option < String > , 
6970} 
7071
7172#[ no_mangle]  
@@ -274,6 +275,23 @@ pub unsafe extern "C" fn ddog_trace_exporter_config_set_compute_stats(
274275    } 
275276} 
276277
278+ /// Sets test session token to be included in the headers request. 
279+ #[ no_mangle]  
280+ pub  unsafe  extern  "C"  fn  ddog_trace_exporter_config_set_test_session_token ( 
281+     config :  Option < & mut  TraceExporterConfig > , 
282+     token :  CharSlice , 
283+ )  -> Option < Box < ExporterError > >  { 
284+     if  let  Option :: Some ( handle)  = config { 
285+         handle. test_session_token  = match  sanitize_string ( lang)  { 
286+             Ok ( s)  => Some ( s) , 
287+             Err ( e)  => return  Some ( e) , 
288+         } ; 
289+         None 
290+     }  else  { 
291+         gen_error ! ( ErrorCode :: InvalidArgument ) 
292+     } 
293+ } 
294+ 
277295/// Create a new TraceExporter instance. 
278296/// 
279297/// # Arguments 
@@ -313,6 +331,10 @@ pub unsafe extern "C" fn ddog_trace_exporter_new(
313331            builder. enable_telemetry ( Some ( cfg. clone ( ) ) ) ; 
314332        } 
315333
334+         if  let  Some ( token)  = & config. test_session_token  { 
335+             builder. set_test_session_token ( token) ; 
336+         } 
337+ 
316338        match  builder. build ( )  { 
317339            Ok ( exporter)  => { 
318340                out_handle. as_ptr ( ) . write ( Box :: new ( exporter) ) ; 
@@ -406,7 +428,8 @@ mod tests {
406428            assert_eq ! ( cfg. input_format,  TraceExporterInputFormat :: V04 ) ; 
407429            assert_eq ! ( cfg. output_format,  TraceExporterOutputFormat :: V04 ) ; 
408430            assert ! ( !cfg. compute_stats) ; 
409-             assert ! ( cfg. telemetry_cfg. is_none( ) ) ; 
431+             assert ! ( cfg. telemetry_cfg. is_none( ) ) 
432+             assert ! ( cfg. test_session_token. is_none( ) ) ; 
410433
411434            ddog_trace_exporter_config_free ( cfg) ; 
412435        } 
0 commit comments