@@ -44,7 +44,7 @@ fn make_settings() -> Settings {
4444 settings
4545}
4646
47- async fn setup_minio_container ( ) -> ContainerAsync < minio:: MinIO > {
47+ async fn setup_minio_container ( ) -> Result < ContainerAsync < minio:: MinIO > , String > {
4848 const MINIO_ROOT_USER : & str = "TEST-DataFusionLogin" ;
4949 const MINIO_ROOT_PASSWORD : & str = "TEST-DataFusionPassword" ;
5050
@@ -109,17 +109,13 @@ async fn setup_minio_container() -> ContainerAsync<minio::MinIO> {
109109 }
110110 }
111111
112- container
112+ Ok ( container)
113113 }
114114
115- Err ( TestcontainersError :: Client ( e) ) => {
116- panic ! (
117- "Failed to start MinIO container. Ensure Docker is running and accessible: {e}"
118- ) ;
119- }
120- Err ( e) => {
121- panic ! ( "Failed to start MinIO container: {e}" ) ;
122- }
115+ Err ( TestcontainersError :: Client ( e) ) => Err ( format ! (
116+ "Failed to start MinIO container. Ensure Docker is running and accessible: {e}"
117+ ) ) ,
118+ Err ( e) => Err ( format ! ( "Failed to start MinIO container: {e}" ) ) ,
123119 }
124120}
125121
@@ -253,7 +249,14 @@ async fn test_cli() {
253249 return ;
254250 }
255251
256- let container = setup_minio_container ( ) . await ;
252+ let container = match setup_minio_container ( ) . await {
253+ Ok ( c) => c,
254+ Err ( e) if e. contains ( "toomanyrequests" ) => {
255+ eprintln ! ( "Skipping test: Docker pull rate limit reached: {e}" ) ;
256+ return ;
257+ }
258+ Err ( e) => panic ! ( "{e}" ) ,
259+ } ;
257260
258261 let settings = make_settings ( ) ;
259262 let _bound = settings. bind_to_scope ( ) ;
@@ -286,7 +289,14 @@ async fn test_aws_options() {
286289 let settings = make_settings ( ) ;
287290 let _bound = settings. bind_to_scope ( ) ;
288291
289- let container = setup_minio_container ( ) . await ;
292+ let container = match setup_minio_container ( ) . await {
293+ Ok ( c) => c,
294+ Err ( e) if e. contains ( "toomanyrequests" ) => {
295+ eprintln ! ( "Skipping test: Docker pull rate limit reached: {e}" ) ;
296+ return ;
297+ }
298+ Err ( e) => panic ! ( "{e}" ) ,
299+ } ;
290300 let port = container. get_host_port_ipv4 ( 9000 ) . await . unwrap ( ) ;
291301
292302 let input = format ! (
@@ -377,7 +387,14 @@ async fn test_s3_url_fallback() {
377387 return ;
378388 }
379389
380- let container = setup_minio_container ( ) . await ;
390+ let container = match setup_minio_container ( ) . await {
391+ Ok ( c) => c,
392+ Err ( e) if e. contains ( "toomanyrequests" ) => {
393+ eprintln ! ( "Skipping test: Docker pull rate limit reached: {e}" ) ;
394+ return ;
395+ }
396+ Err ( e) => panic ! ( "{e}" ) ,
397+ } ;
381398
382399 let mut settings = make_settings ( ) ;
383400 settings. set_snapshot_suffix ( "s3_url_fallback" ) ;
@@ -407,8 +424,14 @@ async fn test_object_store_profiling() {
407424 return ;
408425 }
409426
410- let container = setup_minio_container ( ) . await ;
411-
427+ let container = match setup_minio_container ( ) . await {
428+ Ok ( c) => c,
429+ Err ( e) if e. contains ( "toomanyrequests" ) => {
430+ eprintln ! ( "Skipping test: Docker pull rate limit reached: {e}" ) ;
431+ return ;
432+ }
433+ Err ( e) => panic ! ( "{e}" ) ,
434+ } ;
412435 let mut settings = make_settings ( ) ;
413436
414437 // as the object store profiling contains timestamps and durations, we must
0 commit comments