Skip to content
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

[rust] Fix Edge management in RPM-based Linux #13705

Merged
merged 5 commits into from
Mar 26, 2024
Merged

[rust] Fix Edge management in RPM-based Linux #13705

merged 5 commits into from
Mar 26, 2024

Conversation

bonigarcia
Copy link
Member

@bonigarcia bonigarcia commented Mar 18, 2024

User description

Description

I checked the Edge DEB package can also be used to extract the assets (Edge files and folders) in an RPM-based system (e.g., Fedora). The problem was the way in which the resulting folders was moved from the temporal folder to the cache. This PR changes that, and as a result, Edge can be downloaded in RPM-based systems. I tested it in Fedora:

user@fedora:~/dev/selenium/rust$ cat /etc/fedora-release
Fedora release 39 (Thirty Nine)

user@fedora:~/dev/selenium/rust$ cargo run -- --clear-cache --debug --browser edge
   Compiling selenium-manager v0.4.19-nightly (/home/user/dev/selenium/rust)
    Finished dev [unoptimized + debuginfo] target(s) in 6.35s
     Running `target/debug/selenium-manager --clear-cache --debug --browser edge`
[2024-03-18T17:23:52.854Z DEBUG] Clearing cache at: /home/user/.cache/selenium
[2024-03-18T17:23:52.959Z DEBUG] Sending stats to Plausible: Props { browser: "edge", browser_version: "", os: "linux", arch: "x86_64", lang: "", selenium_version: "4.19-nightly" }
[2024-03-18T17:23:52.968Z DEBUG] msedgedriver not found in PATH
[2024-03-18T17:23:52.970Z DEBUG] edge not found in PATH
[2024-03-18T17:23:52.970Z DEBUG] edge not found in the system
[2024-03-18T17:23:52.971Z DEBUG] Checking edge releases on https://edgeupdates.microsoft.com/api/products/
[2024-03-18T17:23:53.051Z DEBUG] Required browser: edge 122.0.2365.92
[2024-03-18T17:23:53.051Z DEBUG] Downloading edge 122.0.2365.92 from https://packages.microsoft.com/repos/edge/pool/main/m/microsoft-edge-stable/microsoft-edge-stable_122.0.2365.92-1_amd64.deb
[2024-03-18T17:24:26.512Z DEBUG] edge 122.0.2365.92 is available at /home/user/.cache/selenium/edge/linux64/122.0.2365.92/msedge
[2024-03-18T17:24:26.512Z DEBUG] Reading msedgedriver version from https://msedgedriver.azureedge.net/LATEST_RELEASE_122_LINUX
[2024-03-18T17:24:26.599Z DEBUG] Required driver: msedgedriver 122.0.2365.92
[2024-03-18T17:24:26.599Z DEBUG] Downloading msedgedriver 122.0.2365.92 from https://msedgedriver.azureedge.net/122.0.2365.92/edgedriver_linux64.zip
[2024-03-18T17:24:29.797Z INFO ] Driver path: /home/user/.cache/selenium/msedgedriver/linux64/122.0.2365.92/msedgedriver
[2024-03-18T17:24:29.797Z INFO ] Browser path: /home/user/.cache/selenium/edge/linux64/122.0.2365.92/msedge

Motivation and Context

Fix for #13636.

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.

Type

enhancement


Description

  • Enhanced support for RPM-based Linux systems in Edge browser file extraction by using shell commands for file movement.
  • This change allows the Edge DEB package to be used on RPM-based systems like Fedora, improving compatibility and user experience.

Changes walkthrough

Relevant files
Enhancement
files.rs
Enhance Edge Browser File Extraction for RPM-based Systems

rust/src/files.rs

  • Added OS parameter to uncompress_deb function to handle file movement
    based on OS.
  • Replaced direct file system rename operation with a shell command for
    moving extracted Edge browser files.
  • Enhanced the way Edge browser files are moved to the cache directory
    on RPM-based systems.
  • +8/-3     

    PR-Agent usage:
    Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

    Copy link
    Contributor

    PR Description updated to latest commit (926e526)

    Copy link
    Contributor

    PR Review

    ⏱️ Estimated effort to review [1-5]

    2, because the changes are focused on a specific functionality (uncompressing DEB packages) and involve a moderate amount of code. The logic seems straightforward, but understanding the context and ensuring compatibility across different operating systems might require some domain knowledge.

    🧪 Relevant tests

    No

    🔍 Possible issues

    Possible Bug: The use of mv command directly in the string format might not be portable across all RPM-based systems or might require specific permissions. It's assumed that run_shell_command_by_os handles these cases, but this could be a point of failure if not properly managed.

    Compatibility Concern: The change assumes that moving files using shell commands is universally applicable. This might not be the case in environments with restricted shell access or in systems with non-standard file system layouts.

    🔒 Security concerns

    No


    ✨ Review tool usage guide:

    Overview:
    The review tool scans the PR code changes, and generates a PR review. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on any PR.
    When commenting, to edit configurations related to the review tool (pr_reviewer section), use the following template:

    /review --pr_reviewer.some_config1=... --pr_reviewer.some_config2=...
    

    With a configuration file, use the following template:

    [pr_reviewer]
    some_config1=...
    some_config2=...
    
    Utilizing extra instructions

    The review tool can be configured with extra instructions, which can be used to guide the model to a feedback tailored to the needs of your project.

    Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter. Specify the relevant sub-tool, and the relevant aspects of the PR that you want to emphasize.

    Examples for extra instructions:

    [pr_reviewer] # /review #
    extra_instructions="""
    In the 'possible issues' section, emphasize the following:
    - Does the code logic cover relevant edge cases?
    - Is the code logic clear and easy to understand?
    - Is the code logic efficient?
    ...
    """
    

    Use triple quotes to write multi-line instructions. Use bullet points to make the instructions more readable.

    How to enable\disable automation
    • When you first install PR-Agent app, the default mode for the review tool is:
    pr_commands = ["/review", ...]
    

    meaning the review tool will run automatically on every PR, with the default configuration.
    Edit this field to enable/disable the tool, or to change the used configurations

    Auto-labels

    The review tool can auto-generate two specific types of labels for a PR:

    • a possible security issue label, that detects possible security issues (enable_review_labels_security flag)
    • a Review effort [1-5]: x label, where x is the estimated effort to review the PR (enable_review_labels_effort flag)
    Extra sub-tools

    The review tool provides a collection of possible feedbacks about a PR.
    It is recommended to review the possible options, and choose the ones relevant for your use case.
    Some of the feature that are disabled by default are quite useful, and should be considered for enabling. For example:
    require_score_review, require_soc2_ticket, require_can_be_split_review, and more.

    Auto-approve PRs

    By invoking:

    /review auto_approve
    

    The tool will automatically approve the PR, and add a comment with the approval.

    To ensure safety, the auto-approval feature is disabled by default. To enable auto-approval, you need to actively set in a pre-defined configuration file the following:

    [pr_reviewer]
    enable_auto_approval = true
    

    (this specific flag cannot be set with a command line argument, only in the configuration file, committed to the repository)

    You can also enable auto-approval only if the PR meets certain requirements, such as that the estimated_review_effort is equal or below a certain threshold, by adjusting the flag:

    [pr_reviewer]
    maximal_review_effort = 5
    
    More PR-Agent commands

    To invoke the PR-Agent, add a comment using one of the following commands:

    • /review: Request a review of your Pull Request.
    • /describe: Update the PR title and description based on the contents of the PR.
    • /improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
    • /ask <QUESTION>: Ask a question about the PR.
    • /update_changelog: Update the changelog based on the PR's contents.
    • /add_docs 💎: Generate docstring for new components introduced in the PR.
    • /generate_labels 💎: Generate labels for the PR based on the PR's contents.
    • /analyze 💎: Automatically analyzes the PR, and presents changes walkthrough for each component.

    See the tools guide for more details.
    To list the possible configuration parameters, add a /config comment.

    See the review usage page for a comprehensive guide on using this tool.

    Copy link
    Contributor

    codiumai-pr-agent-pro bot commented Mar 18, 2024

    PR Code Suggestions

    CategorySuggestions                                                                                                                                                       
    Enhancement
    Improve error handling for the volume parameter in uncompress_deb function call.

    Consider handling the case where volume is None more explicitly before calling
    uncompress_deb. Using unwrap_or_default directly in the function call may lead to
    unexpected behavior if volume is expected to have a meaningful value. It would be safer to
    handle this case separately or ensure that volume cannot be None at this point in the
    code.

    rust/src/files.rs [142]

    -uncompress_deb(compressed_file, target, log, os, volume.unwrap_or_default())?
    +let volume = volume.expect("Expected volume to have a value");
    +uncompress_deb(compressed_file, target, log, os, volume)?
     
    Improve error handling for path to string conversions to handle invalid Unicode.

    Ensure that path_to_string function properly handles potential errors. Converting a Path
    to a String can fail if the path contains invalid Unicode characters. It might be safer to
    handle this conversion more robustly, either by returning a Result from path_to_string or
    by ensuring that paths are always valid Unicode.

    rust/src/files.rs [281-282]

    -let zip_parent_str = path_to_string(zip_parent);
    -let target_str = path_to_string(target);
    +let zip_parent_str = path_to_string(zip_parent).expect("Path contains invalid Unicode characters");
    +let target_str = path_to_string(target).expect("Path contains invalid Unicode characters");
     
    Possible issue
    Ensure compatibility of uncompress_deb function with its new parameter across all calls.

    The addition of the os parameter to uncompress_deb function signature is good, but ensure
    that all callers of this function are updated accordingly to pass this new parameter. This
    change might break existing code that relies on the previous signature.

    rust/src/files.rs [267]

    -os: &str,
    +os: &str, // Ensure all function calls to uncompress_deb now include the os parameter.
     
    Performance
    Avoid unnecessary cloning of opt_edge_str when not needed.

    Instead of cloning opt_edge_str when creating the command, consider using a reference if
    the Command::new_single function allows it. This would avoid unnecessary cloning and
    potentially improve performance.

    rust/src/files.rs [287]

    -let command = Command::new_single(opt_edge_str.clone());
    +let command = Command::new_single(&opt_edge_str);
     
    Best practice
    Verify the success of shell commands and handle errors appropriately.

    Consider verifying the success of the mv command within run_shell_command_by_os. It's
    crucial to ensure that the command executed successfully and handle any errors
    appropriately, such as logging an error or retrying the operation. This ensures the
    reliability of file operations.

    rust/src/files.rs [293]

    -run_shell_command_by_os(os, command)?;
    +if let Err(e) = run_shell_command_by_os(os, command) {
    +    log.error(format!("Failed to move files: {}", e));
    +    return Err(e);
    +}
     

    ✨ Improve tool usage guide:

    Overview:
    The improve tool scans the PR code changes, and automatically generates suggestions for improving the PR code. The tool can be triggered automatically every time a new PR is opened, or can be invoked manually by commenting on a PR.
    When commenting, to edit configurations related to the improve tool (pr_code_suggestions section), use the following template:

    /improve --pr_code_suggestions.some_config1=... --pr_code_suggestions.some_config2=...
    

    With a configuration file, use the following template:

    [pr_code_suggestions]
    some_config1=...
    some_config2=...
    
    Enabling\disabling automation

    When you first install the app, the default mode for the improve tool is:

    pr_commands = ["/improve --pr_code_suggestions.summarize=true", ...]
    

    meaning the improve tool will run automatically on every PR, with summarization enabled. Delete this line to disable the tool from running automatically.

    Utilizing extra instructions

    Extra instructions are very important for the improve tool, since they enable to guide the model to suggestions that are more relevant to the specific needs of the project.

    Be specific, clear, and concise in the instructions. With extra instructions, you are the prompter. Specify relevant aspects that you want the model to focus on.

    Examples for extra instructions:

    [pr_code_suggestions] # /improve #
    extra_instructions="""
    Emphasize the following aspects:
    - Does the code logic cover relevant edge cases?
    - Is the code logic clear and easy to understand?
    - Is the code logic efficient?
    ...
    """
    

    Use triple quotes to write multi-line instructions. Use bullet points to make the instructions more readable.

    A note on code suggestions quality
    • While the current AI for code is getting better and better (GPT-4), it's not flawless. Not all the suggestions will be perfect, and a user should not accept all of them automatically.
    • Suggestions are not meant to be simplistic. Instead, they aim to give deep feedback and raise questions, ideas and thoughts to the user, who can then use his judgment, experience, and understanding of the code base.
    • Recommended to use the 'extra_instructions' field to guide the model to suggestions that are more relevant to the specific needs of the project, or use the custom suggestions 💎 tool
    • With large PRs, best quality will be obtained by using 'improve --extended' mode.
    More PR-Agent commands

    To invoke the PR-Agent, add a comment using one of the following commands:

    • /review: Request a review of your Pull Request.
    • /describe: Update the PR title and description based on the contents of the PR.
    • /improve [--extended]: Suggest code improvements. Extended mode provides a higher quality feedback.
    • /ask <QUESTION>: Ask a question about the PR.
    • /update_changelog: Update the changelog based on the PR's contents.
    • /add_docs 💎: Generate docstring for new components introduced in the PR.
    • /generate_labels 💎: Generate labels for the PR based on the PR's contents.
    • /analyze 💎: Automatically analyzes the PR, and presents changes walkthrough for each component.

    See the tools guide for more details.
    To list the possible configuration parameters, add a /config comment.

    See the improve usage page for a more comprehensive guide on using this tool.

    Copy link
    Contributor

    codiumai-pr-agent-pro bot commented Mar 25, 2024

    CI Failure Feedback

    (Checks updated until commit 6774b6a)

    Action: Rust / Tests (macos) / Tests (macos)

    Failed stage: Run Bazel [❌]

    Failed test name: browser_download_tests

    Failure summary:

    The action failed due to multiple tests failing within the
    //rust:integration_tests/browser_download_tests. Specifically, the failures were related to tests
    attempting to download browser versions (Firefox and Edge) and verifying their paths. The key issues
    identified include:

  • Tests browser_latest_download_test::case_2, browser_latest_download_test::case_3,
    browser_version_download_test::case_3, browser_version_download_test::case_4, and
    browser_version_download_test::case_5 failed due to unexpected errors, likely related to downloading
    or accessing the browser binaries.
  • Warnings were logged about the expected browser paths not existing, indicating that the downloaded
    files were not found where expected.
  • Errors were encountered during the download process or the verification of the downloaded browser's
    existence, leading to test failures.
  • The failures were consistent across multiple attempts, indicating a systematic issue with the
    browser download or path verification process within these tests.

  • Relevant error logs:
    1:  ##[group]Operating System
    2:  macOS
    ...
    
    657:  �[31m�[1mFAIL: �[0m//rust:integration_tests/browser_download_tests (see /Users/runner/.bazel/execroot/selenium/bazel-out/darwin_x86_64-fastbuild/testlogs/rust/integration_tests/browser_download_tests/test_attempts/attempt_1.log)
    658:  �[32m[584 / 585]�[0m 33 / 34 tests;�[0m Testing //rust:integration_tests/browser_download_tests; 62s local, disk-cache
    659:  �[32m[584 / 585]�[0m 33 / 34 tests;�[0m Testing //rust:integration_tests/browser_download_tests; 107s local, disk-cache
    660:  �[32m[584 / 585]�[0m 33 / 34 tests;�[0m Testing //rust:integration_tests/browser_download_tests; 116s local, disk-cache
    661:  �[31m�[1mFAIL: �[0m//rust:integration_tests/browser_download_tests (see /Users/runner/.bazel/execroot/selenium/bazel-out/darwin_x86_64-fastbuild/testlogs/rust/integration_tests/browser_download_tests/test_attempts/attempt_2.log)
    662:  �[32m[584 / 585]�[0m 33 / 34 tests;�[0m Testing //rust:integration_tests/browser_download_tests; 117s local, disk-cache
    663:  �[32m[584 / 585]�[0m 33 / 34 tests;�[0m Testing //rust:integration_tests/browser_download_tests; 170s local, disk-cache
    664:  �[31m�[1mFAIL: �[0m//rust:integration_tests/browser_download_tests (see /Users/runner/.bazel/execroot/selenium/bazel-out/darwin_x86_64-fastbuild/testlogs/rust/integration_tests/browser_download_tests/test.log)
    665:  �[31m�[1mFAILED: �[0m//rust:integration_tests/browser_download_tests (Summary)
    666:  /Users/runner/.bazel/execroot/selenium/bazel-out/darwin_x86_64-fastbuild/testlogs/rust/integration_tests/browser_download_tests/test.log
    667:  ==================== Test output for //rust:integration_tests/browser_download_tests:
    668:  /Users/runner/.bazel/execroot/selenium/bazel-out/darwin_x86_64-fastbuild/testlogs/rust/integration_tests/browser_download_tests/test_attempts/attempt_1.log
    669:  /Users/runner/.bazel/execroot/selenium/bazel-out/darwin_x86_64-fastbuild/testlogs/rust/integration_tests/browser_download_tests/test_attempts/attempt_2.log
    670:  running 9 tests
    671:  �[32mINFO: �[0mFrom Testing //rust:integration_tests/browser_download_tests:
    672:  test browser_latest_download_test::case_2 ... FAILED
    673:  test browser_latest_download_test::case_3 ... FAILED
    674:  test browser_version_download_test::case_3 ... FAILED
    675:  test browser_version_download_test::case_4 ... FAILED
    676:  test browser_version_download_test::case_5 ... FAILED
    677:  test browser_version_download_test::case_6 ... ok
    678:  test browser_version_download_test::case_1 ... ok
    679:  test browser_latest_download_test::case_1 has been running for over 60 seconds
    680:  test browser_latest_download_test::case_1 ... ok
    681:  test browser_version_download_test::case_2 ... ok
    682:  failures:
    683:  ---- browser_latest_download_test::case_2 stdout ----
    684:  thread 'browser_latest_download_test::case_2' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    685:  Unexpected failure.
    ...
    
    706:  \"message\": \"Downloading firefox 124.0.1 from https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.pkg\"
    707:  },
    708:  {
    709:  \"level\": \"WARN\",
    710:  \"timestamp\": 1711468384,
    711:  \"message\": \"Expected firefox path does not exists: /Users/runner/.cache/selenium/firefox/mac64/124.0.1/Firefox.app/Contents/MacOS/firefox\"
    712:  },
    713:  {
    714:  \"level\": \"ERROR\",
    ...
    
    730:  }```
    731:  stderr=""
    732:  stack backtrace:
    733:  0: rust_begin_unwind
    734:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    735:  1: core::panicking::panic_fmt
    736:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    737:  2: core::panicking::panic_display
    738:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    739:  4: assert_cmd::assert::AssertError::panic
    ...
    
    744:  9: integration_tests_browser_download_tests::browser_latest_download_test::case_2
    745:  10: integration_tests_browser_download_tests::browser_latest_download_test::case_2::{{closure}}
    746:  11: core::ops::function::FnOnce::call_once
    747:  12: core::ops::function::FnOnce::call_once
    748:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    749:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    750:  ---- browser_latest_download_test::case_3 stdout ----
    751:  thread 'browser_latest_download_test::case_3' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    752:  Unexpected failure.
    ...
    
    778:  \"message\": \"Downloading edge 122.0.2365.92 from https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/61b13da3-c921-482a-9166-743689310b71/MicrosoftEdge-122.0.2365.92.pkg\"
    779:  },
    780:  {
    781:  \"level\": \"WARN\",
    782:  \"timestamp\": 1711468404,
    783:  \"message\": \"Expected edge path does not exists: /Users/runner/.cache/selenium/edge/mac64/122.0.2365.92/Microsoft Edge.app/Contents/MacOS/Microsoft Edge\"
    784:  },
    785:  {
    786:  \"level\": \"ERROR\",
    ...
    
    802:  }```
    803:  stderr=""
    804:  stack backtrace:
    805:  0: rust_begin_unwind
    806:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    807:  1: core::panicking::panic_fmt
    808:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    809:  2: core::panicking::panic_display
    810:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    811:  4: assert_cmd::assert::AssertError::panic
    ...
    
    816:  9: integration_tests_browser_download_tests::browser_latest_download_test::case_3
    817:  10: integration_tests_browser_download_tests::browser_latest_download_test::case_3::{{closure}}
    818:  11: core::ops::function::FnOnce::call_once
    819:  12: core::ops::function::FnOnce::call_once
    820:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    821:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    822:  ---- browser_version_download_test::case_3 stdout ----
    823:  thread 'browser_version_download_test::case_3' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    824:  Unexpected failure.
    ...
    
    870:  \"message\": \"Downloading firefox 124.0.1 from https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.pkg\"
    871:  },
    872:  {
    873:  \"level\": \"WARN\",
    874:  \"timestamp\": 1711468410,
    875:  \"message\": \"Expected firefox path does not exists: /Users/runner/.cache/selenium/firefox/mac64/124.0.1/Firefox.app/Contents/MacOS/firefox\"
    876:  },
    877:  {
    878:  \"level\": \"ERROR\",
    ...
    
    894:  }```
    895:  stderr=""
    896:  stack backtrace:
    897:  0: rust_begin_unwind
    898:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    899:  1: core::panicking::panic_fmt
    900:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    901:  2: core::panicking::panic_display
    902:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    903:  4: assert_cmd::assert::AssertError::panic
    ...
    
    908:  9: integration_tests_browser_download_tests::browser_version_download_test::case_3
    909:  10: integration_tests_browser_download_tests::browser_version_download_test::case_3::{{closure}}
    910:  11: core::ops::function::FnOnce::call_once
    911:  12: core::ops::function::FnOnce::call_once
    912:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    913:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    914:  ---- browser_version_download_test::case_4 stdout ----
    915:  thread 'browser_version_download_test::case_4' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    916:  Unexpected failure.
    ...
    
    962:  \"message\": \"Downloading firefox 124.0.1 from https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.pkg\"
    963:  },
    964:  {
    965:  \"level\": \"WARN\",
    966:  \"timestamp\": 1711468415,
    967:  \"message\": \"Expected firefox path does not exists: /Users/runner/.cache/selenium/firefox/mac64/124.0.1/Firefox.app/Contents/MacOS/firefox\"
    968:  },
    969:  {
    970:  \"level\": \"ERROR\",
    ...
    
    986:  }```
    987:  stderr=""
    988:  stack backtrace:
    989:  0: rust_begin_unwind
    990:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    991:  1: core::panicking::panic_fmt
    992:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    993:  2: core::panicking::panic_display
    994:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    995:  4: assert_cmd::assert::AssertError::panic
    ...
    
    1000:  9: integration_tests_browser_download_tests::browser_version_download_test::case_4
    1001:  10: integration_tests_browser_download_tests::browser_version_download_test::case_4::{{closure}}
    1002:  11: core::ops::function::FnOnce::call_once
    1003:  12: core::ops::function::FnOnce::call_once
    1004:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    1005:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    1006:  ---- browser_version_download_test::case_5 stdout ----
    1007:  thread 'browser_version_download_test::case_5' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    1008:  Unexpected failure.
    ...
    
    1054:  \"message\": \"Downloading firefox 124.0.1 from https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.pkg\"
    1055:  },
    1056:  {
    1057:  \"level\": \"WARN\",
    1058:  \"timestamp\": 1711468420,
    1059:  \"message\": \"Expected firefox path does not exists: /Users/runner/.cache/selenium/firefox/mac64/124.0.1/Firefox.app/Contents/MacOS/firefox\"
    1060:  },
    1061:  {
    1062:  \"level\": \"ERROR\",
    ...
    
    1078:  }```
    1079:  stderr=""
    1080:  stack backtrace:
    1081:  0: rust_begin_unwind
    1082:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    1083:  1: core::panicking::panic_fmt
    1084:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    1085:  2: core::panicking::panic_display
    1086:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    1087:  4: assert_cmd::assert::AssertError::panic
    ...
    
    1096:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    1097:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    1098:  failures:
    1099:  browser_latest_download_test::case_2
    1100:  browser_latest_download_test::case_3
    1101:  browser_version_download_test::case_3
    1102:  browser_version_download_test::case_4
    1103:  browser_version_download_test::case_5
    1104:  test result: FAILED. 4 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 60.14s
    1105:  ================================================================================
    1106:  ==================== Test output for //rust:integration_tests/browser_download_tests:
    1107:  running 9 tests
    1108:  test browser_latest_download_test::case_1 ... ok
    1109:  test browser_version_download_test::case_1 ... ok
    1110:  test browser_version_download_test::case_2 ... ok
    1111:  test browser_latest_download_test::case_2 ... FAILED
    1112:  test browser_version_download_test::case_4 ... FAILED
    1113:  test browser_version_download_test::case_6 ... ok
    1114:  test browser_version_download_test::case_3 ... FAILED
    1115:  test browser_version_download_test::case_5 ... FAILED
    1116:  test browser_latest_download_test::case_3 ... FAILED
    1117:  failures:
    1118:  ---- browser_latest_download_test::case_2 stdout ----
    1119:  thread 'browser_latest_download_test::case_2' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    1120:  Unexpected failure.
    ...
    
    1141:  \"message\": \"Downloading firefox 124.0.1 from https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.pkg\"
    1142:  },
    1143:  {
    1144:  \"level\": \"WARN\",
    1145:  \"timestamp\": 1711468440,
    1146:  \"message\": \"Expected firefox path does not exists: /Users/runner/.cache/selenium/firefox/mac64/124.0.1/Firefox.app/Contents/MacOS/firefox\"
    1147:  },
    1148:  {
    1149:  \"level\": \"ERROR\",
    ...
    
    1165:  }```
    1166:  stderr=""
    1167:  stack backtrace:
    1168:  0: rust_begin_unwind
    1169:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    1170:  1: core::panicking::panic_fmt
    1171:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    1172:  2: core::panicking::panic_display
    1173:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    1174:  4: assert_cmd::assert::AssertError::panic
    ...
    
    1179:  9: integration_tests_browser_download_tests::browser_latest_download_test::case_2
    1180:  10: integration_tests_browser_download_tests::browser_latest_download_test::case_2::{{closure}}
    1181:  11: core::ops::function::FnOnce::call_once
    1182:  12: core::ops::function::FnOnce::call_once
    1183:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    1184:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    1185:  ---- browser_version_download_test::case_4 stdout ----
    1186:  thread 'browser_version_download_test::case_4' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    1187:  Unexpected failure.
    ...
    
    1233:  \"message\": \"Downloading firefox 124.0.1 from https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.pkg\"
    1234:  },
    1235:  {
    1236:  \"level\": \"WARN\",
    1237:  \"timestamp\": 1711468460,
    1238:  \"message\": \"Expected firefox path does not exists: /Users/runner/.cache/selenium/firefox/mac64/124.0.1/Firefox.app/Contents/MacOS/firefox\"
    1239:  },
    1240:  {
    1241:  \"level\": \"ERROR\",
    ...
    
    1257:  }```
    1258:  stderr=""
    1259:  stack backtrace:
    1260:  0: rust_begin_unwind
    1261:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    1262:  1: core::panicking::panic_fmt
    1263:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    1264:  2: core::panicking::panic_display
    1265:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    1266:  4: assert_cmd::assert::AssertError::panic
    ...
    
    1271:  9: integration_tests_browser_download_tests::browser_version_download_test::case_4
    1272:  10: integration_tests_browser_download_tests::browser_version_download_test::case_4::{{closure}}
    1273:  11: core::ops::function::FnOnce::call_once
    1274:  12: core::ops::function::FnOnce::call_once
    1275:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    1276:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    1277:  ---- browser_version_download_test::case_3 stdout ----
    1278:  thread 'browser_version_download_test::case_3' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    1279:  Unexpected failure.
    ...
    
    1325:  \"message\": \"Downloading firefox 124.0.1 from https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.pkg\"
    1326:  },
    1327:  {
    1328:  \"level\": \"WARN\",
    1329:  \"timestamp\": 1711468462,
    1330:  \"message\": \"Expected firefox path does not exists: /Users/runner/.cache/selenium/firefox/mac64/124.0.1/Firefox.app/Contents/MacOS/firefox\"
    1331:  },
    1332:  {
    1333:  \"level\": \"ERROR\",
    ...
    
    1349:  }```
    1350:  stderr=""
    1351:  stack backtrace:
    1352:  0: rust_begin_unwind
    1353:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    1354:  1: core::panicking::panic_fmt
    1355:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    1356:  2: core::panicking::panic_display
    1357:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    1358:  4: assert_cmd::assert::AssertError::panic
    ...
    
    1363:  9: integration_tests_browser_download_tests::browser_version_download_test::case_3
    1364:  10: integration_tests_browser_download_tests::browser_version_download_test::case_3::{{closure}}
    1365:  11: core::ops::function::FnOnce::call_once
    1366:  12: core::ops::function::FnOnce::call_once
    1367:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    1368:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    1369:  ---- browser_version_download_test::case_5 stdout ----
    1370:  thread 'browser_version_download_test::case_5' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    1371:  Unexpected failure.
    ...
    
    1417:  \"message\": \"Downloading firefox 124.0.1 from https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.pkg\"
    1418:  },
    1419:  {
    1420:  \"level\": \"WARN\",
    1421:  \"timestamp\": 1711468465,
    1422:  \"message\": \"Expected firefox path does not exists: /Users/runner/.cache/selenium/firefox/mac64/124.0.1/Firefox.app/Contents/MacOS/firefox\"
    1423:  },
    1424:  {
    1425:  \"level\": \"ERROR\",
    ...
    
    1441:  }```
    1442:  stderr=""
    1443:  stack backtrace:
    1444:  0: rust_begin_unwind
    1445:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    1446:  1: core::panicking::panic_fmt
    1447:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    1448:  2: core::panicking::panic_display
    1449:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    1450:  4: assert_cmd::assert::AssertError::panic
    ...
    
    1484:  {
    1485:  "level": "WARN",
    1486:  "timestamp": 1711468471,
    1487:  "message": "Expected edge path does not exists: /Users/runner/.cache/selenium/edge/mac64/122.0.2365.92/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"
    1488:  },
    1489:  {
    1490:  "level": "WARN",
    1491:  "timestamp": 1711468471,
    1492:  "message": "There was an error managing msedgedriver (edge 122 cannot be downloaded); using driver found in the cache"
    ...
    
    1505:  "result": {
    1506:  "code": 0,
    1507:  "message": "/Users/runner/.cache/selenium/msedgedriver/mac64/121.0.2277.128/msedgedriver",
    1508:  "driver_path": "/Users/runner/.cache/selenium/msedgedriver/mac64/121.0.2277.128/msedgedriver",
    1509:  "browser_path": ""
    1510:  }
    1511:  }
    1512:  thread 'browser_latest_download_test::case_3' panicked at rust/tests/common.rs:47:5:
    1513:  assertion failed: browser_path.exists()
    ...
    
    1527:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    1528:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    1529:  failures:
    1530:  browser_latest_download_test::case_2
    1531:  browser_latest_download_test::case_3
    1532:  browser_version_download_test::case_3
    1533:  browser_version_download_test::case_4
    1534:  browser_version_download_test::case_5
    1535:  test result: FAILED. 4 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 55.65s
    1536:  ================================================================================
    1537:  ==================== Test output for //rust:integration_tests/browser_download_tests:
    1538:  running 9 tests
    1539:  test browser_latest_download_test::case_1 ... ok
    1540:  test browser_version_download_test::case_1 ... ok
    1541:  test browser_version_download_test::case_2 ... ok
    1542:  test browser_latest_download_test::case_2 ... FAILED
    1543:  test browser_version_download_test::case_4 ... FAILED
    1544:  test browser_version_download_test::case_6 ... ok
    1545:  test browser_version_download_test::case_5 ... FAILED
    1546:  test browser_version_download_test::case_3 ... FAILED
    1547:  test browser_latest_download_test::case_3 ... FAILED
    1548:  failures:
    1549:  ---- browser_latest_download_test::case_2 stdout ----
    1550:  thread 'browser_latest_download_test::case_2' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    1551:  Unexpected failure.
    ...
    
    1572:  \"message\": \"Downloading firefox 124.0.1 from https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.pkg\"
    1573:  },
    1574:  {
    1575:  \"level\": \"WARN\",
    1576:  \"timestamp\": 1711468497,
    1577:  \"message\": \"Expected firefox path does not exists: /Users/runner/.cache/selenium/firefox/mac64/124.0.1/Firefox.app/Contents/MacOS/firefox\"
    1578:  },
    1579:  {
    1580:  \"level\": \"ERROR\",
    ...
    
    1597:  }```
    1598:  stderr=""
    1599:  stack backtrace:
    1600:  0: rust_begin_unwind
    1601:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    1602:  1: core::panicking::panic_fmt
    1603:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    1604:  2: core::panicking::panic_display
    1605:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    1606:  4: assert_cmd::assert::AssertError::panic
    ...
    
    1611:  9: integration_tests_browser_download_tests::browser_latest_download_test::case_2
    1612:  10: integration_tests_browser_download_tests::browser_latest_download_test::case_2::{{closure}}
    1613:  11: core::ops::function::FnOnce::call_once
    1614:  12: core::ops::function::FnOnce::call_once
    1615:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    1616:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    1617:  ---- browser_version_download_test::case_4 stdout ----
    1618:  thread 'browser_version_download_test::case_4' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    1619:  Unexpected failure.
    ...
    
    1665:  \"message\": \"Downloading firefox 124.0.1 from https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.pkg\"
    1666:  },
    1667:  {
    1668:  \"level\": \"WARN\",
    1669:  \"timestamp\": 1711468500,
    1670:  \"message\": \"Expected firefox path does not exists: /Users/runner/.cache/selenium/firefox/mac64/124.0.1/Firefox.app/Contents/MacOS/firefox\"
    1671:  },
    1672:  {
    1673:  \"level\": \"ERROR\",
    ...
    
    1689:  }```
    1690:  stderr=""
    1691:  stack backtrace:
    1692:  0: rust_begin_unwind
    1693:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    1694:  1: core::panicking::panic_fmt
    1695:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    1696:  2: core::panicking::panic_display
    1697:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    1698:  4: assert_cmd::assert::AssertError::panic
    ...
    
    1703:  9: integration_tests_browser_download_tests::browser_version_download_test::case_4
    1704:  10: integration_tests_browser_download_tests::browser_version_download_test::case_4::{{closure}}
    1705:  11: core::ops::function::FnOnce::call_once
    1706:  12: core::ops::function::FnOnce::call_once
    1707:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    1708:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    1709:  ---- browser_version_download_test::case_5 stdout ----
    1710:  thread 'browser_version_download_test::case_5' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    1711:  Unexpected failure.
    ...
    
    1757:  \"message\": \"Downloading firefox 124.0.1 from https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.pkg\"
    1758:  },
    1759:  {
    1760:  \"level\": \"WARN\",
    1761:  \"timestamp\": 1711468515,
    1762:  \"message\": \"Expected firefox path does not exists: /Users/runner/.cache/selenium/firefox/mac64/124.0.1/Firefox.app/Contents/MacOS/firefox\"
    1763:  },
    1764:  {
    1765:  \"level\": \"ERROR\",
    ...
    
    1781:  }```
    1782:  stderr=""
    1783:  stack backtrace:
    1784:  0: rust_begin_unwind
    1785:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    1786:  1: core::panicking::panic_fmt
    1787:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    1788:  2: core::panicking::panic_display
    1789:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    1790:  4: assert_cmd::assert::AssertError::panic
    ...
    
    1795:  9: integration_tests_browser_download_tests::browser_version_download_test::case_5
    1796:  10: integration_tests_browser_download_tests::browser_version_download_test::case_5::{{closure}}
    1797:  11: core::ops::function::FnOnce::call_once
    1798:  12: core::ops::function::FnOnce::call_once
    1799:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    1800:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    1801:  ---- browser_version_download_test::case_3 stdout ----
    1802:  thread 'browser_version_download_test::case_3' panicked at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5:
    1803:  Unexpected failure.
    ...
    
    1849:  \"message\": \"Downloading firefox 124.0.1 from https://ftp.mozilla.org/pub/firefox/releases/124.0.1/mac/en-US/Firefox%20124.0.1.pkg\"
    1850:  },
    1851:  {
    1852:  \"level\": \"WARN\",
    1853:  \"timestamp\": 1711468520,
    1854:  \"message\": \"Expected firefox path does not exists: /Users/runner/.cache/selenium/firefox/mac64/124.0.1/Firefox.app/Contents/MacOS/firefox\"
    1855:  },
    1856:  {
    1857:  \"level\": \"ERROR\",
    ...
    
    1873:  }```
    1874:  stderr=""
    1875:  stack backtrace:
    1876:  0: rust_begin_unwind
    1877:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/std/src/panicking.rs:647:5
    1878:  1: core::panicking::panic_fmt
    1879:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/panicking.rs:72:14
    1880:  2: core::panicking::panic_display
    1881:  3: assert_cmd::assert::AssertError::panic::panic_cold_display
    1882:  4: assert_cmd::assert::AssertError::panic
    ...
    
    1916:  {
    1917:  "level": "WARN",
    1918:  "timestamp": 1711468526,
    1919:  "message": "Expected edge path does not exists: /Users/runner/.cache/selenium/edge/mac64/122.0.2365.92/Microsoft Edge.app/Contents/MacOS/Microsoft Edge"
    1920:  },
    1921:  {
    1922:  "level": "WARN",
    1923:  "timestamp": 1711468526,
    1924:  "message": "There was an error managing msedgedriver (edge 122 cannot be downloaded); using driver found in the cache"
    ...
    
    1937:  "result": {
    1938:  "code": 0,
    1939:  "message": "/Users/runner/.cache/selenium/msedgedriver/mac64/121.0.2277.128/msedgedriver",
    1940:  "driver_path": "/Users/runner/.cache/selenium/msedgedriver/mac64/121.0.2277.128/msedgedriver",
    1941:  "browser_path": ""
    1942:  }
    1943:  }
    1944:  thread 'browser_latest_download_test::case_3' panicked at rust/tests/common.rs:47:5:
    1945:  assertion failed: browser_path.exists()
    ...
    
    1959:  at /rustc/aedd173a2c086e558c2b66d3743b344f977621a7/library/core/src/ops/function.rs:250:5
    1960:  note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    1961:  failures:
    1962:  browser_latest_download_test::case_2
    1963:  browser_latest_download_test::case_3
    1964:  browser_version_download_test::case_3
    1965:  browser_version_download_test::case_4
    1966:  browser_version_download_test::case_5
    1967:  test result: FAILED. 4 passed; 5 failed; 0 ignored; 0 measured; 0 filtered out; finished in 54.61s
    1968:  ================================================================================
    1969:  �[32mINFO: �[0mElapsed time: 239.126s, Critical Path: 171.60s
    1970:  �[32mINFO: �[0m585 processes: 363 disk cache hit, 216 internal, 6 local.
    1971:  �[32mINFO: �[0mBuild completed, 1 test FAILED, 585 total actions
    ...
    
    1997:  //rust:integration_tests/timeout_tests                          �[0m�[32m(cached) PASSED�[0m in 0.1s
    1998:  //rust:integration_tests/timeout_tests-fmt                      �[0m�[32m(cached) PASSED�[0m in 0.1s
    1999:  //rust:integration_tests/webview_tests                          �[0m�[32m(cached) PASSED�[0m in 6.6s
    2000:  //rust:integration_tests/webview_tests-fmt                      �[0m�[32m(cached) PASSED�[0m in 0.1s
    2001:  //rust:selenium-manager-fmt                                     �[0m�[32m(cached) PASSED�[0m in 0.2s
    2002:  //rust:selenium_manager-fmt                                     �[0m�[32m(cached) PASSED�[0m in 0.5s
    2003:  //rust:unit                                                     �[0m�[32m(cached) PASSED�[0m in 0.1s
    2004:  //rust:unit-fmt                                                 �[0m�[32m(cached) PASSED�[0m in 0.5s
    2005:  //rust:integration_tests/browser_download_tests                          �[0m�[31m�[1mFAILED�[0m in 3 out of 3 in 60.2s
    2006:  Stats over 3 runs: max = 60.2s, min = 54.7s, avg = 56.9s, dev = 2.4s
    2007:  /Users/runner/.bazel/execroot/selenium/bazel-out/darwin_x86_64-fastbuild/testlogs/rust/integration_tests/browser_download_tests/test.log
    2008:  /Users/runner/.bazel/execroot/selenium/bazel-out/darwin_x86_64-fastbuild/testlogs/rust/integration_tests/browser_download_tests/test_attempts/attempt_1.log
    2009:  /Users/runner/.bazel/execroot/selenium/bazel-out/darwin_x86_64-fastbuild/testlogs/rust/integration_tests/browser_download_tests/test_attempts/attempt_2.log
    2010:  Executed 1 out of 34 tests: 33 tests pass and �[0m�[31m�[1m1 fails locally�[0m.
    2011:  There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
    2012:  �[0m
    2013:  ##[error]Process completed with exit code 3.
    

    ✨ CI feedback usage guide:

    The CI feedback tool (/checks) automatically triggers when a PR has a failed check.
    The tool analyzes the failed checks and provides several feedbacks:

    • Failed stage
    • Failed test name
    • Failure summary
    • Relevant error logs

    In addition to being automatically triggered, the tool can also be invoked manually by commenting on a PR:

    /checks "https://github.com/{repo_name}/actions/runs/{run_number}/job/{job_number}"
    

    where {repo_name} is the name of the repository, {run_number} is the run number of the failed check, and {job_number} is the job number of the failed check.

    Configuration options

    • enable_auto_checks_feedback - if set to true, the tool will automatically provide feedback when a check is failed. Default is true.
    • excluded_checks_list - a list of checks to exclude from the feedback, for example: ["check1", "check2"]. Default is an empty list.
    • enable_help_text - if set to true, the tool will provide a help message with the feedback. Default is true.
    • persistent_comment - if set to true, the tool will overwrite a previous checks comment with the new feedback. Default is true.
    • final_update_message - if persistent_comment is true and updating a previous checks message, the tool will also create a new message: "Persistent checks updated to latest commit". Default is true.

    See more information about the checks tool in the docs.

    Copy link
    Member

    @diemol diemol left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    Now, the build is failing. Could you please have a look when you have time, @bonigarcia?

    @bonigarcia
    Copy link
    Member Author

    Now, the build is failing. Could you please have a look when you have time, @bonigarcia?

    I have reviewed the failures, but I don't know the causes.

    First, the Windows build is failing before starting the tests. The error is:

    error: linking with `C:/Program Files/Microsoft Visual Studio/2022/Enterprise/VC/Tools/MSVC/14.39.33519/bin/HostX64/x64/link.exe` failed: exit code: 1181
    

    I searched for this problem, and it might be a toolchain issue:

    https://stackoverflow.com/questions/57178691/rust-link-failed-with-exit-code-1181
    https://stackoverflow.com/questions/55603111/unable-to-compile-rust-hello-world-on-windows-linker-link-exe-not-found/

    Second, a couple of tests are failing in macOS: (1) The test that downloads the latest version of Firefox and (2) The test that downloads the late version of Edge.

    Unfortunately, I cannot reproduce it in my MacOS VM. Both tests execute correctly.

    @diemol: Can you please try the following on your Mac?

    cd selenium/rust
    cargo run -- --debug --browser firefox --force-browser-download
    cargo run -- --debug --browser edge --force-browser-download
    

    @bonigarcia bonigarcia force-pushed the sm_rpm_fix branch 2 times, most recently from 9a9ef7c to 64d399e Compare March 25, 2024 23:47
    @bonigarcia
    Copy link
    Member Author

    Regarding the Windows build, I have bumped the toolchain version, and with PR #13735, it is green again:

    https://github.com/SeleniumHQ/selenium/actions/runs/8428684771

    But I still don't know why the Firefox and Edge download tests are failing in CI-macOS.

    @diemol
    Copy link
    Member

    diemol commented Mar 26, 2024

    This is the command output on my M1

    ❯ cargo run -- --debug --browser firefox --force-browser-download
       Compiling selenium-manager v0.4.19-nightly (/Users/diegomolina/projects/github.com/seleniumhq/selenium/rust)
        Finished dev [unoptimized + debuginfo] target(s) in 3.25s
         Running `target/debug/selenium-manager --debug --browser firefox --force-browser-download`
    [2024-03-26T09:36:51.155Z DEBUG] geckodriver not found in PATH
    [2024-03-26T09:36:51.156Z DEBUG] Required browser: firefox 124.0.1
    [2024-03-26T09:36:51.156Z DEBUG] firefox 124.0.1 already exists
    [2024-03-26T09:36:51.156Z DEBUG] firefox 124.0.1 is available at /Users/diegomolina/.cache/selenium/firefox/mac-arm64/124.0.1/Firefox.app/Contents/MacOS/firefox
    [2024-03-26T09:36:51.156Z DEBUG] Required driver: geckodriver 0.34.0
    [2024-03-26T09:36:51.156Z DEBUG] geckodriver 0.34.0 already in the cache
    [2024-03-26T09:36:51.156Z INFO ] Driver path: /Users/diegomolina/.cache/selenium/geckodriver/mac-arm64/0.34.0/geckodriver
    [2024-03-26T09:36:51.156Z INFO ] Browser path: /Users/diegomolina/.cache/selenium/firefox/mac-arm64/124.0.1/Firefox.app/Contents/MacOS/firefox
        ~/projects/github.com/seleniumhq/selenium/rust    sm_rpm_fix ············································································································································· 4s 
    ❯ cargo run -- --debug --browser edge --force-browser-download
        Finished dev [unoptimized + debuginfo] target(s) in 0.35s
         Running `target/debug/selenium-manager --debug --browser edge --force-browser-download`
    [2024-03-26T09:37:09.316Z DEBUG] Sending stats to Plausible: Props { browser: "edge", browser_version: "", os: "macos", arch: "arm64", lang: "", selenium_version: "4.19-nightly" }
    [2024-03-26T09:37:09.329Z DEBUG] msedgedriver not found in PATH
    [2024-03-26T09:37:09.330Z DEBUG] Checking edge releases on https://edgeupdates.microsoft.com/api/products/
    [2024-03-26T09:37:10.067Z DEBUG] Required browser: edge 122.0.2365.92
    [2024-03-26T09:37:10.068Z DEBUG] Downloading edge 122.0.2365.92 from https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/61b13da3-c921-482a-9166-743689310b71/MicrosoftEdge-122.0.2365.92.pkg
    [2024-03-26T09:38:39.953Z DEBUG] edge 122.0.2365.92 is available at /Users/diegomolina/.cache/selenium/edge/mac-arm64/122.0.2365.92/Microsoft Edge.app/Contents/MacOS/Microsoft Edge
    [2024-03-26T09:38:39.954Z DEBUG] Reading msedgedriver version from https://msedgedriver.azureedge.net/LATEST_RELEASE_122_MACOS
    [2024-03-26T09:38:40.161Z DEBUG] Required driver: msedgedriver 122.0.2365.92
    [2024-03-26T09:38:40.161Z DEBUG] Downloading msedgedriver 122.0.2365.92 from https://msedgedriver.azureedge.net/122.0.2365.92/edgedriver_mac64_m1.zip
    [2024-03-26T09:38:44.233Z INFO ] Driver path: /Users/diegomolina/.cache/selenium/msedgedriver/mac-arm64/122.0.2365.92/msedgedriver
    [2024-03-26T09:38:44.233Z INFO ] Browser path: /Users/diegomolina/.cache/selenium/edge/mac-arm64/122.0.2365.92/Microsoft Edge.app/Contents/MacOS/Microsoft Edge
        ~/projects/github.com/seleniumhq/selenium/rust    sm_rpm_fix ········································································································································· 1m 36s 
    ❯
    

    @diemol
    Copy link
    Member

    diemol commented Mar 26, 2024

    It is worth noting that the Edge download took quite a while, over a minute.

    @bonigarcia
    Copy link
    Member Author

    bonigarcia commented Mar 26, 2024

    Thanks for the test, @diemol. Like me, it seems to work. Now, I need to figure out why it is failing in GHA.

    Regarding the minute that lasts, I'm afraid there is nothing we can do. SM needs to download the artifact (around 300 MB) and then extract it. The data compression ratio is high, so extracting all the files/folders takes a bit.

    @diemol
    Copy link
    Member

    diemol commented Mar 26, 2024

    I don't mind it takes that long, I was only wondering if it was affecting the tests.

    @diemol diemol merged commit fbf75fd into trunk Mar 26, 2024
    20 checks passed
    @diemol diemol deleted the sm_rpm_fix branch March 26, 2024 23:07
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Status: Done
    Development

    Successfully merging this pull request may close these issues.

    [🐛 Bug]: Selenium Manager should support Edge management using RPM in Linux
    2 participants