From b94006d64fa0529c10881c3d3f33bdf0f0265dab Mon Sep 17 00:00:00 2001 From: Nando Vieira Date: Mon, 13 Apr 2026 11:47:21 -0700 Subject: [PATCH 1/4] Fix test setup for Windows. --- cmd/soroban-cli/src/config/upgrade_check.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/cmd/soroban-cli/src/config/upgrade_check.rs b/cmd/soroban-cli/src/config/upgrade_check.rs index 23db047279..51946a220b 100644 --- a/cmd/soroban-cli/src/config/upgrade_check.rs +++ b/cmd/soroban-cli/src/config/upgrade_check.rs @@ -73,9 +73,12 @@ mod tests { #[test] fn test_upgrade_check_load_save() { - // Set the `XDG_DATA_HOME` environment variable to a temporary directory + // Use `STELLAR_DATA_HOME` (cross-platform, highest priority) so that + // any `STELLAR_DATA_HOME` or `XDG_DATA_HOME` leaked by parallel tests + // cannot shadow our temp dir. let temp_dir = tempfile::tempdir().unwrap(); - env::set_var("XDG_DATA_HOME", temp_dir.path()); + env::remove_var("XDG_DATA_HOME"); + env::set_var("STELLAR_DATA_HOME", temp_dir.path()); // Test default loading let default_check = UpgradeCheck::load().unwrap(); assert_eq!(default_check, UpgradeCheck::default()); From e6516aadcda085fe65aa64201ac1a723b04d7353 Mon Sep 17 00:00:00 2001 From: Nando Vieira Date: Mon, 13 Apr 2026 11:56:32 -0700 Subject: [PATCH 2/4] Force running windows test. --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 145e5d4f70..321533b82c 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -105,7 +105,7 @@ jobs: rust-version: ${{ matrix.rust }} build-and-test-windows: - if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') || startsWith(github.head_ref, 'release/') + # if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') || startsWith(github.head_ref, 'release/') strategy: fail-fast: false matrix: From 9d0e00c1e1ba3235aab399902b2c1602c5003c3d Mon Sep 17 00:00:00 2001 From: Nando Vieira Date: Mon, 13 Apr 2026 12:21:17 -0700 Subject: [PATCH 3/4] Do not run tests in parallel. --- Cargo.lock | 1 + cmd/soroban-cli/Cargo.toml | 1 + cmd/soroban-cli/src/config/data.rs | 2 ++ cmd/soroban-cli/src/config/upgrade_check.rs | 2 ++ 4 files changed, 6 insertions(+) diff --git a/Cargo.lock b/Cargo.lock index 3887b73a62..5bc2bb596e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5427,6 +5427,7 @@ dependencies = [ "serde-aux", "serde_json", "serde_with", + "serial_test", "sha2 0.10.9", "shell-escape", "shlex", diff --git a/cmd/soroban-cli/Cargo.toml b/cmd/soroban-cli/Cargo.toml index 3267ab959a..7cd0452bc5 100644 --- a/cmd/soroban-cli/Cargo.toml +++ b/cmd/soroban-cli/Cargo.toml @@ -141,3 +141,4 @@ assert_fs = "1.0.7" predicates = { workspace = true } walkdir = "2.5.0" mockito = "1.5.0" +serial_test = "3.0.0" diff --git a/cmd/soroban-cli/src/config/data.rs b/cmd/soroban-cli/src/config/data.rs index 2ffa876139..5b4accb907 100644 --- a/cmd/soroban-cli/src/config/data.rs +++ b/cmd/soroban-cli/src/config/data.rs @@ -202,8 +202,10 @@ fn to_xdr(data: &impl WriteXdr) -> Result { #[cfg(test)] mod test { use super::*; + use serial_test::serial; #[test] + #[serial] fn test_write_read() { let t = assert_fs::TempDir::new().unwrap(); std::env::set_var("STELLAR_DATA_HOME", t.path().to_str().unwrap()); diff --git a/cmd/soroban-cli/src/config/upgrade_check.rs b/cmd/soroban-cli/src/config/upgrade_check.rs index 51946a220b..59aa98cf71 100644 --- a/cmd/soroban-cli/src/config/upgrade_check.rs +++ b/cmd/soroban-cli/src/config/upgrade_check.rs @@ -69,9 +69,11 @@ impl UpgradeCheck { #[cfg(test)] mod tests { use super::*; + use serial_test::serial; use std::env; #[test] + #[serial] fn test_upgrade_check_load_save() { // Use `STELLAR_DATA_HOME` (cross-platform, highest priority) so that // any `STELLAR_DATA_HOME` or `XDG_DATA_HOME` leaked by parallel tests From 9d28900ee4ace3c5480bb93922d7cbedb7eaf0fb Mon Sep 17 00:00:00 2001 From: Nando Vieira Date: Mon, 13 Apr 2026 12:58:50 -0700 Subject: [PATCH 4/4] Undo workflow change. --- .github/workflows/rust.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 321533b82c..145e5d4f70 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -105,7 +105,7 @@ jobs: rust-version: ${{ matrix.rust }} build-and-test-windows: - # if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') || startsWith(github.head_ref, 'release/') + if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/') || startsWith(github.head_ref, 'release/') strategy: fail-fast: false matrix: