From c9725f18d47557071d688bdbfd1d13db0836394c Mon Sep 17 00:00:00 2001 From: Andy Dixon Date: Tue, 13 Oct 2026 14:23:43 +0100 Subject: [PATCH] Tests on Windows: no console for CLI children, .exe for the Go oracle; CI test timeout A hidden console on Windows runners let a confirmation prompt wait forever, and the oracle built without .exe could not be run. --- .github/workflows/ci.yml | 1 + tests/cli.rs | 4 ++++ tests/common/mod.rs | 4 +++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ec73883..424f89d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -27,6 +27,7 @@ jobs: matrix: os: [ubuntu-24.04, ubuntu-24.04-arm, macos-15, macos-15-intel, windows-2025] runs-on: ${{ matrix.os }} + timeout-minutes: 30 steps: - uses: actions/checkout@v5 # The Go toolchain builds the test-only oracle; vault itself needs no Go. diff --git a/tests/cli.rs b/tests/cli.rs index f4096a2..fa8b683 100644 --- a/tests/cli.rs +++ b/tests/cli.rs @@ -54,6 +54,10 @@ impl Env { if let Some(p) = pass { c.env("VAULT_PASSPHRASE", p); } + // No console, as Unix tests have no terminal: CI runners have a + // hidden one, where a prompt would wait forever. + #[cfg(windows)] + std::os::windows::process::CommandExt::creation_flags(&mut c, 0x0000_0008); // DETACHED_PROCESS c } diff --git a/tests/common/mod.rs b/tests/common/mod.rs index b857a4a..a3c1750 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -34,7 +34,9 @@ pub fn go_oracle() -> Option { if !have_go() { return None; } - let out = root().join("target").join("vault-go-oracle"); + let out = root() + .join("target") + .join(format!("vault-go-oracle{}", std::env::consts::EXE_SUFFIX)); let st = Command::new("go") .args(["build", "-o"]) .arg(&out)