From f15a326246cbb9a471a28823676a2e3c281f1b14 Mon Sep 17 00:00:00 2001 From: DuProcess <273172371+DuProcess@users.noreply.github.com> Date: Thu, 16 Jul 2026 20:10:38 -0400 Subject: [PATCH] Prefer native Windows prebuilt architecture --- install.ps1 | 5 +++-- tests/release_scripts.rs | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/install.ps1 b/install.ps1 index 5824ad7..19f13cc 100644 --- a/install.ps1 +++ b/install.ps1 @@ -25,10 +25,11 @@ function Require-Command($Name) { } function Normalize-Arch { - switch ($env:PROCESSOR_ARCHITECTURE) { + $arch = if ($env:PROCESSOR_ARCHITEW6432) { $env:PROCESSOR_ARCHITEW6432 } else { $env:PROCESSOR_ARCHITECTURE } + switch ($arch) { "AMD64" { "x86_64"; break } "ARM64" { "aarch64"; break } - default { $env:PROCESSOR_ARCHITECTURE.ToLowerInvariant() } + default { if ($arch) { $arch.ToLowerInvariant() } else { "unknown" } } } } diff --git a/tests/release_scripts.rs b/tests/release_scripts.rs index 8a24171..1988a3e 100644 --- a/tests/release_scripts.rs +++ b/tests/release_scripts.rs @@ -159,6 +159,15 @@ fn windows_installer_adds_user_path_idempotently() { assert!(ps1.contains("Add-UserPath $bindir")); } +#[test] +fn windows_installer_prefers_native_wow64_arch_for_prebuilts() { + let ps1 = include_str!("../install.ps1"); + assert!(ps1.contains("PROCESSOR_ARCHITEW6432")); + assert!(ps1.contains("$arch = if ($env:PROCESSOR_ARCHITEW6432)")); + assert!(ps1.contains("\"ARM64\" { \"aarch64\"; break }")); + assert!(ps1.contains("\"dosh-windows-$(Normalize-Arch).zip\"")); +} + #[test] fn unix_installer_rejects_unsafe_source_update_cache_paths() { let install = include_str!("../install.sh");