Skip to content

[rust] Replace WMIC commands (deprecated) by WinAPI in Windows #15363

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 12 commits into from
May 8, 2025

Conversation

bonigarcia
Copy link
Member

@bonigarcia bonigarcia commented Mar 3, 2025

User description

Motivation and Context

Selenium Manager executes different commands in the shell to discover the browser version. For instance, for Chrome in Linux:

/usr/bin/google-chrome --version

This kind of command is unavailable in Windows; therefore, Selenium Manager uses WMIC  (Windows Management Instrumentation Command-line) to discover browser versions in Windows (wmic datafile where name=...). For instance:

> selenium-manager.exe --browser chrome --debug
[2025-03-03T14:03:19.673Z DEBUG] chromedriver not found in PATH
[2025-03-03T14:03:19.675Z DEBUG] chrome detected at C:\Program Files\Google\Chrome\Application\chrome.exe
[2025-03-03T14:03:19.676Z DEBUG] Running command: wmic datafile where name='C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe' get Version /value
[2025-03-03T14:03:19.807Z DEBUG] Output: "\r\r\n\r\r\nVersion=133.0.6943.142\r\r\n\r\r\n\r\r\n\r"
[2025-03-03T14:03:19.813Z DEBUG] Detected browser: chrome 133.0.6943.142
[2025-03-03T14:03:19.822Z DEBUG] Discovering versions from https://googlechromelabs.github.io/chrome-for-testing/known-good-versions-with-downloads.json
[2025-03-03T14:03:20.181Z DEBUG] Required driver: chromedriver 133.0.6943.141
[2025-03-03T14:03:20.184Z DEBUG] chromedriver 133.0.6943.141 already in the cache
[2025-03-03T14:03:20.185Z INFO ] Driver path: C:\Users\boni\.cache\selenium\chromedriver\win64\133.0.6943.141\chromedriver.exe
[2025-03-03T14:03:20.185Z INFO ] Browser path: C:\Program Files\Google\Chrome\Application\chrome.exe

WMIC has been deprecated as of Windows 10, version 21H1, and Windows Server 2022 (see info). Microsoft has announced that it will be removed in a future version of Windows, though no specific timeline has been provided for its complete removal. Microsoft recommends transitioning to alternative tools and methods, such as PowerShell, which offers more robust and modern management capabilities.

WMIC continues working in Windows 11 currently. However, we need to stop using it in Selenium Manager. This PR implements this change, as follows:

> selenium-manager.exe --browser chrome --debug
[2025-03-03T14:13:27.749Z DEBUG] chromedriver not found in PATH
[2025-03-03T14:13:27.750Z DEBUG] chrome detected at C:\Program Files\Google\Chrome\Application\chrome.exe
[2025-03-03T14:13:27.751Z DEBUG] Running command: (Get-Item "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe").VersionInfo.ProductVersion
[2025-03-03T14:13:28.434Z DEBUG] Output: "133.0.6943.142"
[2025-03-03T14:13:28.441Z DEBUG] Detected browser: chrome 133.0.6943.142
[2025-03-03T14:13:28.443Z DEBUG] Required driver: chromedriver 133.0.6943.141
[2025-03-03T14:13:28.444Z DEBUG] chromedriver 133.0.6943.141 already in the cache
[2025-03-03T14:13:28.444Z INFO ] Driver path: C:\Users\boni\.cache\selenium\chromedriver\win64\133.0.6943.141\chromedriver.exe
[2025-03-03T14:13:28.444Z INFO ] Browser path: C:\Program Files\Google\Chrome\Application\chrome.exe

I believe using PowerShell in Windows (instead of the regular cmd.exe) is pretty safe since PowerShell is pre-installed starting with Windows 7. However, I detected a problem with this approach: performance. Running PowerShell commands through Selenium Manager is slower than WMIC commands. For example, in the first snippet of this PR, Selenium Manager used 131ms to run the WMIC command (19.807-19.676=0.131s). For PowerShell, the command took 683ms (28.434-27.751=0.683s). I repeated this, and indeed, it seems that a PowerShell command took around ~700ms, while WMIC required ~100ms:

PowerShell:
28.434-27.751=0.683
15.239-14.563=0.676
38.777-38.106=0.671
13.743-13.064=0.679
11.833-11.080=0.753
20.733-20.051=0.682
53.445-52.742=0.703

WMIC:
19.807-19.676=0.131
53.781-53.652=0.129
25.457-25.345=0.112
28.647-28.536=0.111

This means that for any new Selenium session, SM would have an overhead of around 700ms. I suppose this figure can be superior in other Windows systems. In my opinion, this time is quite relevant, and we would need to improve it.

Luckily, I implemented a mechanism to cache the resolution (i.e., the discovered browser version using shell commands) using the old TTL for browsers. After discussing it, we decided to remove that feature, and since then, commands are always executed to discover browser versions. But with this new scenario (we need to move to PowerShell in Windows at some point), I propose to recover that feature and use TTL for commands. The value we used for this value was 3600s.

@diemol @titusfortner What do you think?

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • I have read the contributing document.
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have added tests to cover my changes.
  • All new and existing tests passed.

PR Type

Enhancement


Description

  • Replaced deprecated WMIC commands with PowerShell commands in Windows.

  • Updated command definitions for OS architecture and MSI installation.

  • Modified shell execution to use PowerShell for Windows.

  • Adjusted related logic and constants to align with PowerShell usage.


Changes walkthrough 📝

Relevant files
Enhancement
config.rs
Switch OS architecture detection to PowerShell                     

rust/src/config.rs

  • Replaced WMIC commands with PowerShell commands for OS architecture
    detection.
  • Updated variable names and logic to reflect PowerShell usage.
  • +5/-5     
    files.rs
    Use PowerShell for MSI installation commands                         

    rust/src/files.rs

  • Replaced MSI installation command with PowerShell equivalent.
  • Updated logging and command execution logic for MSI installation.
  • +2/-2     
    lib.rs
    Replace WMIC commands with PowerShell in constants and logic

    rust/src/lib.rs

  • Replaced WMIC commands with PowerShell equivalents for version
    detection.
  • Added new constants for PowerShell commands.
  • Removed deprecated WMIC command constants.
  • +6/-6     
    shell.rs
    Use PowerShell as default shell for Windows                           

    rust/src/shell.rs

  • Updated shell execution logic to use PowerShell for Windows.
  • Adjusted shell and flag parameters for Windows compatibility.
  • +1/-1     

    Need help?
  • Type /help how to ... in the comments thread for any questions about Qodo Merge usage.
  • Check out the documentation for more information.
  • @bonigarcia bonigarcia added the C-rust Rust code is mostly Selenium Manager label Mar 3, 2025
    @bonigarcia bonigarcia moved this to In Progress in Selenium Manager Mar 3, 2025
    Copy link
    Contributor

    qodo-merge-pro bot commented Mar 3, 2025

    PR Reviewer Guide 🔍

    Here are some key observations to aid the review process:

    ⏱️ Estimated effort to review: 3 🔵🔵🔵⚪⚪
    🧪 No relevant tests
    🔒 Security concerns

    Command Injection:
    The PowerShell commands in PS_GET_VERSION_COMMAND and PS_MSIEXEC_INSTALL_COMMAND use string formatting with user-provided paths. While the paths are escaped, additional validation and sanitization should be considered to prevent potential command injection attacks.

    ⚡ Recommended focus areas for review

    Error Handling

    The PowerShell MSI installation command uses Start-Process but doesn't check for installation errors or validate the exit code. Failed installations may go undetected.

    let command = Command::new_single(format_one_arg(PS_MSIEXEC_INSTALL_COMMAND, msi_file));
    log.trace(format!("Running command: {}", command.display()));
    run_shell_command_by_os(os, command)?;
    Parsing Issue

    The PowerShell OS architecture detection relies on string contains checks which may be fragile. Consider using more robust parsing of the OSArchitecture property.

    if ps_output.contains("32") {
        ARCH_X86.to_string()
    } else if ps_output.contains("ARM") {
        ARCH_ARM64.to_string()
    } else {
        ARCH_AMD64.to_string()

    Copy link
    Contributor

    qodo-merge-pro bot commented Mar 3, 2025

    PR Code Suggestions ✨

    Explore these optional code suggestions:

    CategorySuggestion                                                                                                                                    Impact
    Possible issue
    Add robust error handling
    Suggestion Impact:The commit addresses error handling by using env var first and falling back to PowerShell command, though implemented differently than suggested

    code diff:

    +            let mut cpu_arch = env::var(ENV_CPU_ARCHITECTURE).unwrap_or_default();
    +            if cpu_arch.is_empty() {
    +                let get_os_command = Command::new_single(PS_GET_OS_COMMAND.to_string());
    +                cpu_arch = run_powershell_command(get_os_command).unwrap_or_default();
    +            }

    Add error handling for the PowerShell command execution to handle cases where
    the command fails or returns unexpected output format.

    rust/src/config.rs [72-80]

     let get_os_command = Command::new_single(PS_GET_OS_COMMAND.to_string());
    -let ps_output = run_shell_command_by_os(self_os, get_os_command).unwrap_or_default();
    +let ps_output = run_shell_command_by_os(self_os, get_os_command)
    +    .map_err(|e| anyhow!("Failed to detect OS architecture: {}", e))?;
    +if ps_output.trim().is_empty() {
    +    return Err(anyhow!("Empty response from OS architecture detection"));
    +}
     if ps_output.contains("32") {
         ARCH_X86.to_string()
     } else if ps_output.contains("ARM") {
         ARCH_ARM64.to_string()
     } else {
         ARCH_AMD64.to_string()
     }

    [Suggestion has been applied]

    Suggestion importance[1-10]: 8

    __

    Why: The suggestion adds critical error handling for OS architecture detection, replacing unwrap_or_default() with proper error propagation and empty output validation, which could prevent silent failures and improve system reliability.

    Medium
    Validate MSI installation result

    Add error checking for the MSI installation process by validating the exit code
    from Start-Process

    rust/src/files.rs [312-314]

     let command = Command::new_single(format_one_arg(PS_MSIEXEC_INSTALL_COMMAND, msi_file));
     log.trace(format!("Running command: {}", command.display()));
    -run_shell_command_by_os(os, command)?;
    +let output = run_shell_command_by_os(os, command)?;
    +if output.contains("error") || output.contains("failed") {
    +    return Err(anyhow!("MSI installation failed: {}", output));
    +}
    • Apply this suggestion
    Suggestion importance[1-10]: 7

    __

    Why: The suggestion adds important error validation for MSI installation by checking the command output for error indicators, which helps prevent silent failures in the installation process.

    Medium
    • Update

    Copy link
    Contributor

    qodo-merge-pro bot commented Mar 3, 2025

    CI Feedback 🧐

    (Feedback updated until commit 6243961)

    A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

    Action: Test / All RBE tests

    Failed stage: Run Bazel [❌]

    Failure summary:

    The action failed because of Rust compilation errors in the Selenium Manager code. The errors occur
    when trying to compile Windows-specific code on a Linux environment. Specifically:

    1. Failed to find Windows-specific modules in the winapi crate:
    - winapi::um::sysinfoapi (line
    33)
    - winapi::um::winnt (line 34)
    - winapi::shared::minwindef (line 42)
    -
    winapi::um::winver (line 43)

    2. Missing Windows-specific OS extensions:
    - std::os::windows::ffi::OsStrExt (line 37)
    - No
    encode_wide method for &OsStr (lines 605, 625, 651)

    The code is trying to use Windows-specific APIs while building on a Linux platform without proper
    conditional compilation.

    Relevant error logs:
    1:  ##[group]Operating System
    2:  Ubuntu
    ...
    
    925:  Package 'php-sql-formatter' is not installed, so not removed
    926:  Package 'php8.3-ssh2' is not installed, so not removed
    927:  Package 'php-ssh2-all-dev' is not installed, so not removed
    928:  Package 'php8.3-stomp' is not installed, so not removed
    929:  Package 'php-stomp-all-dev' is not installed, so not removed
    930:  Package 'php-swiftmailer' is not installed, so not removed
    931:  Package 'php-symfony' is not installed, so not removed
    932:  Package 'php-symfony-asset' is not installed, so not removed
    933:  Package 'php-symfony-asset-mapper' is not installed, so not removed
    934:  Package 'php-symfony-browser-kit' is not installed, so not removed
    935:  Package 'php-symfony-clock' is not installed, so not removed
    936:  Package 'php-symfony-debug-bundle' is not installed, so not removed
    937:  Package 'php-symfony-doctrine-bridge' is not installed, so not removed
    938:  Package 'php-symfony-dom-crawler' is not installed, so not removed
    939:  Package 'php-symfony-dotenv' is not installed, so not removed
    940:  Package 'php-symfony-error-handler' is not installed, so not removed
    941:  Package 'php-symfony-event-dispatcher' is not installed, so not removed
    ...
    
    1119:  Package 'php-twig-html-extra' is not installed, so not removed
    1120:  Package 'php-twig-i18n-extension' is not installed, so not removed
    1121:  Package 'php-twig-inky-extra' is not installed, so not removed
    1122:  Package 'php-twig-intl-extra' is not installed, so not removed
    1123:  Package 'php-twig-markdown-extra' is not installed, so not removed
    1124:  Package 'php-twig-string-extra' is not installed, so not removed
    1125:  Package 'php8.3-uopz' is not installed, so not removed
    1126:  Package 'php-uopz-all-dev' is not installed, so not removed
    1127:  Package 'php8.3-uploadprogress' is not installed, so not removed
    1128:  Package 'php-uploadprogress-all-dev' is not installed, so not removed
    1129:  Package 'php8.3-uuid' is not installed, so not removed
    1130:  Package 'php-uuid-all-dev' is not installed, so not removed
    1131:  Package 'php-validate' is not installed, so not removed
    1132:  Package 'php-vlucas-phpdotenv' is not installed, so not removed
    1133:  Package 'php-voku-portable-ascii' is not installed, so not removed
    1134:  Package 'php-wmerrors' is not installed, so not removed
    1135:  Package 'php-xdebug-all-dev' is not installed, so not removed
    ...
    
    1790:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/webdriver/BUILD.bazel:66:19: runfiles symlink javascript/webdriver/test/atoms/element_test.html -> javascript/webdriver/test/atoms/element_test.html obscured by javascript/webdriver/test -> bazel-out/k8-fastbuild/bin/javascript/webdriver/test
    1791:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/webdriver/BUILD.bazel:66:19: runfiles symlink javascript/webdriver/test/atoms/frame_page.html -> javascript/webdriver/test/atoms/frame_page.html obscured by javascript/webdriver/test -> bazel-out/k8-fastbuild/bin/javascript/webdriver/test
    1792:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/action_test.html -> javascript/atoms/test/action_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1793:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/attribute_test.html -> javascript/atoms/test/attribute_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1794:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/child_locator_test.html -> javascript/atoms/test/child_locator_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1795:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/click_link_test.html -> javascript/atoms/test/click_link_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1796:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/click_submit_test.html -> javascript/atoms/test/click_submit_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1797:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/click_test.html -> javascript/atoms/test/click_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1798:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/clientrect_test.html -> javascript/atoms/test/clientrect_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1799:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/color_test.html -> javascript/atoms/test/color_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1800:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/deps.js -> javascript/atoms/test/deps.js obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1801:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/dom_test.html -> javascript/atoms/test/dom_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1802:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/drag_test.html -> javascript/atoms/test/drag_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1803:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/enabled_test.html -> javascript/atoms/test/enabled_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1804:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/enter_submit_test.html -> javascript/atoms/test/enter_submit_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1805:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/error_test.html -> javascript/atoms/test/error_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    1806:  (19:17:47) �[35mWARNING: �[0m/home/runner/work/selenium/selenium/javascript/atoms/BUILD.bazel:397:19: runfiles symlink javascript/atoms/test/events_test.html -> javascript/atoms/test/events_test.html obscured by javascript/atoms/test -> bazel-out/k8-fastbuild/bin/javascript/atoms/test
    ...
    
    2053:  external/protobuf+/src/google/protobuf/compiler/java/full/message.cc:807:23: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<const google::protobuf::FieldDescriptor*>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
    2054:  807 |     for (int i = 0; i < map_fields.size(); ++i) {
    2055:  |                     ~~^~~~~~~~~~~~~~~~~~~
    2056:  (19:17:55) �[32mINFO: �[0mFrom PackageZip javascript/grid-ui/react-zip.jar:
    2057:  /mnt/engflow/worker/work/1/exec/bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/rules_pkg+/pkg/private/zip/build_zip.runfiles/rules_python++python+python_3_9_x86_64-unknown-linux-gnu/lib/python3.9/zipfile.py:1522: UserWarning: Duplicate name: 'grid-ui/'
    2058:  return self._open_to_write(zinfo, force_zip64=force_zip64)
    2059:  (19:17:55) �[32mINFO: �[0mFrom Building external/contrib_rules_jvm+/java/src/com/github/bazel_contrib/contrib_rules_jvm/junit5/libjunit5-compile-class.jar (19 source files):
    2060:  warning: [options] source value 8 is obsolete and will be removed in a future release
    2061:  warning: [options] target value 8 is obsolete and will be removed in a future release
    2062:  warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
    2063:  (19:17:56) �[32mINFO: �[0mFrom Building external/protobuf+/java/core/libcore.jar (43 source files, 1 source jar) [for tool]:
    2064:  external/protobuf+/java/core/src/main/java/com/google/protobuf/RepeatedFieldBuilderV3.java:28: warning: [dep-ann] deprecated item is not annotated with @Deprecated
    2065:  public class RepeatedFieldBuilderV3<
    2066:  ^
    2067:  (19:17:58) �[32mINFO: �[0mFrom Building java/src/org/openqa/selenium/remote/libapi-class.jar (69 source files):
    2068:  java/src/org/openqa/selenium/remote/ErrorHandler.java:46: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2069:  private final ErrorCodes errorCodes;
    2070:  ^
    2071:  java/src/org/openqa/selenium/remote/ErrorHandler.java:60: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2072:  this.errorCodes = new ErrorCodes();
    2073:  ^
    2074:  java/src/org/openqa/selenium/remote/ErrorHandler.java:68: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2075:  public ErrorHandler(ErrorCodes codes, boolean includeServerErrors) {
    2076:  ^
    2077:  java/src/org/openqa/selenium/remote/Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2078:  ErrorCodes errorCodes = new ErrorCodes();
    2079:  ^
    2080:  java/src/org/openqa/selenium/remote/Response.java:97: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2081:  ErrorCodes errorCodes = new ErrorCodes();
    2082:  ^
    2083:  java/src/org/openqa/selenium/remote/ProtocolHandshake.java:181: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2084:  response.setStatus(ErrorCodes.SUCCESS);
    2085:  ^
    2086:  java/src/org/openqa/selenium/remote/ProtocolHandshake.java:182: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2087:  response.setState(ErrorCodes.SUCCESS_STRING);
    2088:  ^
    2089:  java/src/org/openqa/selenium/remote/W3CHandshakeResponse.java:53: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2090:  new ErrorCodes().toStatus((String) rawError, Optional.of(tuple.getStatusCode())));
    2091:  ^
    2092:  java/src/org/openqa/selenium/remote/W3CHandshakeResponse.java:56: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2093:  new ErrorCodes().getExceptionType((String) rawError);
    2094:  ^
    2095:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:44: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2096:  private final ErrorCodes errorCodes = new ErrorCodes();
    2097:  ^
    2098:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:44: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2099:  private final ErrorCodes errorCodes = new ErrorCodes();
    2100:  ^
    2101:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:55: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2102:  int status = response.getStatus() == ErrorCodes.SUCCESS ? HTTP_OK : HTTP_INTERNAL_ERROR;
    2103:  ^
    2104:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:101: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2105:  response.setStatus(ErrorCodes.UNKNOWN_COMMAND);
    2106:  ^
    2107:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:103: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2108:  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
    2109:  ^
    2110:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:117: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2111:  response.setStatus(ErrorCodes.SUCCESS);
    2112:  ^
    2113:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:118: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2114:  response.setState(errorCodes.toState(ErrorCodes.SUCCESS));
    2115:  ^
    2116:  java/src/org/openqa/selenium/remote/codec/AbstractHttpResponseCodec.java:124: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2117:  response.setState(errorCodes.toState(ErrorCodes.SUCCESS));
    2118:  ^
    2119:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:70: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2120:  private final ErrorCodes errorCodes = new ErrorCodes();
    2121:  ^
    2122:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:70: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2123:  private final ErrorCodes errorCodes = new ErrorCodes();
    2124:  ^
    2125:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:93: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2126:  response.setStatus(ErrorCodes.UNKNOWN_COMMAND);
    2127:  ^
    2128:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:98: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2129:  response.setStatus(ErrorCodes.UNHANDLED_ERROR);
    2130:  ^
    2131:  java/src/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodec.java:145: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2132:  response.setStatus(ErrorCodes.SUCCESS);
    2133:  ^
    ...
    
    2145:  �[32m[9,968 / 11,817]�[0m 146 / 1915 tests;�[0m [Prepa] Testing //rb/spec/integration/selenium/webdriver:select-firefox; 4s ... (50 actions, 0 running)
    2146:  (19:18:29) �[32mAnalyzing:�[0m 2307 targets (1653 packages loaded, 60864 targets configured)
    2147:  �[32m[10,066 / 12,122]�[0m 168 / 2017 tests;�[0m [Prepa] Testing //rb/spec/integration/selenium/webdriver:shadow_root-firefox-beta-bidi; 5s ... (49 actions, 0 running)
    2148:  (19:18:34) �[32mAnalyzing:�[0m 2307 targets (1653 packages loaded, 60876 targets configured)
    2149:  �[32m[10,086 / 12,166]�[0m 170 / 2017 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:timeout-firefox-bidi; 9s remote, remote-cache ... (50 actions, 1 running)
    2150:  (19:18:39) �[32mAnalyzing:�[0m 2307 targets (1654 packages loaded, 61020 targets configured)
    2151:  �[32m[10,440 / 12,327]�[0m 251 / 2017 tests;�[0m [Prepa] Testing //rb/spec/integration/selenium/webdriver:window-firefox ... (50 actions, 0 running)
    2152:  (19:18:49) �[32mAnalyzing:�[0m 2307 targets (1654 packages loaded, 62042 targets configured)
    2153:  �[32m[10,477 / 12,342]�[0m 263 / 2017 tests;�[0m Testing //rust/tests:integration_offline_tests-fmt; 9s remote, remote-cache ... (50 actions, 0 running)
    2154:  (19:18:54) �[32mAnalyzing:�[0m 2307 targets (1654 packages loaded, 64235 targets configured)
    2155:  �[32m[10,856 / 12,668]�[0m 308 / 2140 tests;�[0m Testing //rust/tests:integration_offline_tests-fmt; 3s remote, remote-cache ... (48 actions, 12 running)
    2156:  (19:18:59) �[32mAnalyzing:�[0m 2307 targets (1654 packages loaded, 64345 targets configured)
    2157:  �[32m[11,114 / 12,913]�[0m 404 / 2252 tests;�[0m Testing //rust/tests:integration_offline_tests-fmt; 8s remote, remote-cache ... (49 actions, 8 running)
    2158:  (19:19:02) �[32mINFO: �[0mAnalyzed 2307 targets (1654 packages loaded, 64400 targets configured).
    2159:  (19:19:02) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/remote/libsmall-tests-test-lib.jar (5 source files) and running annotation processors (AutoServiceProcessor):
    2160:  java/test/org/openqa/selenium/remote/WebDriverFixture.java:170: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2161:  response.setStatus(new ErrorCodes().toStatus(state, Optional.of(400)));
    2162:  ^
    2163:  (19:19:04) �[32m[11,666 / 13,356]�[0m 502 / 2307 tests;�[0m Compiling Rust bin _bs_ (405 files) [for tool]; 9s remote, remote-cache ... (43 actions, 8 running)
    2164:  (19:19:05) �[32mINFO: �[0mFrom Running Cargo build script bzip2-sys:
    2165:  Build Script Warning: bzip2-1.0.8/compress.c: In function ‘sendMTFValues’:
    2166:  Build Script Warning: bzip2-1.0.8/compress.c:243:19: warning: variable ‘nBytes’ set but not used [-Wunused-but-set-variable]
    2167:  Build Script Warning:   243 |    Int32 nGroups, nBytes;
    2168:  Build Script Warning:       |                   ^~~~~~
    2169:  (19:19:08) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.jar (1 source file):
    2170:  java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java:26: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2171:  import static org.openqa.selenium.remote.ErrorCodes.METHOD_NOT_ALLOWED;
    2172:  ^
    2173:  java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java:55: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2174:  assertThat(decoded.getStatus()).isEqualTo(ErrorCodes.SUCCESS);
    2175:  ^
    2176:  java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java:81: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2177:  assertThat(decoded.getStatus()).isEqualTo(ErrorCodes.UNHANDLED_ERROR);
    2178:  ^
    2179:  java/test/org/openqa/selenium/remote/codec/w3c/W3CHttpResponseCodecTest.java:107: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2180:  assertThat(decoded.getStatus()).isEqualTo(ErrorCodes.UNHANDLED_ERROR);
    2181:  ^
    2182:  (19:19:09) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/json/JsonTest.jar (1 source file):
    2183:  java/test/org/openqa/selenium/json/JsonTest.java:430: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2184:  assertThat(response.getState()).isEqualTo(new ErrorCodes().toState(0));
    2185:  ^
    2186:  java/test/org/openqa/selenium/json/JsonTest.java:441: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2187:  assertThat(response.getState()).isEqualTo(new ErrorCodes().toState(0));
    2188:  ^
    2189:  java/test/org/openqa/selenium/json/JsonTest.java:454: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2190:  assertThat(response.getState()).isEqualTo(new ErrorCodes().toState(32));
    2191:  ^
    2192:  (19:19:09) �[32m[12,596 / 14,092]�[0m 646 / 2307 tests;�[0m Running Cargo build script winapi; 1s remote, remote-cache ... (43 actions, 2 running)
    2193:  (19:19:11) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/remote/RemotableByTest.jar (1 source file) and running annotation processors (AutoServiceProcessor):
    2194:  java/test/org/openqa/selenium/remote/RemotableByTest.java:23: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2195:  import static org.openqa.selenium.remote.ErrorCodes.SUCCESS_STRING;
    2196:  ^
    2197:  java/test/org/openqa/selenium/remote/RemotableByTest.java:23: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2198:  import static org.openqa.selenium.remote.ErrorCodes.SUCCESS_STRING;
    2199:  ^
    2200:  java/test/org/openqa/selenium/remote/RemotableByTest.java:23: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2201:  import static org.openqa.selenium.remote.ErrorCodes.SUCCESS_STRING;
    2202:  ^
    2203:  java/test/org/openqa/selenium/remote/RemotableByTest.java:45: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2204:  private final ErrorCodes errorCodes = new ErrorCodes();
    2205:  ^
    2206:  java/test/org/openqa/selenium/remote/RemotableByTest.java:45: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2207:  private final ErrorCodes errorCodes = new ErrorCodes();
    2208:  ^
    2209:  java/test/org/openqa/selenium/remote/RemotableByTest.java:45: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2210:  private final ErrorCodes errorCodes = new ErrorCodes();
    2211:  ^
    2212:  java/test/org/openqa/selenium/remote/RemotableByTest.java:45: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2213:  private final ErrorCodes errorCodes = new ErrorCodes();
    2214:  ^
    2215:  (19:19:11) �[32mINFO: �[0mFrom Building java/test/org/openqa/selenium/remote/ErrorHandlerTest.jar (1 source file) and running annotation processors (AutoServiceProcessor):
    2216:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:79: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2217:  handler.throwIfResponseFailed(createResponse(ErrorCodes.SUCCESS), 100);
    2218:  ^
    2219:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:85: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2220:  assertThrowsCorrectExceptionType(ErrorCodes.NO_SUCH_WINDOW, NoSuchWindowException.class);
    2221:  ^
    2222:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:86: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2223:  assertThrowsCorrectExceptionType(ErrorCodes.NO_SUCH_FRAME, NoSuchFrameException.class);
    2224:  ^
    2225:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:87: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2226:  assertThrowsCorrectExceptionType(ErrorCodes.NO_SUCH_ELEMENT, NoSuchElementException.class);
    2227:  ^
    2228:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:88: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2229:  assertThrowsCorrectExceptionType(ErrorCodes.UNKNOWN_COMMAND, UnsupportedCommandException.class);
    2230:  ^
    2231:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:90: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2232:  ErrorCodes.METHOD_NOT_ALLOWED, UnsupportedCommandException.class);
    2233:  ^
    2234:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:92: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2235:  ErrorCodes.STALE_ELEMENT_REFERENCE, StaleElementReferenceException.class);
    2236:  ^
    2237:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:94: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2238:  ErrorCodes.INVALID_ELEMENT_STATE, InvalidElementStateException.class);
    2239:  ^
    2240:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:95: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2241:  assertThrowsCorrectExceptionType(ErrorCodes.XPATH_LOOKUP_ERROR, InvalidSelectorException.class);
    2242:  ^
    2243:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:107: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2244:  Response response = createResponse(ErrorCodes.UNHANDLED_ERROR);
    2245:  ^
    2246:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:120: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2247:  createResponse(ErrorCodes.UNHANDLED_ERROR, "boom"), 123))
    2248:  ^
    2249:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:133: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2250:  createResponse(ErrorCodes.UNHANDLED_ERROR, ImmutableMap.of("message", "boom")),
    2251:  ^
    2252:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:147: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2253:  ErrorCodes.UNHANDLED_ERROR,
    2254:  ^
    2255:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:167: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2256:  ErrorCodes.UNHANDLED_ERROR,
    2257:  ^
    2258:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:193: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2259:  createResponse(ErrorCodes.UNHANDLED_ERROR, toMap(serverError)), 123))
    2260:  ^
    2261:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:214: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2262:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2263:  ^
    2264:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:248: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2265:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2266:  ^
    2267:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:280: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2268:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2269:  ^
    2270:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:308: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2271:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2272:  ^
    2273:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:327: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2274:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2275:  ^
    2276:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:355: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2277:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2278:  ^
    2279:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:394: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2280:  createResponse(ErrorCodes.UNHANDLED_ERROR, data), 123))
    2281:  ^
    2282:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:426: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2283:  createResponse(ErrorCodes.UNHANDLED_ERROR, toMap(serverError)), 123))
    2284:  ^
    2285:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:435: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2286:  exceptions.put(ErrorCodes.NO_SUCH_SESSION, NoSuchSessionException.class);
    2287:  ^
    2288:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:436: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2289:  exceptions.put(ErrorCodes.NO_SUCH_ELEMENT, NoSuchElementException.class);
    2290:  ^
    2291:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:437: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2292:  exceptions.put(ErrorCodes.NO_SUCH_FRAME, NoSuchFrameException.class);
    2293:  ^
    2294:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:438: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2295:  exceptions.put(ErrorCodes.UNKNOWN_COMMAND, UnsupportedCommandException.class);
    2296:  ^
    2297:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:439: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2298:  exceptions.put(ErrorCodes.STALE_ELEMENT_REFERENCE, StaleElementReferenceException.class);
    2299:  ^
    2300:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:440: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2301:  exceptions.put(ErrorCodes.INVALID_ELEMENT_STATE, InvalidElementStateException.class);
    2302:  ^
    2303:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:441: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2304:  exceptions.put(ErrorCodes.UNHANDLED_ERROR, WebDriverException.class);
    2305:  ^
    2306:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:442: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2307:  exceptions.put(ErrorCodes.JAVASCRIPT_ERROR, JavascriptException.class);
    2308:  ^
    2309:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:443: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2310:  exceptions.put(ErrorCodes.XPATH_LOOKUP_ERROR, InvalidSelectorException.class);
    2311:  ^
    2312:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:444: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2313:  exceptions.put(ErrorCodes.TIMEOUT, TimeoutException.class);
    2314:  ^
    2315:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:445: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2316:  exceptions.put(ErrorCodes.NO_SUCH_WINDOW, NoSuchWindowException.class);
    2317:  ^
    2318:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:446: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2319:  exceptions.put(ErrorCodes.INVALID_COOKIE_DOMAIN, InvalidCookieDomainException.class);
    2320:  ^
    2321:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:447: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2322:  exceptions.put(ErrorCodes.UNABLE_TO_SET_COOKIE, UnableToSetCookieException.class);
    2323:  ^
    2324:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:448: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2325:  exceptions.put(ErrorCodes.UNEXPECTED_ALERT_PRESENT, UnhandledAlertException.class);
    2326:  ^
    2327:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:449: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2328:  exceptions.put(ErrorCodes.NO_ALERT_PRESENT, NoAlertPresentException.class);
    2329:  ^
    2330:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:450: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2331:  exceptions.put(ErrorCodes.ASYNC_SCRIPT_TIMEOUT, ScriptTimeoutException.class);
    2332:  ^
    2333:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:451: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2334:  exceptions.put(ErrorCodes.INVALID_SELECTOR_ERROR, InvalidSelectorException.class);
    2335:  ^
    2336:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:452: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2337:  exceptions.put(ErrorCodes.SESSION_NOT_CREATED, SessionNotCreatedException.class);
    2338:  ^
    2339:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:453: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2340:  exceptions.put(ErrorCodes.MOVE_TARGET_OUT_OF_BOUNDS, MoveTargetOutOfBoundsException.class);
    2341:  ^
    2342:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:454: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2343:  exceptions.put(ErrorCodes.INVALID_XPATH_SELECTOR, InvalidSelectorException.class);
    2344:  ^
    2345:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:455: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2346:  exceptions.put(ErrorCodes.INVALID_XPATH_SELECTOR_RETURN_TYPER, InvalidSelectorException.class);
    2347:  ^
    2348:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:469: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2349:  ? ErrorCodes.INVALID_SELECTOR_ERROR
    2350:  ^
    2351:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:471: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2352:  assertThat(new ErrorCodes().toStatusCode(e)).isEqualTo(expected);
    2353:  ^
    2354:  java/test/org/openqa/selenium/remote/ErrorHandlerTest.java:483: warning: [removal] ErrorCodes in org.openqa.selenium.remote has been deprecated and marked for removal
    2355:  response.setState(new ErrorCodes().toState(status));
    2356:  ^
    2357:  (19:19:14) �[32m[12,904 / 14,344]�[0m 731 / 2307 tests;�[0m Testing //java/test/org/openqa/selenium/support/pagefactory:AnnotationsTest-spotbugs; 2s remote, remote-cache ... (44 actions, 0 running)
    2358:  (19:19:19) �[32m[12,989 / 14,427]�[0m 764 / 2307 tests;�[0m Compiling Rust rlib winapi v0.3.9 (405 files); 5s remote, remote-cache ... (48 actions, 0 running)
    2359:  (19:19:24) �[32m[13,309 / 14,582]�[0m 892 / 2307 tests;�[0m Testing //rb/spec/integration/selenium/webdriver:error-edge-remote; 0s remote, remote-cache ... (50 actions, 0 running)
    2360:  (19:19:29) �[32m[13,835 / 14,899]�[0m 1034 / 2307 tests;�[0m Compiling Rust bin unit (18 files); 2s remote, remote-cache ... (49 actions, 2 running)
    2361:  (19:19:34) �[32m[14,460 / 15,404]�[0m 1185 / 2307 tests;�[0m Compiling Rust bin unit (18 files); 7s remote, remote-cache ... (48 actions, 8 running)
    2362:  (19:19:39) �[32mINFO: �[0mFrom Compiling webdriver-netstandard2.0 (internals ref-only dll):
    2363:  dotnet/src/webdriver/BiDi/Modules/Script/RemoteValue.cs(253,31): warning CS8766: Nullability of reference types in return type of 'string? NodeRemoteValue.SharedId.get' doesn't match implicitly implemented member 'string ISharedReference.SharedId.get' (possibly because of nullability attributes).
    2364:  dotnet/src/webdriver/Command.cs(171,2): warning CS3016: Arrays as attribute arguments is not CLS-compliant
    2365:  dotnet/src/webdriver/Response.cs(207,2): warning CS3016: Arrays as attribute arguments is not CLS-compliant
    2366:  (19:19:39) �[32m[14,845 / 15,541]�[0m 1456 / 2307 tests;�[0m Compiling Rust bin unit (18 files); 12s remote, remote-cache ... (50 actions, 2 running)
    2367:  (19:19:39) �[31m�[1mERROR: �[0m/home/runner/work/selenium/selenium/rust/BUILD.bazel:114:10: Compiling Rust bin unit (18 files) failed: (Exit 1): process_wrapper failed: error executing Rustc command (from target //rust:unit) 
    2368:  (cd /home/runner/.bazel/execroot/_main && \
    ...
    
    2373:  CARGO_CRATE_NAME=selenium_manager \
    2374:  CARGO_MANIFEST_DIR='${pwd}/rust' \
    2375:  CARGO_PKG_AUTHORS='' \
    2376:  CARGO_PKG_DESCRIPTION='' \
    2377:  CARGO_PKG_HOMEPAGE='' \
    2378:  CARGO_PKG_NAME=selenium_manager \
    2379:  CARGO_PKG_VERSION=0.0.0 \
    2380:  CARGO_PKG_VERSION_MAJOR=0 \
    2381:  CARGO_PKG_VERSION_MINOR=0 \
    2382:  CARGO_PKG_VERSION_PATCH=0 \
    2383:  CARGO_PKG_VERSION_PRE='' \
    2384:  HOME=/home/dev \
    2385:  JRUBY_OPTS=--dev \
    2386:  PATH=/bin:/usr/bin:/usr/local/bin \
    2387:  REPOSITORY_NAME='' \
    2388:  bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/rules_rust/util/process_wrapper/process_wrapper --arg-file bazel-out/k8-fastbuild/bin/external/crates__anyhow-1.0.97/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__backtrace-0.3.71/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__libc-0.2.168/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__bzip2-sys-0.1.13-1.0.8/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__num-traits-0.2.19/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__serde-1.0.218/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__slab-0.4.9/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__httparse-1.8.0/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__ring-0.17.8/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__rustls-0.23.12/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__thiserror-1.0.69/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__generic-array-0.14.7/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__typenum-1.17.0/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__libz-sys-1.1.20/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__thiserror-2.0.6/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__lzma-sys-0.1.20/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__indexmap-1.9.3/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__rustix-0.38.42/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__zstd-safe-5.0.2-zstd.1.5.2/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__zstd-sys-2.0.10-zstd.1.5.6/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__serde_json-1.0.140/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__getrandom-0.3.1/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__winapi-0.3.9/_bs.linksearchpaths --arg-file bazel-out/k8-fastbuild/bin/external/crates__zip-2.2.3/_bs.linksearchpaths --subst '***' -- bazel-out/k8-fastbuild/bin/external/rust_linux_x86_64__x86_64-unknown-linux-gnu__stable_tools/rust_toolchain/bin/rustc rust/src/lib.rs '--crate-name=selenium_manager' '--crate-type=bin' '--error-format=human' '--out-dir=bazel-out/k8-fastbuild/bin/rust/test-3504094445' '--codegen=opt-level=0' '--codegen=debuginfo=0' '--codegen=strip=none' '--remap-path-prefix=${pwd}=' '--emit=link=bazel-out/k8-fastbuild/bin/rust/test-3504094445/unit' '--emit=dep-info' '--color=always' '--target=x86_64-unknown-linux-gnu' -L bazel-out/k8-fastbuild/bin/external/rust_linux_x86_64__x86_64-unknown-linux-gnu__stable_tools/rust_toolchain/lib/rustlib/x86_64-unknown-linux-gnu/lib --test '--edition=2021' '--codegen=linker=/usr/bin/gcc' '--codegen=link-arg=-fuse-ld=gold' '--codegen=link-arg=-Wl,-no-as-needed' '--codegen=link-arg=-Wl,-z,relro,-z,now' '--codegen=link-arg=-B/usr/bin' '--codegen=link-arg=-pass-exit-codes' '--codegen=link-arg=-lstdc++' '--codegen=link-arg=-lm' '--extern=anyhow=bazel-out/k8-fastbuild/bin/external/crates__anyhow-1.0.97/libanyhow-1218491575.rlib' '--extern=apple_flat_package=bazel-out/k8-fastbuild/bin/external/crates__apple-flat-package-0.20.0/libapple_flat_package-355435568.rlib' '--extern=bzip2=bazel-out/k8-fastbuild/bin/external/crates__bzip2-0.5.2/libbzip2-65324262.rlib' '--extern=clap=bazel-out/k8-fastbuild/bin/external/crates__clap-4.5.31/libclap-2499303715.rlib' '--extern=debpkg=bazel-out/k8-fastbuild/bin/external/crates__debpkg-0.6.0/libdebpkg-314367982.rlib' '--extern=directories=bazel-out/k8-fastbuild/bin/external/crates__directories-6.0.0/libdirectories-1047840434.rlib' '--extern=env_logger=bazel-out/k8-fastbuild/bin/external/crates__env_logger-0.11.6/libenv_logger-937517271.rlib' '--extern=exitcode=bazel-out/k8-fastbuild/bin/external/crates__exitcode-1.1.2/libexitcode-2349273582.rlib' '--extern=flate2=bazel-out/k8-fastbuild/bin/external/crates__flate2-1.1.0/libflate2-481041413.rlib' '--extern=fs2=bazel-out/k8-fastbuild/bin/external/crates__fs2-0.4.3/libfs2-1185833588.rlib' '--extern=fs_extra=bazel-out/k8-fastbuild/bin/external/crates__fs_extra-1.3.0/libfs_extra-918287937.rlib' '--extern=infer=bazel-out/k8-fastbuild/bin/external/crates__infer-0.19.0/libinfer-1901042903.rlib' '--extern=log=bazel-out/k8-fastbuild/bin/external/crates__log-0.4.26/liblog-702623007.rlib' '--extern=regex=bazel-out/k8-fastbuild/bin/external/crates__regex-1.11.1/libregex-860405954.rlib' '--extern=reqwest=bazel-out/k8-fastbuild/bin/external/crates__reqwest-0.12.12/libreqwest-1000395828.rlib' '--extern=serde=bazel-out/k8-fastbuild/bin/external/crates__serde-1.0.218/libserde-2673075336.rlib' '--extern=serde_json=bazel-out/k8-fastbuild/bin/external/crates__serde_json-1.0.140/libserde_json-1262913571.rlib' '--extern=sevenz_rust=bazel-out/k8-fastbuild/bin/external/crates__sevenz-rust-0.6.1/libsevenz_rust-1243070141.rlib' '--extern=tar=bazel-out/k8-fastbuild/bin/external/crates__tar-0.4.43/libtar-416023296.rlib' '--extern=tempfile=bazel-out/k8-fastbuild/bin/external/crates__tempfile-3.17.1/libtempfile-2582713573.rlib' '--extern=tokio=bazel-out/k8-fastbuild/bin/external/crates__tokio-1.43.0/libtokio-1213584657.rlib' '--extern=toml=bazel-out/k8-fastbuild/bin/external/crates__toml-0.8.20/libtoml-632023385.rlib' '--extern=walkdir=bazel-out/k8-fastbuild/bin/external/crates__walkdir-2.5.0/libwalkdir-2408561013.rlib' '--extern=which=bazel-out/k8-fastbuild/bin/external/crates__which-7.0.2/libwhich-1253582940.rlib' '--extern=winapi=bazel-out/k8-fastbuild/bin/external/crates__winapi-0.3.9/libwinapi-1255796815.rlib' '--extern=xz2=bazel-out/k8-fastbuild/bin/external/crates__xz2-0.1.7/libxz2-2049197129.rlib' '--extern=zip=bazel-out/k8-fastbuild/bin/external/crates__zip-2.2.3/libzip-1494530856.rlib' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__cfg-if-1.0.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__rustc-demangle-0.1.24' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__gimli-0.28.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__addr2line-0.21.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__libc-0.2.168' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__adler-1.0.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__miniz_oxide-0.7.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__memchr-2.7.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__object-0.32.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__backtrace-0.3.71' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__anyhow-1.0.97' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__base64-0.22.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__bytes-1.9.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__smallvec-1.13.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__bcder-0.7.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__bzip2-sys-0.1.13-1.0.8' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__bzip2-0.4.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__num-traits-0.2.19' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__serde_derive-1.0.218' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__serde-1.0.218' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__iana-time-zone-0.1.60' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__chrono-0.4.38' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__hex-0.4.3' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__pem-3.0.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__futures-core-0.3.30' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__futures-sink-0.3.30' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__futures-channel-0.3.30' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__futures-io-0.3.30' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__futures-task-0.3.30' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__pin-project-lite-0.2.14' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__pin-utils-0.1.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__slab-0.4.9' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__futures-macro-0.3.30' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__futures-util-0.3.30' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__fnv-1.0.7' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__itoa-1.0.11' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__http-1.1.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__percent-encoding-2.3.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__form_urlencoded-1.2.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__ryu-1.0.18' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__serde_urlencoded-0.7.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__sync_wrapper-1.0.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__tower-service-0.3.3' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__stable_deref_trait-1.2.0' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__zerofrom-derive-0.1.5' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__zerofrom-0.1.5' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__yoke-derive-0.7.5' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__yoke-0.7.5' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__zerovec-derive-0.10.3' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__zerovec-0.10.4' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__displaydoc-0.2.5' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__icu_collections-1.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__icu_normalizer_data-1.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__litemap-0.7.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__tinystr-0.7.6' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__writeable-0.5.5' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__icu_locid-1.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__icu_locid_transform_data-1.5.0' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__icu_provider_macros-1.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__icu_provider-1.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__icu_locid_transform-1.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__icu_properties_data-1.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__icu_properties-1.5.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__utf16_iter-1.0.5' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__utf8_iter-1.0.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__write16-1.0.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__icu_normalizer-1.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__idna_adapter-1.2.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__idna-1.0.3' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__url-2.5.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__http-body-1.0.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__http-body-util-0.1.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__httparse-1.8.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__mio-1.0.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__socket2-0.5.7' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__tokio-macros-2.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__tokio-1.43.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__try-lock-0.2.5' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__want-0.3.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__hyper-1.5.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__once_cell-1.19.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__tracing-core-0.1.32' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__tracing-0.1.40' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__hyper-util-0.1.10' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__getrandom-0.2.15' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__untrusted-0.9.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__spin-0.9.8' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__ring-0.17.8' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__rustls-pki-types-1.7.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__rustls-webpki-0.102.6' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__subtle-2.5.0' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__zeroize_derive-1.4.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__zeroize-1.8.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__rustls-0.23.12' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__tokio-rustls-0.26.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__webpki-roots-0.26.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__hyper-rustls-0.27.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__ipnet-2.9.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__log-0.4.26' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__mime-0.3.17' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__rustls-pemfile-2.1.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__tower-layer-0.3.3' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__tower-0.5.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__reqwest-0.12.12' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__signature-2.2.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__const-oid-0.9.6' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__der-0.7.9' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__spki-0.7.3' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__thiserror-impl-1.0.69' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__thiserror-1.0.69' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__x509-certificate-0.24.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__cryptographic-message-syntax-0.27.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__typenum-1.17.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__generic-array-0.14.7' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__block-buffer-0.10.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__crypto-common-0.1.6' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__digest-0.10.7' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__crc32fast-1.4.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__libz-sys-1.1.20' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__adler2-2.0.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__miniz_oxide-0.8.5' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__flate2-1.1.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__md-5-0.10.6' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__ppv-lite86-0.2.17' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__rand_core-0.6.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__rand_chacha-0.3.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__rand-0.8.5' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__scroll_derive-0.12.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__scroll-0.12.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__xml-rs-0.8.24' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__serde-xml-rs-0.6.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__cpufeatures-0.2.12' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__sha1-0.10.6' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__sha2-0.10.8' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__thiserror-impl-2.0.6' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__thiserror-2.0.6' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__lzma-sys-0.1.20' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__xz2-0.1.7' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__apple-xar-0.20.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__is_executable-1.0.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__simple-file-manifest-0.11.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__cpio-archive-0.10.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__apple-flat-package-0.20.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__bzip2-0.5.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__anstyle-1.0.8' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__utf8parse-0.2.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__anstyle-parse-0.2.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__anstyle-query-1.0.3' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__colorchoice-1.0.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__is_terminal_polyfill-1.70.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__anstream-0.6.14' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__clap_lex-0.7.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__strsim-0.11.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__clap_builder-4.5.31' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__clap_derive-4.5.28' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__clap-4.5.31' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__ar-0.9.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__arrayvec-0.7.4' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__hashbrown-0.12.3' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__indexmap-1.9.3' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__byteorder-1.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__uuid-1.8.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__cfb-0.7.3' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__infer-0.8.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__filetime-0.2.23' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__bitflags-2.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__linux-raw-sys-0.4.14' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__rustix-0.38.42' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__xattr-1.3.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__tar-0.4.43' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__zstd-sys-2.0.10-zstd.1.5.6' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__zstd-safe-5.0.2-zstd.1.5.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__zstd-0.11.2-zstd.1.5.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__debpkg-0.6.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__option-ext-0.2.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__dirs-sys-0.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__directories-6.0.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__aho-corasick-1.1.3' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__regex-syntax-0.8.5' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__regex-automata-0.4.8' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__regex-1.11.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__env_filter-0.1.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__humantime-2.1.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__env_logger-0.11.6' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__exitcode-1.1.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__fs2-0.4.3' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__fs_extra-1.3.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__infer-0.19.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__serde_json-1.0.140' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__bit-vec-0.7.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__bit-set-0.6.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__crc-catalog-2.4.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__crc-3.2.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__filetime_creation-0.2.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__lzma-rust-0.1.7' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__powerfmt-0.2.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__deranged-0.3.11' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__num-conv-0.1.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__time-core-0.1.2' '-Ldependency=bazel-out/k8-opt-exec-ST-a934f86a68ba/bin/external/crates__time-macros-0.2.18' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__time-0.3.36' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__nt-time-0.8.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__sevenz-rust-0.6.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__fastrand-2.1.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__getrandom-0.3.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__tempfile-3.17.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__serde_spanned-0.6.8' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__toml_datetime-0.6.8' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__equivalent-1.0.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__hashbrown-0.15.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__indexmap-2.7.1' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__winnow-0.7.3' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__toml_edit-0.22.24' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__toml-0.8.20' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__same-file-1.0.6' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__walkdir-2.5.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__either-1.12.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__env_home-0.1.0' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__which-7.0.2' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__winapi-0.3.9' '-Ldependency=bazel-out/k8-fastbuild/bin/external/crates__zip-2.2.3' '--sysroot=bazel-out/k8-fastbuild/bin/external/rust_linux_x86_64__x86_64-unknown-linux-gnu__stable_tools/rust_toolchain')
    2389:  # Configuration: cd357f81b0edaca785a861ed1aa251aefd8f5a4cbb0b84ff0e5922e1a30baa1f
    2390:  # Execution platform: //common/remote-build:platform
    2391:  Execution result: https://gypsum.cluster.engflow.com/actions/executions/ChD0ndnra7dW1IhHrJg6oe-YEgdkZWZhdWx0GiUKIIMkNDAPIM6z8tMSQCuLUD_teoBtIg7zMOvDh22Kl3LWELgD
    2392:  �[0m�[1m�[38;5;9merror[E0433]�[0m�[0m�[1m: failed to resolve: could not find `um` in `winapi`�[0m
    2393:  �[0m  �[0m�[0m�[1m�[38;5;12m--> �[0m�[0mrust/src/config.rs:33:13�[0m
    2394:  �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m
    2395:  �[0m�[1m�[38;5;12m33�[0m�[0m �[0m�[0m�[1m�[38;5;12m|�[0m�[0m �[0m�[0muse winapi::um::sysinfoapi::{GetNativeSystemInfo, SYSTEM_INFO};�[0m
    2396:  �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m�[0m             �[0m�[0m�[1m�[38;5;9m^^�[0m�[0m �[0m�[0m�[1m�[38;5;9mcould not find `um` in `winapi`�[0m
    2397:  �[0m�[1m�[38;5;9merror[E0433]�[0m�[0m�[1m: failed to resolve: could not find `um` in `winapi`�[0m
    2398:  �[0m  �[0m�[0m�[1m�[38;5;12m--> �[0m�[0mrust/src/config.rs:34:13�[0m
    2399:  �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m
    2400:  �[0m�[1m�[38;5;12m34�[0m�[0m �[0m�[0m�[1m�[38;5;12m|�[0m�[0m �[0m�[0muse winapi::um::winnt::{�[0m
    2401:  �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m�[0m             �[0m�[0m�[1m�[38;5;9m^^�[0m�[0m �[0m�[0m�[1m�[38;5;9mcould not find `um` in `winapi`�[0m
    2402:  �[0m�[1m�[38;5;9merror[E0433]�[0m�[0m�[1m: failed to resolve: could not find `windows` in `os`�[0m
    2403:  �[0m  �[0m�[0m�[1m�[38;5;12m--> �[0m�[0mrust/src/files.rs:37:14�[0m
    2404:  �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m
    2405:  �[0m�[1m�[38;5;12m37�[0m�[0m �[0m�[0m�[1m�[38;5;12m|�[0m�[0m �[0m�[0muse std::os::windows::ffi::OsStrExt;�[0m
    2406:  �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m�[0m              �[0m�[0m�[1m�[38;5;9m^^^^^^^�[0m�[0m �[0m�[0m�[1m�[38;5;9mcould not find `windows` in `os`�[0m
    2407:  �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m
    2408:  �[0m�[1m�[38;5;10mnote�[0m�[0m: found an item that was configured out�[0m
    2409:  �[0m  �[0m�[0m�[1m�[38;5;12m--> �[0m�[0m/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/os/mod.rs:54:9�[0m
    2410:  �[0m�[1m�[38;5;10mnote�[0m�[0m: the item is gated here�[0m
    2411:  �[0m  �[0m�[0m�[1m�[38;5;12m--> �[0m�[0m/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/os/mod.rs:46:1�[0m
    2412:  �[0m�[1m�[38;5;10mnote�[0m�[0m: found an item that was configured out�[0m
    2413:  �[0m  �[0m�[0m�[1m�[38;5;12m--> �[0m�[0m/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/os/mod.rs:101:9�[0m
    2414:  �[0m�[1m�[38;5;10mnote�[0m�[0m: the item is gated here�[0m
    2415:  �[0m  �[0m�[0m�[1m�[38;5;12m--> �[0m�[0m/rustc/90b35a6239c3d8bdabc530a6a0816f7ff89a0aaf/library/std/src/os/mod.rs:100:1�[0m
    2416:  �[0m�[1m�[38;5;9merror[E0433]�[0m�[0m�[1m: failed to resolve: could not find `shared` in `winapi`�[0m
    2417:  �[0m  �[0m�[0m�[1m�[38;5;12m--> �[0m�[0mrust/src/files.rs:42:13�[0m
    2418:  �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m
    2419:  �[0m�[1m�[38;5;12m42�[0m�[0m �[0m�[0m�[1m�[38;5;12m|�[0m�[0m �[0m�[0muse winapi::shared::minwindef::LPVOID;�[0m
    2420:  �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m�[0m             �[0m�[0m�[1m�[38;5;9m^^^^^^�[0m�[0m �[0m�[0m�[1m�[38;5;9mcould not find `shared` in `winapi`�[0m
    2421:  �[0m�[1m�[38;5;9merror[E0433]�[0m�[0m�[1m: failed to resolve: could not find `um` in `winapi`�[0m
    2422:  �[0m  �[0m�[0m�[1m�[38;5;12m--> �[0m�[0mrust/src/files.rs:43:13�[0m
    2423:  �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m
    2424:  �[0m�[1m�[38;5;12m43�[0m�[0m �[0m�[0m�[1m�[38;5;12m|�[0m�[0m �[0m�[0muse winapi::um::winver::{GetFileVersionInfoSizeW, GetFileVersionInfoW, VerQueryValueW};�[0m
    2425:  �[0m   �[0m�[0m�[1m�[38;5;12m|�[0m�[0m             �[0m�[0m�[1m�[38;5;9m^^�[0m�[0m �[0m�[0m�[1m�[38;5;9mcould not find `um` in `winapi`�[0m
    2426:  �[0m�[1m�[38;5;9merror[E0599]�[0m�[0m�[1m: no method named `encode_wide` found for reference `&OsStr` in the curren...

    @bonigarcia bonigarcia force-pushed the sm_powershell branch 6 times, most recently from dba3035 to 3974c4d Compare March 3, 2025 23:56
    @bonigarcia
    Copy link
    Member Author

    It seems that the performance decline with this PR is real in Windows. In the following workflow, we can see the times that tests last in Windows:

    //rust:selenium-manager-fmt                                              PASSED in 0.1s
    //rust:selenium_manager-fmt                                              PASSED in 0.3s
    //rust:unit                                                              PASSED in 0.1s
    //rust:unit-fmt                                                          PASSED in 0.4s
    //rust/tests:integration_browser_download_tests                          PASSED in 84.0s
    //rust/tests:integration_browser_download_tests-fmt                      PASSED in 0.1s
    //rust/tests:integration_browser_tests                                   PASSED in 410.4s
    //rust/tests:integration_browser_tests-fmt                               PASSED in 0.1s
    //rust/tests:integration_cache_tests                                     PASSED in 9.2s
    //rust/tests:integration_cache_tests-fmt                                 PASSED in 0.1s
    //rust/tests:integration_config_tests                                    PASSED in 395.3s
    //rust/tests:integration_config_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_exec_driver_tests                               PASSED in 104.2s
    //rust/tests:integration_exec_driver_tests-fmt                           PASSED in 0.1s
    //rust/tests:integration_grid_tests                                      PASSED in 1.9s
    //rust/tests:integration_grid_tests-fmt                                  PASSED in 0.1s
    //rust/tests:integration_iexplorer_tests                                 PASSED in 230
    //rust/tests:integration_iexplorer_tests-fmt                             PASSED in 0.1s
    //rust/tests:integration_mirror_tests                                    PASSED in 156.4s
    //rust/tests:integration_mirror_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_offline_tests                                   PASSED in 2.8s
    //rust/tests:integration_offline_tests-fmt                               PASSED in 0.2s
    //rust/tests:integration_output_tests                                    PASSED in 10.5s
    //rust/tests:integration_output_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_proxy_tests                                     PASSED in 2.9s
    //rust/tests:integration_proxy_tests-fmt                                 PASSED in 0.2s
    //rust/tests:integration_safari_tests                                    PASSED in 1.1s
    //rust/tests:integration_safari_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_stable_browser_tests                            PASSED in 3.7s
    //rust/tests:integration_stable_browser_tests-fmt                        PASSED in 0.1s
    //rust/tests:integration_timeout_tests                                   PASSED in 0.5s
    //rust/tests:integration_timeout_tests-fmt                               PASSED in 0.1s
    //rust/tests:integration_webview_tests                                   PASSED in 286.9s
    //rust/tests:integration_webview_tests-fmt                               PASSED in 0.3s
    

    The same tests in Linux:

    //rust:selenium-manager-fmt                                              PASSED in 0.0s
    //rust:selenium_manager-fmt                                              PASSED in 0.3s
    //rust:unit                                                              PASSED in 0.0s
    //rust:unit-fmt                                                          PASSED in 0.3s
    //rust/tests:integration_browser_download_tests                          PASSED in 64.5s
    //rust/tests:integration_browser_download_tests-fmt                      PASSED in 0.1s
    //rust/tests:integration_browser_tests                                   PASSED in 4.5s
    //rust/tests:integration_browser_tests-fmt                               PASSED in 0.0s
    //rust/tests:integration_cache_tests                                     PASSED in 2.2s
    //rust/tests:integration_cache_tests-fmt                                 PASSED in 0.2s
    //rust/tests:integration_config_tests                                    PASSED in 2.1s
    //rust/tests:integration_config_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_exec_driver_tests                               PASSED in 1.3s
    //rust/tests:integration_exec_driver_tests-fmt                           PASSED in 0.1s
    //rust/tests:integration_grid_tests                                      PASSED in 2.2s
    //rust/tests:integration_grid_tests-fmt                                  PASSED in 0.1s
    //rust/tests:integration_iexplorer_tests                                 PASSED in 1.6s
    //rust/tests:integration_iexplorer_tests-fmt                             PASSED in 0.1s
    //rust/tests:integration_mirror_tests                                    PASSED in 5.4s
    //rust/tests:integration_mirror_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_offline_tests                                   PASSED in 0.8s
    //rust/tests:integration_offline_tests-fmt                               PASSED in 0.1s
    //rust/tests:integration_output_tests                                    PASSED in 0.8s
    //rust/tests:integration_output_tests-fmt                                PASSED in 0.2s
    //rust/tests:integration_proxy_tests                                     PASSED in 0.5s
    //rust/tests:integration_proxy_tests-fmt                                 PASSED in 0.1s
    //rust/tests:integration_safari_tests                                    PASSED in 0.1s
    //rust/tests:integration_safari_tests-fmt                                PASSED in 0.0s
    //rust/tests:integration_stable_browser_tests                            PASSED in 2.1s
    //rust/tests:integration_stable_browser_tests-fmt                        PASSED in 0.0s
    //rust/tests:integration_timeout_tests                                   PASSED in 0.1s
    //rust/tests:integration_timeout_tests-fmt                               PASSED in 0.1s
    //rust/tests:integration_webview_tests                                   PASSED in 0.4s
    //rust/tests:integration_webview_tests-fmt                               PASSED in 0.1s
    

    And in macOS:

    //rust:selenium-manager-fmt                                              PASSED in 0.1s
    //rust:selenium_manager-fmt                                              PASSED in 0.2s
    //rust:unit                                                              PASSED in 0.1s
    //rust:unit-fmt                                                          PASSED in 0.2s
    //rust/tests:integration_browser_download_tests                          PASSED in 51.0s
    //rust/tests:integration_browser_download_tests-fmt                      PASSED in 0.1s
    //rust/tests:integration_browser_tests                                   PASSED in 19.2s
    //rust/tests:integration_browser_tests-fmt                               PASSED in 0.1s
    //rust/tests:integration_cache_tests                                     PASSED in 1.7s
    //rust/tests:integration_cache_tests-fmt                                 PASSED in 0.1s
    //rust/tests:integration_config_tests                                    PASSED in 20.3s
    //rust/tests:integration_config_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_exec_driver_tests                               PASSED in 17.2s
    //rust/tests:integration_exec_driver_tests-fmt                           PASSED in 0.1s
    //rust/tests:integration_grid_tests                                      PASSED in 5.7s
    //rust/tests:integration_grid_tests-fmt                                  PASSED in 0.1s
    //rust/tests:integration_iexplorer_tests                                 PASSED in 1.6s
    //rust/tests:integration_iexplorer_tests-fmt                             PASSED in 0.1s
    //rust/tests:integration_mirror_tests                                    PASSED in 16.7s
    //rust/tests:integration_mirror_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_offline_tests                                   PASSED in 0.4s
    //rust/tests:integration_offline_tests-fmt                               PASSED in 0.1s
    //rust/tests:integration_output_tests                                    PASSED in 3.3s
    //rust/tests:integration_output_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_proxy_tests                                     PASSED in 1.0s
    //rust/tests:integration_proxy_tests-fmt                                 PASSED in 0.1s
    //rust/tests:integration_safari_tests                                    PASSED in 0.2s
    //rust/tests:integration_safari_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_stable_browser_tests                            PASSED in 1.5s
    //rust/tests:integration_stable_browser_tests-fmt                        PASSED in 0.1s
    //rust/tests:integration_timeout_tests                                   PASSED in 0.1s
    //rust/tests:integration_timeout_tests-fmt                               PASSED in 0.1s
    //rust/tests:integration_webview_tests                                   PASSED in 1.8s
    //rust/tests:integration_webview_tests-fmt                               PASSED in 0.1s
    

    And the same tests, in Windows, but just before the PR:

    //rust:selenium-manager-fmt                                              PASSED in 0.2s
    //rust:selenium_manager-fmt                                              PASSED in 0.2s
    //rust:unit                                                              PASSED in 0.2s
    //rust:unit-fmt                                                          PASSED in 0.3s
    //rust/tests:integration_browser_download_tests                          PASSED in 88.7s
    //rust/tests:integration_browser_download_tests-fmt                      PASSED in 0.1s
    //rust/tests:integration_browser_tests                                   PASSED in 15.5s
    //rust/tests:integration_browser_tests-fmt                               PASSED in 0.1s
    //rust/tests:integration_cache_tests                                     PASSED in 4.0s
    //rust/tests:integration_cache_tests-fmt                                 PASSED in 0.1s
    //rust/tests:integration_config_tests                                    PASSED in 10.6s
    //rust/tests:integration_config_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_exec_driver_tests                               PASSED in 7.0s
    //rust/tests:integration_exec_driver_tests-fmt                           PASSED in 0.1s
    //rust/tests:integration_grid_tests                                      PASSED in 3.3s
    //rust/tests:integration_grid_tests-fmt                                  PASSED in 0.1s
    //rust/tests:integration_iexplorer_tests                                 PASSED in 5.4s
    //rust/tests:integration_iexplorer_tests-fmt                             PASSED in 0.1s
    //rust/tests:integration_mirror_tests                                    PASSED in 8.2s
    //rust/tests:integration_mirror_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_offline_tests                                   PASSED in 4.9s
    //rust/tests:integration_offline_tests-fmt                               PASSED in 0.1s
    //rust/tests:integration_output_tests                                    PASSED in 2.8s
    //rust/tests:integration_output_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_proxy_tests                                     PASSED in 1.4s
    //rust/tests:integration_proxy_tests-fmt                                 PASSED in 0.1s
    //rust/tests:integration_safari_tests                                    PASSED in 1.5s
    //rust/tests:integration_safari_tests-fmt                                PASSED in 0.1s
    //rust/tests:integration_stable_browser_tests                            PASSED in 3.1s
    //rust/tests:integration_stable_browser_tests-fmt                        PASSED in 0.1s
    //rust/tests:integration_timeout_tests                                   PASSED in 0.5s
    //rust/tests:integration_timeout_tests-fmt                               PASSED in 0.1s
    //rust/tests:integration_webview_tests                                   PASSED in 3.9s
    //rust/tests:integration_webview_tests-fmt                               PASSED in 0.2s
    

    @nvborisenko
    Copy link
    Member

    WMIC is a wrapper, PowerShell is a wrapper. Why not to use WinAPI directly to get the version of file?

    @bonigarcia bonigarcia changed the title [rust] Replace WMIC commands (deprecated) by PowerShell in Windows [rust] Replace WMIC commands (deprecated) by WinAPI in Windows May 7, 2025
    @bonigarcia
    Copy link
    Member Author

    Using WinAPI instead of PowerShell is a great idea, thanks a lot @nvborisenko. I have just changed this PR accordingly.

    @bonigarcia bonigarcia merged commit 7497552 into trunk May 8, 2025
    19 checks passed
    @bonigarcia bonigarcia deleted the sm_powershell branch May 8, 2025 16:11
    @github-project-automation github-project-automation bot moved this from In Progress to Done in Selenium Manager May 8, 2025
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Labels
    C-rust Rust code is mostly Selenium Manager Review effort 3/5
    Projects
    Status: Done
    Development

    Successfully merging this pull request may close these issues.

    2 participants