<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/internal/catch_fatal_condition_handler.cpp, branch v3.0.0-preview4</title>
<subtitle>Progmasoft Catch3: an independently maintained C++17 test framework with a parallel runner, property checks, snapshots and structured results.</subtitle>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/'/>
<entry>
<title>Switch from AddVectoredExceptionHandler to SetUnhandledExceptionFilter</title>
<updated>2022-01-03T21:50:32+00:00</updated>
<author>
<name>Alan Jowett</name>
</author>
<published>2021-12-15T16:51:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=98a6c69e1e429a86140301dfa5563b1d7263e813'/>
<id>98a6c69e1e429a86140301dfa5563b1d7263e813</id>
<content type='text'>
This avoids issues with Catch2's handler firing too early, on
structured exceptions that would be handled later. This issue
meant that the old attempts at structured exception handling
were incompatible with Windows's ASan, because it throws
continuable `C0000005` exception, which it then handles.

With the new handling, Catch2 is only notified if nothing else,
including the debugger, has handled the exception.

Signed-off-by: Alan Jowett &lt;alanjo@microsoft.com&gt;

Closes #2332
Closes #2286
Closes #898
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This avoids issues with Catch2's handler firing too early, on
structured exceptions that would be handled later. This issue
meant that the old attempts at structured exception handling
were incompatible with Windows's ASan, because it throws
continuable `C0000005` exception, which it then handles.

With the new handling, Catch2 is only notified if nothing else,
including the debugger, has handled the exception.

Signed-off-by: Alan Jowett &lt;alanjo@microsoft.com&gt;

Closes #2332
Closes #2286
Closes #898
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed [dis]engage_platform declarations mismatch</title>
<updated>2021-05-09T21:34:17+00:00</updated>
<author>
<name>Matteo Beniamino</name>
</author>
<published>2021-04-13T08:46:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=baf0cd0be414ca7882cf28f3c98a9c3b808e4442'/>
<id>baf0cd0be414ca7882cf28f3c98a9c3b808e4442</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Significantly refactor fatal error handling</title>
<updated>2021-05-09T21:34:15+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2021-03-27T16:54:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=c0d0a50bdb2ae2f749443c0386c2b25379bdbf76'/>
<id>c0d0a50bdb2ae2f749443c0386c2b25379bdbf76</id>
<content type='text'>
Because new glibc has changed `MINSIGSTKSZ` to be a syscall instead
of being constant, the signal posix handling needed changes, as it
used the value in constexpr context, for deciding size of an array.
It would be simple to fix it by having the handler determine the
signal handling stack size and allocate the memory every time the
handler is being installed, but that would add another allocation
and a syscall every time a test case is entered.

Instead, I split apart the idea of preparing fatal error handlers,
and engaging them, so that the memory can be allocated only once
and still be guarded by RAII.

Also turns out that Catch2's use of `MINSIGSTKSZ` was wrong, and
we should've been using `SIGSTKSZ` the whole time, which we use now.

Closes #2178
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Because new glibc has changed `MINSIGSTKSZ` to be a syscall instead
of being constant, the signal posix handling needed changes, as it
used the value in constexpr context, for deciding size of an array.
It would be simple to fix it by having the handler determine the
signal handling stack size and allocate the memory every time the
handler is being installed, but that would add another allocation
and a syscall every time a test case is entered.

Instead, I split apart the idea of preparing fatal error handlers,
and engaging them, so that the memory can be allocated only once
and still be guarded by RAII.

Also turns out that Catch2's use of `MINSIGSTKSZ` was wrong, and
we should've been using `SIGSTKSZ` the whole time, which we use now.

Closes #2178
</pre>
</div>
</content>
</entry>
<entry>
<title>Add standardized copyright notice + SPDX identifier to source files</title>
<updated>2020-08-30T13:43:45+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-30T13:43:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=90aeffb97d6942d16f75a56b11e10fc0b010995a'/>
<id>90aeffb97d6942d16f75a56b11e10fc0b010995a</id>
<content type='text'>
This should also be done for test files, but that has lower priority.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This should also be done for test files, but that has lower priority.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove the rest of old-style copyright headers</title>
<updated>2020-08-30T12:45:05+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-30T12:41:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=c2453c2bf8278100386f7b97029fe5cc47a77755'/>
<id>c2453c2bf8278100386f7b97029fe5cc47a77755</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Small cleanup of fatal condition handler</title>
<updated>2020-04-25T12:07:50+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-04-25T12:07:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=517839fb3f7f0fd7823dadce69ab791628d1bc27'/>
<id>517839fb3f7f0fd7823dadce69ab791628d1bc27</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
