<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3, branch v3.9.1</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>v3.9.1</title>
<updated>2025-08-08T22:30:23+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-08T22:30:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=644821ce28cb25d7992a4d0375b1d83214392592'/>
<id>644821ce28cb25d7992a4d0375b1d83214392592</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add tests for comparing &amp; stringifying volatile pointers</title>
<updated>2025-08-07T22:02:33+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-07T22:02:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=03c62cdf2ede08ee759008637adf5d8e5581b77b'/>
<id>03c62cdf2ede08ee759008637adf5d8e5581b77b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Refactor CATCH_TRAP selection logic to prefer compiler-specific impls</title>
<updated>2025-08-07T22:01:38+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-07T16:17:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9a3d68315b92ea00dc7f85966774ffea57432cc0'/>
<id>9a3d68315b92ea00dc7f85966774ffea57432cc0</id>
<content type='text'>
Primarily this means that with Clang we use `__builtin_debugtrap`
if available.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Primarily this means that with Clang we use `__builtin_debugtrap`
if available.
</pre>
</div>
</content>
</entry>
<entry>
<title>Update generators.md</title>
<updated>2025-08-06T17:31:42+00:00</updated>
<author>
<name>Andrew Auclair</name>
</author>
<published>2025-08-05T17:13:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=bcd4116df7569d90792bf07710a4c533a193e723'/>
<id>bcd4116df7569d90792bf07710a4c533a193e723</id>
<content type='text'>
Break specific purpose generators into random and range generator sections.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Break specific purpose generators into random and range generator sections.</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup WIP changes from last commit</title>
<updated>2025-08-02T08:21:41+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-02T08:21:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9b3f508a1b1579f5366cf83d19822cb395f23528'/>
<id>9b3f508a1b1579f5366cf83d19822cb395f23528</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Catch exceptions from StringMakers inside Detail::stringify</title>
<updated>2025-08-02T08:11:52+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-01T21:23:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=c5e0ef4e67639e6001dc6f24b210ee9b1f0a7c1f'/>
<id>c5e0ef4e67639e6001dc6f24b210ee9b1f0a7c1f</id>
<content type='text'>
This stops tests failing falsely if the assertion passed, but the
stringification itself failed as the assertion was sent to the reporter.

I don't think that stringification should be fallible, but the
overhead in compilation ended up being small enough (&lt;0.5% on `SelfTest`)
that it might be worth implementing, in case there is more users
with weird `StringMaker`s than just MongoDB.

Closes #2980
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This stops tests failing falsely if the assertion passed, but the
stringification itself failed as the assertion was sent to the reporter.

I don't think that stringification should be fallible, but the
overhead in compilation ended up being small enough (&lt;0.5% on `SelfTest`)
that it might be worth implementing, in case there is more users
with weird `StringMaker`s than just MongoDB.

Closes #2980
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix StringMaker for time_point&lt;system_clock&gt; with non-default duration</title>
<updated>2025-08-02T06:31:34+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-08-01T21:00:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=17fe5eaa5c0c28e7a6a197420f0f16b085a8fa9a'/>
<id>17fe5eaa5c0c28e7a6a197420f0f16b085a8fa9a</id>
<content type='text'>
Fixes #2685
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #2685
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix warning in `catch_unique_ptr::bool()`</title>
<updated>2025-08-01T22:15:06+00:00</updated>
<author>
<name>Tim Lyon</name>
</author>
<published>2025-08-01T15:34:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=fbfd13501ca288e5ffeb725328827786abb99d23'/>
<id>fbfd13501ca288e5ffeb725328827786abb99d23</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add enum types to what is captured by value by default</title>
<updated>2025-07-30T18:20:38+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-07-29T21:51:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ccabd4de891e749f472121497941bb9437b83c2e'/>
<id>ccabd4de891e749f472121497941bb9437b83c2e</id>
<content type='text'>
As it turns out, enums can be used to declare bitfields, and we
cannot form a reference to a bitfield in the cpature. Thus, we add
`std::is_enum` as a criteria to the default for `capture_by_value`,
so that enum-based bitfields are also captured by value and thus
decomposable.

Closes #3001
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As it turns out, enums can be used to declare bitfields, and we
cannot form a reference to a bitfield in the cpature. Thus, we add
`std::is_enum` as a criteria to the default for `capture_by_value`,
so that enum-based bitfields are also captured by value and thus
decomposable.

Closes #3001
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't follow __assume(false) with std::terminate in NDEBUG builds</title>
<updated>2025-07-28T09:03:46+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-07-28T09:03:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a1c7ee115f17c1e83b382f33ef2614070974626f'/>
<id>a1c7ee115f17c1e83b382f33ef2614070974626f</id>
<content type='text'>
Having `std::terminate` as the backstop after `__assume(false)`
would trigger W4702 (unreachable code) with MSVC. As we want to
keep `__assume(false)` for the optimization hint in NDEBUG builds,
we have to avoid mixing in `std::terminate` for those builds.

Fixes #3007
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Having `std::terminate` as the backstop after `__assume(false)`
would trigger W4702 (unreachable code) with MSVC. As we want to
keep `__assume(false)` for the optimization hint in NDEBUG builds,
we have to avoid mixing in `std::terminate` for those builds.

Fixes #3007
</pre>
</div>
</content>
</entry>
</feed>
