<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/internal/catch_run_context.cpp, branch v3.3.2</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>Avoid copying NameAndLocationRef when passed as argument</title>
<updated>2023-02-20T14:17:35+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-02-19T22:53:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=4f7c8cb28a0fdb4cc8b93f139b1b1e5d3ff0a328'/>
<id>4f7c8cb28a0fdb4cc8b93f139b1b1e5d3ff0a328</id>
<content type='text'>
`NameAndLocationRef` is pretty large type, so even in release build,
it is unlikely to be passed in registers. In addition to the fact
that some platforms currently do not allow passing even small types
in register (Windows ABI!!), it is better to pass it as a ref,
effectively passing around a pointer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`NameAndLocationRef` is pretty large type, so even in release build,
it is unlikely to be passed in registers. In addition to the fact
that some platforms currently do not allow passing even small types
in register (Windows ABI!!), it is better to pass it as a ref,
effectively passing around a pointer.
</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>Preconstruct error message in RunContext::handleIncomplete</title>
<updated>2023-02-10T20:36:04+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-02-10T20:32:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=4aa88299af4d4d7dec18a1b6cf314a4b03d7567c'/>
<id>4aa88299af4d4d7dec18a1b6cf314a4b03d7567c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Don't take ownership of SECTION's name for inactive sections</title>
<updated>2023-01-29T09:44:20+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-01-27T23:35:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=65ffee518944372b35a885aa521ac28406f8b8fb'/>
<id>65ffee518944372b35a885aa521ac28406f8b8fb</id>
<content type='text'>
This eliminates 1945 (432709 -&gt; 430764) allocations from running
`./tests/SelfTest -o /dev/null`. In general terms, this saves
an allocation every time an unvisited `SECTION` is passed, which
means that the saved allocations are quadratic in number of sibling
(same level) `SECTION`s in a test case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This eliminates 1945 (432709 -&gt; 430764) allocations from running
`./tests/SelfTest -o /dev/null`. In general terms, this saves
an allocation every time an unvisited `SECTION` is passed, which
means that the saved allocations are quadratic in number of sibling
(same level) `SECTION`s in a test case.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid allocations when looking for trackers</title>
<updated>2023-01-29T09:14:20+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-01-27T21:12:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=43f02027e47310e200f20f5c3a1de6fe281e2f81'/>
<id>43f02027e47310e200f20f5c3a1de6fe281e2f81</id>
<content type='text'>
Now we delay allocating owning `NameAndLocation` instances until
we construct a new tracker (because a tracker's lifetime can be
significantly different from the underlying tracked-thing's name).

This saves 4239 allocations (436948 -&gt; 432709) when running
`./tests/SelfTest -o /dev/null`, at some cost to code clarity
due to introducing a new ref type, `NameAndLocationRef`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now we delay allocating owning `NameAndLocation` instances until
we construct a new tracker (because a tracker's lifetime can be
significantly different from the underlying tracked-thing's name).

This saves 4239 allocations (436948 -&gt; 432709) when running
`./tests/SelfTest -o /dev/null`, at some cost to code clarity
due to introducing a new ref type, `NameAndLocationRef`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Clean up extraneous copies in Messages</title>
<updated>2023-01-28T21:14:37+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-01-28T21:01:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=906552f8c831d0dd1917484b53dd080537f19acd'/>
<id>906552f8c831d0dd1917484b53dd080537f19acd</id>
<content type='text'>
This removes 109 allocations from running `tests/SelfTest`
(437057 -&gt; 436948).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes 109 allocations from running `tests/SelfTest`
(437057 -&gt; 436948).
</pre>
</div>
</content>
</entry>
<entry>
<title>Move AssertionResultData into AssertionResult in RunContext</title>
<updated>2023-01-28T18:57:38+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-01-28T18:57:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=e5d1eb757fe399ff312d837a318dcf17b495d32e'/>
<id>e5d1eb757fe399ff312d837a318dcf17b495d32e</id>
<content type='text'>
When running `./tests/SelfTest -o /dev/null`, this saves 109
allocations (437167 -&gt; 437058).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When running `./tests/SelfTest -o /dev/null`, this saves 109
allocations (437167 -&gt; 437058).
</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>
<entry>
<title>Stop exceptions in generator constructors from aborting the binary</title>
<updated>2023-01-22T15:04:16+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-01-17T10:04:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=8359a6b244a26cffabd4440b17fac8b1392815af'/>
<id>8359a6b244a26cffabd4440b17fac8b1392815af</id>
<content type='text'>
Fixes #2615
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #2615
</pre>
</div>
</content>
</entry>
<entry>
<title>Add new SKIP macro for skipping tests at runtime (#2360)</title>
<updated>2023-01-12T14:01:47+00:00</updated>
<author>
<name>Philip Salzmann</name>
</author>
<published>2023-01-12T14:01:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=d548be26e3c54abc7e0b076319057d334e3ac589'/>
<id>d548be26e3c54abc7e0b076319057d334e3ac589</id>
<content type='text'>
* Add new SKIP macro for skipping tests at runtime

This adds a new `SKIP` macro for dynamically skipping tests at runtime.
The "skipped" status of a test case is treated as a first-class citizen,
like "succeeded" or "failed", and is reported with a new color on the
console.

* Don't show "skipped assertions" in console/compact reporters

Also extend skip tests to cover a few more use cases.

* Return exit code 4 if all test cases are skipped

* Use LightGrey for the skip colour

This isn't great, but is better than the deep blue that was borderline
invisible on dark backgrounds. The fix is to redo the colouring
a bit, including introducing light-blue that is actually visible.

* Add support for explicit skips in all reporters

* --allow-running-no-tests also allows all tests to be skipped

* Add docs for SKIP macro, deprecate IEventListener::skipTest

Co-authored-by: Martin Hořeňovský &lt;martin.horenovsky@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Add new SKIP macro for skipping tests at runtime

This adds a new `SKIP` macro for dynamically skipping tests at runtime.
The "skipped" status of a test case is treated as a first-class citizen,
like "succeeded" or "failed", and is reported with a new color on the
console.

* Don't show "skipped assertions" in console/compact reporters

Also extend skip tests to cover a few more use cases.

* Return exit code 4 if all test cases are skipped

* Use LightGrey for the skip colour

This isn't great, but is better than the deep blue that was borderline
invisible on dark backgrounds. The fix is to redo the colouring
a bit, including introducing light-blue that is actually visible.

* Add support for explicit skips in all reporters

* --allow-running-no-tests also allows all tests to be skipped

* Add docs for SKIP macro, deprecate IEventListener::skipTest

Co-authored-by: Martin Hořeňovský &lt;martin.horenovsky@gmail.com&gt;</pre>
</div>
</content>
</entry>
</feed>
