[rust] Fix local architecture discovery in Selenium Manager #11611
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes a bug reported in #11517, related to the architecture discovery (e.g.,
arm64
,x86_64
) in Selenium Manager.Motivation and Context
So far, the Selenium Manager logic relied on a Rust standard constant called
std::env::consts::ARCH
for the architecture discovery. According to its doc, this constant is "A string describing the architecture of the CPU that is currently in use". Nevertheless, when compiled for ax86_64
, like in CI (for instance, for macOS, usingcargo build --release --target x86_64-apple-darwin
), that constant is alwaysx86_64
(even when executed in a macOS M1). The solution I found to fix this issue is to rely on the commanduname
(in UNIX/Linux) and the environment variable (PROCESSOR_ARCHITECTURE
) in Windows for the automatic discovery of the underlying architecture.Types of changes
Checklist