This is an automated email from the ASF dual-hosted git repository.

hgruszecki pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iggy.git


The following commit(s) were added to refs/heads/master by this push:
     new 54c60a827 fix(test): replace log-based container readiness checks with 
HTTP healthcheck endpoints (#3093)
54c60a827 is described below

commit 54c60a827fc208ed6708a6f19c39d47125cc77e7
Author: Krishna Vishal <[email protected]>
AuthorDate: Tue Apr 14 13:21:03 2026 +0530

    fix(test): replace log-based container readiness checks with HTTP 
healthcheck endpoints (#3093)
---
 core/integration/tests/connectors/fixtures/iceberg/container.rs  | 6 +++++-
 core/integration/tests/connectors/fixtures/influxdb/container.rs | 9 ++++++---
 core/integration/tests/connectors/fixtures/quickwit/container.rs | 8 ++++++--
 3 files changed, 17 insertions(+), 6 deletions(-)

diff --git a/core/integration/tests/connectors/fixtures/iceberg/container.rs 
b/core/integration/tests/connectors/fixtures/iceberg/container.rs
index 4c0f4088b..c0bcc5c13 100644
--- a/core/integration/tests/connectors/fixtures/iceberg/container.rs
+++ b/core/integration/tests/connectors/fixtures/iceberg/container.rs
@@ -67,7 +67,11 @@ impl MinioContainer {
         let container = GenericImage::new(MINIO_IMAGE, MINIO_TAG)
             .with_exposed_port(MINIO_PORT.tcp())
             .with_exposed_port(MINIO_CONSOLE_PORT.tcp())
-            .with_wait_for(WaitFor::message_on_stderr("API:"))
+            .with_wait_for(WaitFor::http(
+                HttpWaitStrategy::new("/minio/health/live")
+                    .with_port(MINIO_PORT.tcp())
+                    .with_expected_status_code(200u16),
+            ))
             .with_network(network)
             .with_container_name(container_name)
             .with_env_var("MINIO_ROOT_USER", MINIO_ACCESS_KEY)
diff --git a/core/integration/tests/connectors/fixtures/influxdb/container.rs 
b/core/integration/tests/connectors/fixtures/influxdb/container.rs
index 0e39650ee..e77ae7f11 100644
--- a/core/integration/tests/connectors/fixtures/influxdb/container.rs
+++ b/core/integration/tests/connectors/fixtures/influxdb/container.rs
@@ -21,6 +21,7 @@ use integration::harness::TestBinaryError;
 use reqwest_middleware::ClientWithMiddleware as HttpClient;
 use reqwest_retry::RetryTransientMiddleware;
 use reqwest_retry::policies::ExponentialBackoff;
+use testcontainers_modules::testcontainers::core::wait::HttpWaitStrategy;
 use testcontainers_modules::testcontainers::core::{IntoContainerPort, WaitFor};
 use testcontainers_modules::testcontainers::runners::AsyncRunner;
 use testcontainers_modules::testcontainers::{ContainerAsync, GenericImage, 
ImageExt};
@@ -101,9 +102,11 @@ impl InfluxDbContainer {
         let container: ContainerAsync<GenericImage> =
             GenericImage::new(INFLUXDB_IMAGE, INFLUXDB_TAG)
                 .with_exposed_port(INFLUXDB_PORT.tcp())
-                // "Listening" appears in stdout before the HTTP API is ready 
on
-                // aarch64/Apple Silicon; we add a real /ping probe below.
-                .with_wait_for(WaitFor::message_on_stdout("Listening"))
+                .with_wait_for(WaitFor::http(
+                    HttpWaitStrategy::new("/ping")
+                        .with_port(INFLUXDB_PORT.tcp())
+                        .with_expected_status_code(204u16),
+                ))
                 .with_mapped_port(0, INFLUXDB_PORT.tcp())
                 .with_env_var("DOCKER_INFLUXDB_INIT_MODE", "setup")
                 .with_env_var("DOCKER_INFLUXDB_INIT_USERNAME", 
INFLUXDB_USERNAME)
diff --git a/core/integration/tests/connectors/fixtures/quickwit/container.rs 
b/core/integration/tests/connectors/fixtures/quickwit/container.rs
index 5c79b9bc6..9d062937c 100644
--- a/core/integration/tests/connectors/fixtures/quickwit/container.rs
+++ b/core/integration/tests/connectors/fixtures/quickwit/container.rs
@@ -25,6 +25,7 @@ use reqwest_retry::policies::ExponentialBackoff;
 use serde::Deserialize;
 use std::collections::HashMap;
 use std::time::Duration;
+use testcontainers_modules::testcontainers::core::wait::HttpWaitStrategy;
 use testcontainers_modules::testcontainers::core::{IntoContainerPort, WaitFor};
 use testcontainers_modules::testcontainers::runners::AsyncRunner;
 use testcontainers_modules::testcontainers::{ContainerAsync, GenericImage, 
ImageExt};
@@ -38,7 +39,6 @@ const DEFAULT_POLL_INTERVAL_MS: u64 = 50;
 const QUICKWIT_IMAGE: &str = "quickwit/quickwit";
 const QUICKWIT_TAG: &str = "0.8.2";
 const QUICKWIT_PORT: u16 = 7280;
-const QUICKWIT_READY_MSG: &str = "REST server is ready";
 const QUICKWIT_LISTEN_ADDRESS: &str = "0.0.0.0";
 
 const ENV_PLUGIN_URL: &str = "IGGY_CONNECTORS_SINK_QUICKWIT_PLUGIN_CONFIG_URL";
@@ -69,7 +69,11 @@ impl QuickwitContainer {
 
         let container = GenericImage::new(QUICKWIT_IMAGE, QUICKWIT_TAG)
             .with_exposed_port(0.tcp())
-            .with_wait_for(WaitFor::message_on_stdout(QUICKWIT_READY_MSG))
+            .with_wait_for(WaitFor::http(
+                HttpWaitStrategy::new("/health/readyz")
+                    .with_port(QUICKWIT_PORT.tcp())
+                    .with_expected_status_code(200u16),
+            ))
             .with_network(unique_network)
             .with_cmd(["run"])
             .with_env_var("QW_LISTEN_ADDRESS", QUICKWIT_LISTEN_ADDRESS)

Reply via email to