<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/examples, branch v3.0.0-preview3</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>Split EventListener base from streaming_base.hpp</title>
<updated>2020-08-29T17:09:54+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-24T20:52:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=33ad1ee2ac7beaae8d6bfa661213d13cecbce196'/>
<id>33ad1ee2ac7beaae8d6bfa661213d13cecbce196</id>
<content type='text'>
The base was also renamed from `TestEventListenerBase` to
`EventListenerBase`, and modified to derive directly from the
reporter interface, rather than deriving from `StreamingReporterBase`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The base was also renamed from `TestEventListenerBase` to
`EventListenerBase`, and modified to derive directly from the
reporter interface, rather than deriving from `StreamingReporterBase`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Split catch_reporter_bases.hpp into two separate headers</title>
<updated>2020-08-23T05:30:26+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-22T21:16:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ed7eaf2df3dc4d38974234591d725c4cdba11a84'/>
<id>ed7eaf2df3dc4d38974234591d725c4cdba11a84</id>
<content type='text'>
Each of the two reporter bases now has its own header file, and
cpp file. Even though this adds another TU to the compilation,
the total CPU time taken by compilation is reduced by about 1%
for debug build and ~0.5% for optimized build of the main library.
(The improvement would be roughly doubles without splitting the TUs,
but the maintainability hit is not worth it.)

The code size of the static library build has also somewhat decreased.

Follow up: Introduce combined TU for reporters, and further split
apart the catch_reporter_streaming_base.hpp header into its
constituent parts, as it still contains a whole bunch of other stuff.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Each of the two reporter bases now has its own header file, and
cpp file. Even though this adds another TU to the compilation,
the total CPU time taken by compilation is reduced by about 1%
for debug build and ~0.5% for optimized build of the main library.
(The improvement would be roughly doubles without splitting the TUs,
but the maintainability hit is not worth it.)

The code size of the static library build has also somewhat decreased.

Follow up: Introduce combined TU for reporters, and further split
apart the catch_reporter_streaming_base.hpp header into its
constituent parts, as it still contains a whole bunch of other stuff.
</pre>
</div>
</content>
</entry>
<entry>
<title>Push includes for TestCaseInfo down into reporter TUs</title>
<updated>2020-07-29T12:43:05+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-07-29T12:30:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=4e0af77e2975d58e0b90edcc82a437429d2b1bc3'/>
<id>4e0af77e2975d58e0b90edcc82a437429d2b1bc3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace a TODO comment in examples</title>
<updated>2020-07-22T19:49:58+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-06-23T16:30:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=3b0f8c7ff0df4ee3f713d9a0899d6d670c85cc82'/>
<id>3b0f8c7ff0df4ee3f713d9a0899d6d670c85cc82</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add an example of using GENERATE(table())</title>
<updated>2020-07-22T19:49:54+00:00</updated>
<author>
<name>Richard Ash</name>
</author>
<published>2020-06-19T14:32:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=2840ce1e708eb0f3e18ee6fcdd36014beaf7ae10'/>
<id>2840ce1e708eb0f3e18ee6fcdd36014beaf7ae10</id>
<content type='text'>
There are some examples on issue #850 of using this feature, but they
are not easily found from the documentation. Adding them here as an
example makes them more findable and ensures they keep working if the
API changes.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are some examples on issue #850 of using this feature, but they
are not easily found from the documentation. Adding them here as an
example makes them more findable and ensures they keep working if the
API changes.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improved generator tracking</title>
<updated>2020-07-22T18:44:22+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-06-01T17:04:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=480f3f418b07cba56421041564211f24d8376e37'/>
<id>480f3f418b07cba56421041564211f24d8376e37</id>
<content type='text'>
* Successive executions of the same `GENERATE` macro (e.g. because
of a for loop) no longer lead to multiple nested generators.
* The same line can now contain multiple `GENERATE` macros without
issues.

Fixes #1913
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Successive executions of the same `GENERATE` macro (e.g. because
of a for loop) no longer lead to multiple nested generators.
* The same line can now contain multiple `GENERATE` macros without
issues.

Fixes #1913
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace all uses of std::unique_ptr with Catch::Detail::unique_ptr</title>
<updated>2020-05-31T13:20:24+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-25T07:45:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1d1ccf8f3c0c9e121b16afd4fafb850d14ef9fb0'/>
<id>1d1ccf8f3c0c9e121b16afd4fafb850d14ef9fb0</id>
<content type='text'>
Doing some benchmarking with ClangBuildAnalyzer suggests that
compiling Catch2's `SelfTest` spends 10% of the time instantiating
`std::unique_ptr` for some interface types required for registering
and running tests.

The lesser compilation overhead of `Catch::Detail::unique_ptr` should
significantly reduce that time.

The compiled implementation was also changed to use the custom impl,
to avoid having to convert between using `std::unique_ptr` and
`Catch::Detail::unique_ptr`. This will likely also improve the compile
times of the implementation, but that is less important than improving
compilation times of the user's TUs with tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Doing some benchmarking with ClangBuildAnalyzer suggests that
compiling Catch2's `SelfTest` spends 10% of the time instantiating
`std::unique_ptr` for some interface types required for registering
and running tests.

The lesser compilation overhead of `Catch::Detail::unique_ptr` should
significantly reduce that time.

The compiled implementation was also changed to use the custom impl,
to avoid having to convert between using `std::unique_ptr` and
`Catch::Detail::unique_ptr`. This will likely also improve the compile
times of the implementation, but that is less important than improving
compilation times of the user's TUs with tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove catch_default_main.hpp</title>
<updated>2020-05-09T16:00:49+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-07T14:24:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=db32550898ac0b7bdb81228972f6ba58b88ce18d'/>
<id>db32550898ac0b7bdb81228972f6ba58b88ce18d</id>
<content type='text'>
There are two reasons for this:

1) It is highly unlikely that someone has use for this header,
which has no customization points and only provides simplest
possible main, and cannot link the static library which also
provides a default main implementation.
2) It being a header was causing extra complications with
the convenience headers, and our checking script. This would either
require special handling in the checking script, or would break user's
of the main convenience header.

All in all, it is simpler and better in the long term to remove it,
than to fix its problems.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are two reasons for this:

1) It is highly unlikely that someone has use for this header,
which has no customization points and only provides simplest
possible main, and cannot link the static library which also
provides a default main implementation.
2) It being a header was causing extra complications with
the convenience headers, and our checking script. This would either
require special handling in the checking script, or would break user's
of the main convenience header.

All in all, it is simpler and better in the long term to remove it,
than to fix its problems.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename CMake/pkg-config target Catch2Main to Catch2WithMain</title>
<updated>2020-05-03T16:54:38+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-03T16:54:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=19ecad6f68154df2ba182c93224bdda8d7527b34'/>
<id>19ecad6f68154df2ba182c93224bdda8d7527b34</id>
<content type='text'>
This describes the reality better, as it also links in the rest
of Catch2.

The on-disk name of the static library remains just `Catch2Main`,
as that is what it is -- single main function -- and on-disk artifacts
cannot describe link dependencies.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This describes the reality better, as it also links in the rest
of Catch2.

The on-disk name of the static library remains just `Catch2Main`,
as that is what it is -- single main function -- and on-disk artifacts
cannot describe link dependencies.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid recompiling main for each example</title>
<updated>2020-04-24T19:13:07+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-04-24T19:13:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=b955355ec4e887da6a02e7649af85c594ec73c93'/>
<id>b955355ec4e887da6a02e7649af85c594ec73c93</id>
<content type='text'>
Instead, link against `Catch2Main` CMake target as intended.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead, link against `Catch2Main` CMake target as intended.
</pre>
</div>
</content>
</entry>
</feed>
