<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/tests, branch devel-use-delete-instead-of-static-assert-false</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>Cleanups from static analysis</title>
<updated>2026-04-24T09:21:04+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-04-24T09:21:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=11a96e186af8b2779d93e550217e9c95d3f89371'/>
<id>11a96e186af8b2779d93e550217e9c95d3f89371</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Rework internals of CATCH_REGISTER_ENUM</title>
<updated>2026-04-08T10:57:09+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-04-08T08:26:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=47200ddbee03eaf4a9d3d99d18cb692381d8f5bc'/>
<id>47200ddbee03eaf4a9d3d99d18cb692381d8f5bc</id>
<content type='text'>
The old internals reached into the global hub to stash the allocation(s)
for enum value -&gt; string value there, then kept around a potentially
invalid (in case the hub was cleaned up) reference into it, going through
whole bunch of virtual dispatch in the process.

The new internals just store the data in a static variable inside the
`StringMaker` specialization. This avoids potential lifetime issues,
avoids all virtual dispatch and (almost) reduces the include bloat in
the main header path.

The reason for (almost) there is that for full include correctness,
`EnumInfo` needs `&lt;utility&gt;` include for `std::pair`. However, this brings
in things like `std::relops`, because the std headers in C++ are dumb.
As this was not included before, and instead we relied on `std::pair`
existing in an internal stdlib header that we transitively included, the
full include size ends up bigger than before.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The old internals reached into the global hub to stash the allocation(s)
for enum value -&gt; string value there, then kept around a potentially
invalid (in case the hub was cleaned up) reference into it, going through
whole bunch of virtual dispatch in the process.

The new internals just store the data in a static variable inside the
`StringMaker` specialization. This avoids potential lifetime issues,
avoids all virtual dispatch and (almost) reduces the include bloat in
the main header path.

The reason for (almost) there is that for full include correctness,
`EnumInfo` needs `&lt;utility&gt;` include for `std::pair`. However, this brings
in things like `std::relops`, because the std headers in C++ are dumb.
As this was not included before, and instead we relied on `std::pair`
existing in an internal stdlib header that we transitively included, the
full include size ends up bigger than before.
</pre>
</div>
</content>
</entry>
<entry>
<title>JUnit reporter output single failed assertion node per test case</title>
<updated>2026-04-04T13:12:56+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-04-04T13:12:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=57f738b380d97c60b0ee920fa06b888d4f8c37c3'/>
<id>57f738b380d97c60b0ee920fa06b888d4f8c37c3</id>
<content type='text'>
Ideally JUnit tools would handle multiple failures per test case,
but they don't, so here we are.

Closes #1919
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ideally JUnit tools would handle multiple failures per test case,
but they don't, so here we are.

Closes #1919
</pre>
</div>
</content>
</entry>
<entry>
<title>Inline SKIP/FAIL in RunContext to fix build failure with prefixed macros</title>
<updated>2026-04-03T08:19:05+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-04-02T20:58:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9f1b48a94fdc7a54aa87fc9bd26d6b1b3f560d4c'/>
<id>9f1b48a94fdc7a54aa87fc9bd26d6b1b3f560d4c</id>
<content type='text'>
Closes #3087
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #3087
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix counting of UTF-8 codepoints in TextFlow</title>
<updated>2026-04-01T14:12:08+00:00</updated>
<author>
<name>Jan Niklas Hasse</name>
</author>
<published>2026-03-28T15:02:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=572f96b8febec9dd14ac5284e6a959a7246325c8'/>
<id>572f96b8febec9dd14ac5284e6a959a7246325c8</id>
<content type='text'>
For line-wrapping bytes were counted instead of codepoints. This
resulted in line-breaks being inserted at the wrong position and also
breaking UTF-8 characters.

Fixes #1022.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
For line-wrapping bytes were counted instead of codepoints. This
resulted in line-breaks being inserted at the wrong position and also
breaking UTF-8 characters.

Fixes #1022.
</pre>
</div>
</content>
</entry>
<entry>
<title>Ignore Wunreachable-code-return in Generators.tests.cpp</title>
<updated>2026-04-01T09:02:56+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-04-01T09:02:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=8492fd444e42f331f48611d2b5ef11c8ce338423'/>
<id>8492fd444e42f331f48611d2b5ef11c8ce338423</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix warning suppression block in Condition.tests straddling includes</title>
<updated>2026-04-01T08:56:21+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-04-01T08:56:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=fe2a20ab555ec28af47acaeafdad6d0872f7cb82'/>
<id>fe2a20ab555ec28af47acaeafdad6d0872f7cb82</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add quiet verbosity variant to the default listener and tag listing</title>
<updated>2026-02-16T21:52:39+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-02-16T21:51:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a404f37cec56e6ff161db9b26cfb1e77de3bc1e0'/>
<id>a404f37cec56e6ff161db9b26cfb1e77de3bc1e0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>More tests for MapGenerator</title>
<updated>2026-02-15T20:53:10+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-02-15T20:53:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=56024c04e42172d53a1672b9af6a538afdb79801'/>
<id>56024c04e42172d53a1672b9af6a538afdb79801</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>MapGenerator only calls mapping function if the result is used</title>
<updated>2026-02-15T19:44:21+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-02-15T19:44:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=056e4fe88d5a779fef221a0d5f105d7a16be9c7a'/>
<id>056e4fe88d5a779fef221a0d5f105d7a16be9c7a</id>
<content type='text'>
Previously the mapping was eager on construction and calls to
`next()`. This was fine when generators were always exhausted fully,
but with the new generator filtering, we might not want to call
the map function eagerly; rather we want to call it only once,
after the generator is moved to the target element.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously the mapping was eager on construction and calls to
`next()`. This was fine when generators were always exhausted fully,
but with the new generator filtering, we might not want to call
the map function eagerly; rather we want to call it only once,
after the generator is moved to the target element.
</pre>
</div>
</content>
</entry>
</feed>
