From fdcd14f72da38cc428ca1b376a41d439d6a93a5c Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Mon, 30 Mar 2026 16:58:34 +0200 Subject: [PATCH] Wrap env::set_var/remove_var in unsafe blocks in WASI tests These functions are deprecated as safe in recent Rust versions because they are not thread-safe. Wrapping them in unsafe blocks with safety comments documents that the tests run single-threaded. --- src/platform/wasi.rs | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/platform/wasi.rs b/src/platform/wasi.rs index 8e266de..63989aa 100644 --- a/src/platform/wasi.rs +++ b/src/platform/wasi.rs @@ -115,19 +115,28 @@ fn test_wasi() { fn test_wasi_nodename_env() { let orig = std::env::var("HOSTNAME").ok(); - std::env::set_var("HOSTNAME", "my-wasi-host"); + // SAFETY: This test runs single-threaded (--test-threads 1) so env mutation is safe. + unsafe { + std::env::set_var("HOSTNAME", "my-wasi-host"); + } let info = PlatformInfo::new().unwrap(); assert_eq!(info.nodename().to_string_lossy(), "my-wasi-host"); - std::env::remove_var("HOSTNAME"); - std::env::remove_var("COMPUTERNAME"); + // SAFETY: This test runs single-threaded (--test-threads 1) so env mutation is safe. + unsafe { + std::env::remove_var("HOSTNAME"); + std::env::remove_var("COMPUTERNAME"); + } let info = PlatformInfo::new().unwrap(); assert_eq!(info.nodename().to_string_lossy(), "localhost"); // Restore - match orig { - Some(v) => std::env::set_var("HOSTNAME", v), - None => std::env::remove_var("HOSTNAME"), + // SAFETY: This test runs single-threaded (--test-threads 1) so env mutation is safe. + unsafe { + match orig { + Some(v) => std::env::set_var("HOSTNAME", v), + None => std::env::remove_var("HOSTNAME"), + } } }