<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/catch_test_case_info.cpp, branch 0.2.0</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>Don't check tags for being special twice during test case registration</title>
<updated>2026-09-11T09:27:31+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-09-10T21:40:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=58a5f8bd8c3a40359ed96127ac976f7ddf4b8f01'/>
<id>58a5f8bd8c3a40359ed96127ac976f7ddf4b8f01</id>
<content type='text'>
Previously we would check if the tag is special to validate that it isn't
reserved, and then to actually get the test case properties. We also did
the first check in particularly terrible order, leading to a lot of wasted
work.

The new implementation does property extraction while checking validity,
and is structured to avoid as much work as possible by early checks.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously we would check if the tag is special to validate that it isn't
reserved, and then to actually get the test case properties. We also did
the first check in particularly terrible order, leading to a lot of wasted
work.

The new implementation does property extraction while checking validity,
and is structured to avoid as much work as possible by early checks.
</pre>
</div>
</content>
</entry>
<entry>
<title>Inline sort + unique for &lt;= 2 tags</title>
<updated>2026-09-11T09:27:24+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-09-09T20:42:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ee4b6eadb7f82b4a866324a3c29637d743880bcc'/>
<id>ee4b6eadb7f82b4a866324a3c29637d743880bcc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>TestCaseInfo constructor reserves vector for tags</title>
<updated>2026-09-11T09:21:24+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-09-09T20:35:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=2f03f0079fc8c7be54265386fbc26ae2f3ff10f0'/>
<id>2f03f0079fc8c7be54265386fbc26ae2f3ff10f0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</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>Sprinkle some constexpr around to make Jason happy</title>
<updated>2024-09-13T14:40:11+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-09-13T09:16:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=18df97df00848e91bfe1b63408bba19f8b8237ae'/>
<id>18df97df00848e91bfe1b63408bba19f8b8237ae</id>
<content type='text'>
Most of these will not matter in practice due to C++14 imposing
significant limitations on what else we can make constexpr, and we cannot
have references outliving the constexpr context either way.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most of these will not matter in practice due to C++14 imposing
significant limitations on what else we can make constexpr, and we cannot
have references outliving the constexpr context either way.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix OOB access when computing -# tag for file without extension</title>
<updated>2024-02-10T22:27:19+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-02-08T21:10:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=2a5de4e4476b7297e2f4e37b79ef9141a1829947'/>
<id>2a5de4e4476b7297e2f4e37b79ef9141a1829947</id>
<content type='text'>
It is unlikely that this would ever come in practice, but there
is no reason to fix it.

Related to #2798
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It is unlikely that this would ever come in practice, but there
is no reason to fix it.

Related to #2798
</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>Improve error messages for TEST_CASE tag parsing errors</title>
<updated>2023-05-20T19:13:48+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-05-20T17:25:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a153fce72402c74bb8480c0776f86f889b658fc1'/>
<id>a153fce72402c74bb8480c0776f86f889b658fc1</id>
<content type='text'>
Also removes a duplicated test case checking for empty tag error.

Related to #2650
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also removes a duplicated test case checking for empty tag error.

Related to #2650
</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>
<entry>
<title>Remove some useless casts</title>
<updated>2022-04-28T12:56:33+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-04-28T12:06:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=332de39cd4ba410e9dd9de670ea87a7c0dc7a8dd'/>
<id>332de39cd4ba410e9dd9de670ea87a7c0dc7a8dd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
