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

Implement the Virtual Authenticator testdriver API #19579

Merged

Conversation

nsatragno
Copy link
Member

This change implements the WebAuthn Virtual Authenticator testdriver.js
API, as a 1:1 mapping to the WebDriver API [1].

[1] https://w3c.github.io/webauthn/#sctn-automation

@wpt-pr-bot wpt-pr-bot added infra testdriver.js wptrunner The automated test runner, commonly called through ./wpt run labels Oct 8, 2019
@nsatragno
Copy link
Member Author

Oops, I did not realize uploading a PR would assign reviewers and fire the CI automatically. I'll fix the python tests and lint, then report back.

@nsatragno
Copy link
Member Author

cc @jcjones

@jcjones
Copy link
Contributor

jcjones commented Oct 9, 2019

It'd be helpful to Mozilla if we could keep the existing (manual) tests while also adding these VirutalDriver-based auto-tests, until we have parity on VirtualDriver.

tools/debug Outdated Show resolved Hide resolved
@nsatragno nsatragno force-pushed the testdriver_virtual_authenticator branch from 875958a to 95fd2a1 Compare October 17, 2019 22:14
@nsatragno
Copy link
Member Author

This is ready for review @jgraham. The tests pass on chrome 79.0.3941.4 onward -- there were some minor changes to the implementation of the API on 79 that are necessary.

@foolip
Copy link
Member

foolip commented Oct 26, 2019

@LukeZielinski can you review this and see if there's anything we'd need to do in Chromium?

Copy link
Member Author

@nsatragno nsatragno left a comment

Choose a reason for hiding this comment

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

Thanks for the review! Comments below ⬇️

tools/wptrunner/wptrunner/executors/base.py Outdated Show resolved Hide resolved
tools/wptrunner/wptrunner/testdriver-extra.js Show resolved Hide resolved
Copy link
Contributor

@LukeZielinski LukeZielinski left a comment

Choose a reason for hiding this comment

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

LGTM, thanks Nina.

@LukeZielinski
Copy link
Contributor

@foolip This looks good from my end. However, the new infra test that was added here will be failing on Chrome until v79 rolls up into stable. Are we ok submitting this before that happens? This PR will need to be force-merged anyway since stability checks are timing out.

@nsatragno
Copy link
Member Author

@jcjones what do you think about temporarily adding a default implementation of test_driver.add_virtual_authenticator(...) that does nothing on firefox instead of failing, so we can run the same tests manually and avoid maintaining two test suites?

@foolip
Copy link
Member

foolip commented Oct 31, 2019

@foolip This looks good from my end. However, the new infra test that was added here will be failing on Chrome until v79 rolls up into stable. Are we ok submitting this before that happens? This PR will need to be force-merged anyway since stability checks are timing out.

Yeah it's fine if infra tests are failing as long as it's just due to a missing implementation and it doesn't point to lots of other tests failing for spurious reasons.

@nsatragno
Copy link
Member Author

@foolip can we merge this now? We can take care of the outstanding comment in a follow-up, if needed.

@foolip
Copy link
Member

foolip commented Nov 7, 2019

Sorry for the delay. I see that "infrastructure/ tests" is still failing on Taskcluster. @LukeZielinski can you help with how to update the expectations to make this pass?

@nsatragno FYI the infrastructure/ tests aren't expected to always pass on all browsers, but we maintain expectations for them (unlike the rest of WPT) so that regressions that would affect lots of tests don't go unnoticed.

@foolip
Copy link
Member

foolip commented Nov 7, 2019

@stephenmcgruer FYI, this is both an example of the sort of test automation addition that we need to be smooth and not double work to make work in Chromium and WPT, and it also illustrates why we need to get a handle on the CI setup in WPT – it's hard to understand failures in Taskcluster and not always clear which tasks we might accept to fail and admin merge.

@LukeZielinski
Copy link
Contributor

@nsatragno FYI the infrastructure/ tests aren't expected to always pass on all browsers, but we maintain expectations for them (unlike the rest of WPT) so that regressions that would affect lots of tests don't go unnoticed.

@foolip Earlier in this thread (here) it sounded like we were ok with the failing infra test because it would fix itself when Chrome 79 showed up. We could make it pass via the expectations in this PR, but then we'd have to change them again for Chrome 79. So I was leaning towards just letting this go through.

@foolip
Copy link
Member

foolip commented Nov 7, 2019

That it fails is OK, but expectations have to match or every PR touching tools/ and resources/ will fail these tests and need to be admin merged.

When Chrome 79 is released the expectations will be wrong and PRs will start failing, see #14456 for the issue and #19386 for a suggested solution.

@nsatragno nsatragno force-pushed the testdriver_virtual_authenticator branch from ef9f4b7 to dca47d2 Compare November 7, 2019 19:56
@nsatragno
Copy link
Member Author

Looks like we took so long that the version of chrome running on taskcluster passes now! :)

@nsatragno
Copy link
Member Author

Looks like the new failures are unrelated? 🤔 @foolip

@foolip
Copy link
Member

foolip commented Nov 7, 2019

What remains is wpt-firefox-nightly-stability and wpt-chrome-dev-stability timing out because there were too many affected tests (397) and they couldn't run 10 times in the 2 hours allowed. I'll admin merge.

@foolip foolip merged commit 18921c7 into web-platform-tests:master Nov 7, 2019
@stephenmcgruer
Copy link
Contributor

This was imported into Chromium and looks like it doesn't pass there - expected? https://crbug.com/1023737

@nsatragno @LukeZielinski

@nsatragno
Copy link
Member Author

nsatragno commented Nov 12, 2019 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
debug infra testdriver.js wptrunner The automated test runner, commonly called through ./wpt run
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants