<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3, branch v3.3.1</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>v3.3.1</title>
<updated>2023-01-29T22:18:57+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-01-29T22:18:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=2ab20a0e008845e02bd06248e61ca6e5ad1aba33'/>
<id>2ab20a0e008845e02bd06248e61ca6e5ad1aba33</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid copying strings in sonarqube when sorting tests by file</title>
<updated>2023-01-29T19:45:13+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-01-29T19:45:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=60264b8807189898a765964fe6325930c230a773'/>
<id>60264b8807189898a765964fe6325930c230a773</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 name and sample analysis in benchmarks into BenchmarkStats</title>
<updated>2023-01-28T20:40:59+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-01-28T20:40:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=356dfc14391183aef80af7f23fe2297485311ae4'/>
<id>356dfc14391183aef80af7f23fe2297485311ae4</id>
<content type='text'>
This always saves 1 allocation per benchmark, and another two
allocations if the benchmark name is longer than the SSO buffer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This always saves 1 allocation per benchmark, and another two
allocations if the benchmark name is longer than the SSO buffer.
</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>Move sectionInfo into sectionEndInfo when SECTION ends</title>
<updated>2023-01-28T11:56:29+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-01-28T09:41:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=d58491c85a534a9348634ac3e4eb384df22f4d71'/>
<id>d58491c85a534a9348634ac3e4eb384df22f4d71</id>
<content type='text'>
When running `./tests/SelfTest -o /dev/null`, this saves 468
allocations (438907 -&gt; 437439). In general, this saves 1 allocation
every time an entered `SECTION` ends and the section name was long
enough to move out of the SSO buffer.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When running `./tests/SelfTest -o /dev/null`, this saves 468
allocations (438907 -&gt; 437439). In general, this saves 1 allocation
every time an entered `SECTION` ends and the section name was long
enough to move out of the SSO buffer.
</pre>
</div>
</content>
</entry>
<entry>
<title>v3.3.0</title>
<updated>2023-01-22T18:53:12+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2023-01-22T18:43:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=c837cb4a8aaa2064f63e67ed0a7f7055dbf159c5'/>
<id>c837cb4a8aaa2064f63e67ed0a7f7055dbf159c5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
