From 65091aa6a87d17cc74d27ae7b2e48c3be6f0c3d3 Mon Sep 17 00:00:00 2001 From: Zhengchao An Date: Thu, 13 Aug 2026 08:10:47 +0800 Subject: [PATCH] test: give the twenty-one bare #[ignore] attributes their reasons (#6049) --- .../e2e_test/src/protocols/sftp_compliance_tests.rs | 2 +- crates/s3select-query/src/instance.rs | 4 ++-- crates/targets/src/target/nats/jetstream.rs | 8 ++++---- crates/targets/tests/mysql_integration.rs | 12 ++++++------ .../tests/nats_jetstream_regression_guards.rs | 2 +- .../tests/nats_jetstream_validation_integration.rs | 8 ++++---- rustfs/tests/concurrent_download_tool.rs | 2 +- rustfs/tests/gt1g_get_benchmark_tool.rs | 2 +- rustfs/tests/lifecycle_minio_sdk_test.rs | 2 +- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/crates/e2e_test/src/protocols/sftp_compliance_tests.rs b/crates/e2e_test/src/protocols/sftp_compliance_tests.rs index a5a60955b..96e3991ad 100644 --- a/crates/e2e_test/src/protocols/sftp_compliance_tests.rs +++ b/crates/e2e_test/src/protocols/sftp_compliance_tests.rs @@ -2854,7 +2854,7 @@ pub(crate) mod cmptst_30 { result } - #[ignore] + #[ignore = "timing-sensitive backend-pressure latency probe; run explicitly with --ignored"] #[tokio::test] async fn regression() -> Result<(), Box> { crate::common::init_logging(); diff --git a/crates/s3select-query/src/instance.rs b/crates/s3select-query/src/instance.rs index e33a73a71..444b59725 100644 --- a/crates/s3select-query/src/instance.rs +++ b/crates/s3select-query/src/instance.rs @@ -292,7 +292,7 @@ mod tests { } #[tokio::test] - #[ignore] + #[ignore = "requires a live RustFS store with a pre-seeded test object (bucket 'dandan')"] async fn test_simple_sql() { let sql = "select * from S3Object"; let input = SelectObjectContentInput { @@ -354,7 +354,7 @@ mod tests { } #[tokio::test] - #[ignore] + #[ignore = "requires a live RustFS store with a pre-seeded test object (bucket 'dandan')"] async fn test_func_sql() { let sql = "SELECT * FROM S3Object s"; let input = SelectObjectContentInput { diff --git a/crates/targets/src/target/nats/jetstream.rs b/crates/targets/src/target/nats/jetstream.rs index 836f248e5..663525e9a 100644 --- a/crates/targets/src/target/nats/jetstream.rs +++ b/crates/targets/src/target/nats/jetstream.rs @@ -760,7 +760,7 @@ mod tests { } #[tokio::test] - #[ignore] + #[ignore = "requires a live NATS JetStream server (docker run nats:2 -js; RUSTFS_TEST_NATS_URL overrides)"] async fn tls_change_rebuilds_the_context_and_drains_the_old_acker() { // A TLS fingerprint change on the publish path rebuilds the cached context from the new client and drains the old acker. let subject = format!("rustfs.tlsrebuild.{}", Uuid::new_v4().simple()); @@ -839,7 +839,7 @@ mod tests { } #[tokio::test] - #[ignore] + #[ignore = "requires a live NATS JetStream server (docker run nats:2 -js; RUSTFS_TEST_NATS_URL overrides)"] async fn tls_change_after_a_failed_reconnect_still_rebuilds_the_context() { // A rotation detected while the broker is unreachable does not orphan the cached context: a failed reconnect followed by a successful one ends bound to the rebuilt context. let subject = format!("rustfs.tlsfail.{}", Uuid::new_v4().simple()); @@ -917,7 +917,7 @@ mod tests { } #[tokio::test] - #[ignore] + #[ignore = "requires a live NATS JetStream server (docker run nats:2 -js; RUSTFS_TEST_NATS_URL overrides)"] async fn publish_gate_rejects_an_unsafe_stream_and_heals_after_the_stream_is_fixed() { // The gate rejects every publish while the stream's duplicate window is below the retry lifetime, and starts publishing once the operator widens it, without a restart. let subject = format!("rustfs.gate.{}", Uuid::new_v4().simple()); @@ -975,7 +975,7 @@ mod tests { } #[tokio::test] - #[ignore] + #[ignore = "requires a live NATS JetStream server (docker run nats:2 -js; RUSTFS_TEST_NATS_URL overrides)"] async fn a_remapped_subject_is_rejected_by_the_ack_stream_check_and_the_entry_stays_queued() { // After a subject remap the takeover stream acknowledges, so the ack-stream check rejects it with the mismatch detail, keeps the entry queued, and resets the verdict for re-validation. let subject = format!("rustfs.remap.{}", Uuid::new_v4().simple()); diff --git a/crates/targets/tests/mysql_integration.rs b/crates/targets/tests/mysql_integration.rs index ef0ccc2c8..7b649b2bc 100644 --- a/crates/targets/tests/mysql_integration.rs +++ b/crates/targets/tests/mysql_integration.rs @@ -107,7 +107,7 @@ async fn drop_table(dsn: &str, table: &str) { .await; } -#[ignore] +#[ignore = "requires a live MySQL 8.0+/TiDB instance (see module docs for the container command)"] #[tokio::test] async fn direct_write_and_read() { let dsn = test_dsn(); @@ -131,7 +131,7 @@ async fn direct_write_and_read() { drop_table(&dsn, &table).await; } -#[ignore] +#[ignore = "requires a live MySQL 8.0+/TiDB instance (see module docs for the container command)"] #[tokio::test] async fn delete_appends_row_does_not_remove_old() { let dsn = test_dsn(); @@ -155,7 +155,7 @@ async fn delete_appends_row_does_not_remove_old() { drop_table(&dsn, &table).await; } -#[ignore] +#[ignore = "requires a live MySQL 8.0+/TiDB instance (see module docs for the container command)"] #[tokio::test] async fn queue_store_saves_entry_and_replays() { let dsn = test_dsn(); @@ -195,7 +195,7 @@ async fn queue_store_saves_entry_and_replays() { drop_table(&dsn, &table).await; } -#[ignore] +#[ignore = "requires a live MySQL 8.0+/TiDB instance (see module docs for the container command)"] #[tokio::test] async fn duplicate_replay_produces_duplicate_rows() { let dsn = test_dsn(); @@ -236,7 +236,7 @@ async fn duplicate_replay_produces_duplicate_rows() { drop_table(&dsn, &table).await; } -#[ignore] +#[ignore = "requires a live MySQL 8.0+/TiDB instance (see module docs for the container command)"] #[tokio::test] async fn incompatible_schema_init_fails() { let dsn = test_dsn(); @@ -267,7 +267,7 @@ async fn incompatible_schema_init_fails() { drop_table(&dsn, &table).await; } -#[ignore] +#[ignore = "requires a live MySQL 8.0+/TiDB instance (see module docs for the container command)"] #[tokio::test] async fn check_mysql_server_available_succeeds_against_existing_table() { let dsn = test_dsn(); diff --git a/crates/targets/tests/nats_jetstream_regression_guards.rs b/crates/targets/tests/nats_jetstream_regression_guards.rs index 016b107cf..86aaf3c87 100644 --- a/crates/targets/tests/nats_jetstream_regression_guards.rs +++ b/crates/targets/tests/nats_jetstream_regression_guards.rs @@ -181,7 +181,7 @@ fn jetstream_args(subject: &str, stream_name: &str, queue_dir: &str) -> NATSArgs /// /// Ignored by default because it needs a running NATS server with JetStream. #[tokio::test] -#[ignore] +#[ignore = "requires a live NATS JetStream server (see module docs; RUSTFS_TEST_NATS_URL overrides)"] async fn end_to_end_publish_is_acked_on_the_stream() { use rustfs_targets::EventName; use rustfs_targets::Target; diff --git a/crates/targets/tests/nats_jetstream_validation_integration.rs b/crates/targets/tests/nats_jetstream_validation_integration.rs index 3981b5e53..f976e20ba 100644 --- a/crates/targets/tests/nats_jetstream_validation_integration.rs +++ b/crates/targets/tests/nats_jetstream_validation_integration.rs @@ -82,7 +82,7 @@ async fn remove_stream(stream_name: &str) { } #[tokio::test] -#[ignore] +#[ignore = "requires a live NATS JetStream server (see module docs; RUSTFS_TEST_NATS_URL overrides)"] async fn missing_stream_fails_the_health_check() { let stream_name = format!("RUSTFS_TEST_{}", Uuid::new_v4().simple()); let args = jetstream_args("rustfs.events", &stream_name); @@ -94,7 +94,7 @@ async fn missing_stream_fails_the_health_check() { } #[tokio::test] -#[ignore] +#[ignore = "requires a live NATS JetStream server (see module docs; RUSTFS_TEST_NATS_URL overrides)"] async fn valid_stream_passes_the_health_check() { let stream_name = format!("RUSTFS_TEST_{}", Uuid::new_v4().simple()); let subject = "rustfs.events"; @@ -106,7 +106,7 @@ async fn valid_stream_passes_the_health_check() { } #[tokio::test] -#[ignore] +#[ignore = "requires a live NATS JetStream server (see module docs; RUSTFS_TEST_NATS_URL overrides)"] async fn stream_not_capturing_the_subject_fails_the_health_check() { let stream_name = format!("RUSTFS_TEST_{}", Uuid::new_v4().simple()); // The stream binds a different subject than the target publishes to. @@ -118,7 +118,7 @@ async fn stream_not_capturing_the_subject_fails_the_health_check() { } #[tokio::test] -#[ignore] +#[ignore = "requires a live NATS JetStream server (see module docs; RUSTFS_TEST_NATS_URL overrides)"] async fn too_small_duplicate_window_fails_the_health_check() { let stream_name = format!("RUSTFS_TEST_{}", Uuid::new_v4().simple()); let subject = "rustfs.events"; diff --git a/rustfs/tests/concurrent_download_tool.rs b/rustfs/tests/concurrent_download_tool.rs index 537c85fab..58a9f4aba 100644 --- a/rustfs/tests/concurrent_download_tool.rs +++ b/rustfs/tests/concurrent_download_tool.rs @@ -369,7 +369,7 @@ async fn run_concurrent_downloads(settings: DownloadSettings) -> Result Result<()> { let settings = DownloadSettings::from_env()?; let summary = run_concurrent_downloads(settings).await?; diff --git a/rustfs/tests/gt1g_get_benchmark_tool.rs b/rustfs/tests/gt1g_get_benchmark_tool.rs index 72a6b03d7..25cdd8683 100644 --- a/rustfs/tests/gt1g_get_benchmark_tool.rs +++ b/rustfs/tests/gt1g_get_benchmark_tool.rs @@ -512,7 +512,7 @@ async fn run_bench(settings: &ToolSettings, client: &Client) -> Result<()> { } #[tokio::test] -#[ignore] +#[ignore = "manual >1GiB GET benchmark: requires a running RustFS server configured via env vars"] async fn gt1g_get_benchmark_tool() -> Result<()> { let settings = ToolSettings::from_env()?; let client = build_client(&settings).await?; diff --git a/rustfs/tests/lifecycle_minio_sdk_test.rs b/rustfs/tests/lifecycle_minio_sdk_test.rs index d5d7be8ad..ff9f9e8ab 100644 --- a/rustfs/tests/lifecycle_minio_sdk_test.rs +++ b/rustfs/tests/lifecycle_minio_sdk_test.rs @@ -179,7 +179,7 @@ impl Oss { #[tokio::test] #[serial] -#[ignore] +#[ignore = "requires a running RustFS server at TEST_RUSTFS_SERVER (default http://localhost:9000)"] async fn test_lifecycle_minio_sdk() -> Result<()> { let settings = Settings::new(); let oss = Oss::new(&settings).await?;