-
-
Notifications
You must be signed in to change notification settings - Fork 8.5k
[rust] Test Selenium Manager on Linux arm64 #16045
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
base: trunk
Are you sure you want to change the base?
[rust] Test Selenium Manager on Linux arm64 #16045
Conversation
Now that GitHub-hosted Linux arm64 runners are available, we can start using them to test the Selenium Manager code.
Currently, only Firefox and Geckodriver have official support for Linux arm64. This commit ensures that the Selenium Manager test suite passes on this platform, by skipping tests on non- Firefox browsers.
PR Reviewer Guide 🔍Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Explore these optional code suggestions:
|
Thanks. I'll leave code review for someone who knows rust. But I'm a little confused...
I thought we weren't building Selenium Manager on ARM. Were you running the linux64 binaries through QEMU or something? Does this PR enable building Selenium Manager for arm64, or just handle the situation when trying to run the linux64 binaries on arm64? If the former, don't we need to update the various bindings and packaging to accommodate this? ... or is this just a step towards enabling Selenium on ARM64? |
Sorry for the confusion here.
Indeed. There have been no Selenium Manager builds for ARM. This PR is a step towards enabling Selenium on ARM64. The reason I mentioned This PR will at least ensure that users of Linux arm64 can use Firefox, which has official binaries for this platform 👍🏼 whenever Edge and Chrome start publishing native binaries too, they can be added through a follow-up PR. |
OK... that makes sense, but it's probably more appropriate to make these changes if/when we start building SM for ARM since these code paths won't be tested or used until then. |
With regards to testing, that's why I added https://github.com/SeleniumHQ/selenium/pull/16045/files#diff-5162db340096b281e8c77ef016f0595e9b7a63e9cb48605a43b685301b4b5ee0R38 so that it will start running the tests on native Linux arm64 runners. GitHub released those in Public Preview in January of this year, and quite some open source projects have started using them already. I was hoping - by just adding the testing part to CI for now - that the team can at least be confident that the code will work on Linux arm64, and leave the actual builds/publishing for a follow-up PR. But happy to look into that part as well if helpful. |
User description
🔗 Related Issues
#15801
💥 What does this PR do?
This PR ensures that the Selenium Manager test suite passes on Linux arm64, and enables CI tests for this platform through GitHub's recently released Linux arm64 runners.
🔧 Implementation Notes
I'm new to Rust, but wanted Selenium Manager to explicitly fail if users try to run it for Chrome or Edge on Linux arm64, since it's not supported. Previously, the code would silently download
linux64
binaries which are for Linux x64, and cause segfaults on Linux arm64.The setup I went for at least ensures that Firefox/Geckodriver on Linux arm64 will work and are tested properly as well.
💡 Additional Considerations
🔄 Types of changes
PR Type
Enhancement
Description
Add Linux ARM64 support for Selenium Manager
Enable CI testing on GitHub's ARM64 runners
Restrict Chrome/Edge to Firefox-only on ARM64
Update test suite for ARM64 compatibility
Changes diagram
Changes walkthrough 📝
2 files
Add ARM64 unsupported error for Chrome
Add ARM64 unsupported error for Edge
11 files
Skip non-Firefox tests on ARM64
Skip non-Firefox browser tests on ARM64
Disable cache tests on ARM64
Skip non-Firefox config tests on ARM64
Skip non-Firefox driver tests on ARM64
Use Firefox for ARM64 mirror tests
Use Firefox for ARM64 offline tests
Use Firefox for ARM64 output tests
Use Firefox for ARM64 proxy tests
Skip non-Firefox stable tests on ARM64
Disable webview tests on ARM64
1 files
Add ARM64 detection helper function
1 files
Add Ubuntu ARM64 runner to CI