<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/internal/catch_test_case_registry_impl.cpp, branch feature/native-property-engine</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>Move-enable createShard</title>
<updated>2026-09-06T18:46:11+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-09-06T18:46:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=15db9be53067d66ecd11a7ddd3097d412047130a'/>
<id>15db9be53067d66ecd11a7ddd3097d412047130a</id>
<content type='text'>
This is _technically_ a performance improvement, but in actuality
it is a tiny cleanup so it stops bothering me.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is _technically_ a performance improvement, but in actuality
it is a tiny cleanup so it stops bothering me.
</pre>
</div>
</content>
</entry>
<entry>
<title>Faster check for duplicated test cases</title>
<updated>2026-09-06T18:08:25+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-09-06T17:02:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=5fe473f202a322ab10ee10bf64fcae63593286cf'/>
<id>5fe473f202a322ab10ee10bf64fcae63593286cf</id>
<content type='text'>
By avoiding `std::set`, we save 1 allocation per checked test case,
and the sort + pairwise check has much nicer cache behaviour, leading
to much faster check.

Overall, the check is only a tiny part of the startup overhead, but
the improvement is large enough that it ends up measurable in binaries
with many tests (e.g. `SelfTest`).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By avoiding `std::set`, we save 1 allocation per checked test case,
and the sort + pairwise check has much nicer cache behaviour, leading
to much faster check.

Overall, the check is only a tiny part of the startup overhead, but
the improvement is large enough that it ends up measurable in binaries
with many tests (e.g. `SelfTest`).
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't store extra copy of all `TestCaseInfo*` in `TestRegistry`</title>
<updated>2026-08-22T21:28:11+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-08-22T21:28:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ef3a728265292e6a1dbec727b0099d3d8b3f6420'/>
<id>ef3a728265292e6a1dbec727b0099d3d8b3f6420</id>
<content type='text'>
We used to store a full vector of "views" of the registered test infos,
so that it can be retrieved externally. However, the only user of that
interface left was `Session`, specifically `Session::applyFilenameAsTags`.

By moving the adding of the filename tags into the `ITestCaseRegistry`
interface, we avoid storing the vector and make the initial test registration
faster.

The new code is ugly and shows a design/layering issue, but no worse than
the previous approach did.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We used to store a full vector of "views" of the registered test infos,
so that it can be retrieved externally. However, the only user of that
interface left was `Session`, specifically `Session::applyFilenameAsTags`.

By moving the adding of the filename tags into the `ITestCaseRegistry`
interface, we avoid storing the vector and make the initial test registration
faster.

The new code is ugly and shows a design/layering issue, but no worse than
the previous approach did.
</pre>
</div>
</content>
</entry>
<entry>
<title>Preallocate test case vectors in TestRegistry</title>
<updated>2026-08-22T18:42:23+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-08-21T15:37:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9915f7250dcfc2c7bbd9e86c83b29438df39d856'/>
<id>9915f7250dcfc2c7bbd9e86c83b29438df39d856</id>
<content type='text'>
Preallocating to some reasonable and small number of tests avoids
much of the geometric-reallocation threashing at low sizes, without
taking up too much memory for tiny test binaries.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Preallocating to some reasonable and small number of tests avoids
much of the geometric-reallocation threashing at low sizes, without
taking up too much memory for tiny test binaries.
</pre>
</div>
</content>
</entry>
<entry>
<title>Explicitly outline TestRegistry destructor into .cpp file</title>
<updated>2024-04-08T11:57:59+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-04-08T11:57:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=cd8f97e6c7f6aaf332992f83bf9d7ee7f357f85e'/>
<id>cd8f97e6c7f6aaf332992f83bf9d7ee7f357f85e</id>
<content type='text'>
This fixes compilation issue with C++23 mode against libstdc++.

Closes #2852
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes compilation issue with C++23 mode against libstdc++.

Closes #2852
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup includes in sources</title>
<updated>2023-12-23T10:23:32+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-12-21T17:42:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9aadc3a53d7208f8b44260dfef26b18671f7edd0'/>
<id>9aadc3a53d7208f8b44260dfef26b18671f7edd0</id>
<content type='text'>
Mainly just removes some unused includes, but sometimes the include
is replaced by a smaller header instead.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Mainly just removes some unused includes, but sometimes the include
is replaced by a smaller header instead.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Wredundant-decls</title>
<updated>2023-05-12T07:51:13+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-05-12T07:50:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=598895d04866c6e85f1d703a8c3d89e8d38a2311'/>
<id>598895d04866c6e85f1d703a8c3d89e8d38a2311</id>
<content type='text'>
Closes #2682
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #2682
</pre>
</div>
</content>
</entry>
<entry>
<title>Reduce internal includes</title>
<updated>2023-03-20T18:24:52+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-03-14T22:00:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=62167d756e13d8f053b397c07f1192d8e308f2c5'/>
<id>62167d756e13d8f053b397c07f1192d8e308f2c5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for PlayStation platforms (#2562)</title>
<updated>2022-11-09T13:47:55+00:00</updated>
<author>
<name>Masashi Fujita</name>
</author>
<published>2022-11-09T13:47:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=b7f4a2efb808e8d154874e168cec8e0aaf70bd06'/>
<id>b7f4a2efb808e8d154874e168cec8e0aaf70bd06</id>
<content type='text'>
* Add new `CATCH_CONFIG` option for using `std::getenv`, because PS does not support env vars
* Add PS to platforms that have disabled posix signals.
* Small workaround for PS toolchain bug that prevents it from compiling `std::set` with lambda based comparator.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add new `CATCH_CONFIG` option for using `std::getenv`, because PS does not support env vars
* Add PS to platforms that have disabled posix signals.
* Small workaround for PS toolchain bug that prevents it from compiling `std::set` with lambda based comparator.</pre>
</div>
</content>
</entry>
<entry>
<title>Fix references to license file</title>
<updated>2022-10-28T09:30:15+00:00</updated>
<author>
<name>Lars Toenning</name>
</author>
<published>2022-10-28T09:22:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f1084fb30990fe40c8f5b70034970c7eb4e1da72'/>
<id>f1084fb30990fe40c8f5b70034970c7eb4e1da72</id>
<content type='text'>
The license file was renamed with 6a502cc2f5fedd59b3495b58708f0d6d987ed9e1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The license file was renamed with 6a502cc2f5fedd59b3495b58708f0d6d987ed9e1
</pre>
</div>
</content>
</entry>
</feed>
