<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/interfaces/catch_interfaces_reporter.hpp, branch ci/platforms-like-visual-xsharp</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>Make verbosity per-reporter</title>
<updated>2026-08-07T18:57:42+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-08-01T14:52:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a0eba50e9d56c743aff1de7a50d02a6e01e73cdc'/>
<id>a0eba50e9d56c743aff1de7a50d02a6e01e73cdc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Let reporters opt into fast path in RunContext::assertionStarting</title>
<updated>2025-07-17T11:47:44+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-07-17T11:13:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=c22096846c98211e0bcd23dbbd155698fbd718b3'/>
<id>c22096846c98211e0bcd23dbbd155698fbd718b3</id>
<content type='text'>
The fast path allows `RunContext` to skip disabling output redirect,
and notifying the reporters, turning `RunContext::notifyAssertionStarted`
into a no-op. This improves the overall performance of assertion handling
significantly, and also prepares ground for future changes around
assertion handling and thread safety.

For simple 10M assertion run, this improves the running time by ~30%
in Debug build and ~40% in Release build.

For backwards-compatibility reasons, the fast path is disabled
by default. However, none of the first party reporters use the
`assertionStarting` event, so all first party reporters are opted-in.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The fast path allows `RunContext` to skip disabling output redirect,
and notifying the reporters, turning `RunContext::notifyAssertionStarted`
into a no-op. This improves the overall performance of assertion handling
significantly, and also prepares ground for future changes around
assertion handling and thread safety.

For simple 10M assertion run, this improves the running time by ~30%
in Debug build and ~40% in Release build.

For backwards-compatibility reasons, the fast path is disabled
by default. However, none of the first party reporters use the
`assertionStarting` event, so all first party reporters are opted-in.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move header from internal</title>
<updated>2025-07-07T15:27:48+00:00</updated>
<author>
<name>Omar Boukli-Hacene</name>
</author>
<published>2025-04-13T14:44:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=8dc9f1a1247a15836044501c9a791ea67a709f05'/>
<id>8dc9f1a1247a15836044501c9a791ea67a709f05</id>
<content type='text'>
Move `catch_test_run_info.hpp` from directory
`src/catch2/internal/` to be directly under `src/catch2/`.

Header `catch_test_run_info.hpp` defines `Catch::TestRunInfo` which is part of the public API, since it is required when overriding `Catch::EventListenerBase`.

Fixes issue caught by Clang Tidy misc-include-cleaner check.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move `catch_test_run_info.hpp` from directory
`src/catch2/internal/` to be directly under `src/catch2/`.

Header `catch_test_run_info.hpp` defines `Catch::TestRunInfo` which is part of the public API, since it is required when overriding `Catch::EventListenerBase`.

Fixes issue caught by Clang Tidy misc-include-cleaner check.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unused headers</title>
<updated>2025-04-27T17:08:41+00:00</updated>
<author>
<name>Chris Thrasher</name>
</author>
<published>2025-04-26T16:08:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=5a6d70eebbf8201c7c76ea26fb1bb06cceeee5c3'/>
<id>5a6d70eebbf8201c7c76ea26fb1bb06cceeee5c3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</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 spelling</title>
<updated>2023-04-29T10:55:51+00:00</updated>
<author>
<name>Vertexwahn</name>
</author>
<published>2023-04-25T18:14:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=46539b6d9b1d429fcc2261d3e687482c878a9ddb'/>
<id>46539b6d9b1d429fcc2261d3e687482c878a9ddb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup internal includes by splitting out some event structs</title>
<updated>2023-03-31T17:31:51+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-03-31T08:44:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9f08097f55eb29a61efcdb4af41952a67e155215'/>
<id>9f08097f55eb29a61efcdb4af41952a67e155215</id>
<content type='text'>
* Split out BenchmarkInfo and BenchmarkStats to their own header
* Outline BenchmarkStats&lt;&gt; declaration to separate header
* Split out TestRunInfo into its own header

These changes let us remove the large `interfaces_reporter.hpp`
include from `benchmark.hpp`, and replace it with
`interfaces_capture.hpp` in `run_context.hpp`.

I also cleaned out `interfaces_repoter.hpp` from reporter headers
that depend on `reporter_common_base.hpp`. This will not change
anything in the actual inclusion set, but makes it logically
more consistent.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Split out BenchmarkInfo and BenchmarkStats to their own header
* Outline BenchmarkStats&lt;&gt; declaration to separate header
* Split out TestRunInfo into its own header

These changes let us remove the large `interfaces_reporter.hpp`
include from `benchmark.hpp`, and replace it with
`interfaces_capture.hpp` in `run_context.hpp`.

I also cleaned out `interfaces_repoter.hpp` from reporter headers
that depend on `reporter_common_base.hpp`. This will not change
anything in the actual inclusion set, but makes it logically
more consistent.
</pre>
</div>
</content>
</entry>
<entry>
<title>Cut out catch_interfaces_capture.hpp include from the main include</title>
<updated>2023-03-22T18:12:03+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-03-22T18:12:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=5b665be643ba28d9870c4cff662e634726c9037c'/>
<id>5b665be643ba28d9870c4cff662e634726c9037c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move captured output into TestCaseStats when sending testCaseEnded</title>
<updated>2023-02-20T13:48:39+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-02-20T13:48:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=00f259aeb2fa292ccf5e4a9c3e15d6b4416a06b2'/>
<id>00f259aeb2fa292ccf5e4a9c3e15d6b4416a06b2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Move SectionEndInfo into sectionEnded call in SECTION's destructor</title>
<updated>2023-01-28T12:00:30+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-01-28T12:00:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=2403f5620e60b41d84e35a88bacbb8bd8e1d92a8'/>
<id>2403f5620e60b41d84e35a88bacbb8bd8e1d92a8</id>
<content type='text'>
When running `./tests/SelfTest -o /dev/null`, this saves 1272
allocations (437439 -&gt; 437167). In general, this saves multiple
allocations per end of an entered `SECTION`, if the section name
was too long for SSO, because `RunContext::sectionEnded` can then
move the section's name further down the callstack.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When running `./tests/SelfTest -o /dev/null`, this saves 1272
allocations (437439 -&gt; 437167). In general, this saves multiple
allocations per end of an entered `SECTION`, if the section name
was too long for SSO, because `RunContext::sectionEnded` can then
move the section's name further down the callstack.
</pre>
</div>
</content>
</entry>
</feed>
