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

Regression with SECTIONs #1089

Open
joto opened this issue Nov 9, 2017 · 5 comments
Open

Regression with SECTIONs #1089

joto opened this issue Nov 9, 2017 · 5 comments

Comments

@joto
Copy link

joto commented Nov 9, 2017

Description

I have a problem with some cases where SECTIONs are used. It looks like in addition to running each of the sections there is one run that goes through neither of the sections. This wasn't the case in Catch 1 and it also works on most systems on Catch 2, but on one system I see test failures because of that. The only difference I can see so far is that failing system is a 32bit Linux, everything else is 64 bit. Maybe I can dig some more, but wanted to raise this here in case somebody has an idea what it could be.

@philsquared
Copy link
Collaborator

@joto
Copy link
Author

joto commented Nov 9, 2017

When I run the tests by themselves, all is fine. So, yes, this could be the case you mentioned. But this used to work in Catch1, so I am not sure this is the fault of libc++. Something must have changed recently.

Seems I had problems with sections and exceptions before: #552.

@horenmar
Copy link
Member

horenmar commented Nov 9, 2017

We did make one change in this - we found out that for libcxxrt we can fix the bug by using std::rethrow_exception(std::current_exception()) instead of throw;, so Catch now uses only the former way of rethrowing exceptions.


Newer version of libcxxrt have finally fixed this bug.

@joto
Copy link
Author

joto commented Nov 10, 2017

I guess you are talking about #1028 and the fix for that in 70e0d48. If I revert that commit, the problem goes away for me.

Only idea I have is that there could be some difference due to std::current_exception being allowed to either return a reference to the exception or a copy of it.

joto added a commit to mapbox/vtzero that referenced this issue Nov 14, 2017
…r it."

This reverts commit 00e0972.

Some systems don't work with Catch2. See
catchorg/Catch2#1089.
@acidtonic
Copy link

I just spent hours debugging this.... Same issue for me.

I am lining up client/server tests by spawning threads and I have matching sections for both sides....

Now my tests fail because the client skipped all sections and never tried to connect. Server path didn't skip any sections and is stuck on infinite listen(). Eventually adding variables to indicate which sections were hit showed all were skipped.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants