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

Fix idlharness timeout when enumerability checks fail #24363

Merged

Conversation

ricea
Copy link
Contributor

@ricea ricea commented Jun 26, 2020

Exceptions caused by failed enumerability asserts were not caught,
causing the test to neither fail nor done() to be called, resulting in
the test timing out.

Use step_func() to ensure exceptions from these asserts() are caught.

Exceptions caused by failed enumerability asserts were not caught,
causing the test to neither fail nor done() to be called, resulting in
the test timing out.

Use step_func() to ensure exceptions from these asserts() are caught.
@ricea
Copy link
Contributor Author

ricea commented Jun 27, 2020

I don't know how to get information about what actually went wrong from the bot output. @annevk Do you know the right person to ask?

@stephenmcgruer
Copy link
Contributor

Firefox stability check timed out, feel free to ignore it. An admin can admin-merge it once its approved :).

@ricea
Copy link
Contributor Author

ricea commented Jun 29, 2020

@stephenmcgruer Would you care to review it while you're here? 😄

@annevk
Copy link
Member

annevk commented Jun 29, 2020

I don't understand why .then() isn't catching these exceptions. Isn't that the whole point of promises?

@ricea
Copy link
Contributor Author

ricea commented Jun 29, 2020

I don't understand why .then() isn't catching these exceptions. Isn't that the whole point of promises?

.then() does catch the exceptions. They get converted to rejected promises, however the rejected promises aren't handled anywhere. They don't cause the test to finish, they are just lost.

@annevk
Copy link
Member

annevk commented Jun 29, 2020

I see. This is a rather weird setup.

@jgraham can you review this?

@MattiasBuelens
Copy link
Contributor

MattiasBuelens commented Jun 29, 2020

I agree, it's weird.

I think this could be much nicer if we changed these tests to use promise_test instead of async_test (in a follow-up PR). Then do_interface_attribute_asserts could simply return a promise, and we wouldn't need to repeat this thing everywhere:

// do_interface_attribute_asserts must be the last thing we do,
// since it will call done() on a_test.
this.do_interface_attribute_asserts(self, member, a_test);

That said, I'm not very familiar with the code, so maybe I've missed something. 😅

@jgraham jgraham merged commit 6c7192b into web-platform-tests:master Jun 29, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants