<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/tests/SelfTest/IntrospectiveTests, 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>Support sentinel-based ranges in default stringify (#2004)</title>
<updated>2020-09-07T12:23:47+00:00</updated>
<author>
<name>Sean Middleditch</name>
</author>
<published>2020-08-18T08:34:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=31d483124532184aefc9595903af7493c206b874'/>
<id>31d483124532184aefc9595903af7493c206b874</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Sweep out Wshadow</title>
<updated>2020-09-06T11:11:42+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-09-06T11:10:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=cc18bd719da38e5415909f5b10199395f00076e6'/>
<id>cc18bd719da38e5415909f5b10199395f00076e6</id>
<content type='text'>
Most of the changes are completely pointless renaming of constructor
arguments so that they do not use the same name as the type members,
but :shrug:

Closes #2015
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most of the changes are completely pointless renaming of constructor
arguments so that they do not use the same name as the type members,
but :shrug:

Closes #2015
</pre>
</div>
</content>
</entry>
<entry>
<title>Cleanup some stuff found by MSVC's /analyze</title>
<updated>2020-08-20T18:42:21+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-19T15:44:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1a97af45f168b24769301906cad9dcfe235d78e5'/>
<id>1a97af45f168b24769301906cad9dcfe235d78e5</id>
<content type='text'>
* Added some missing `noexcept`s on custom destructors.
* Fixed `std::move` being called on a const-reference.
* Initialized `ScopedMessage::m_moved` in class definition, instead
of doing so in constructors explicitly.
* Turned some `enum`s into `enum class`es.
* Initialized `StreamingReporterBase::currentTestCaseInfo` in class
definition.
* Some cleanups in SelfTest code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Added some missing `noexcept`s on custom destructors.
* Fixed `std::move` being called on a const-reference.
* Initialized `ScopedMessage::m_moved` in class definition, instead
of doing so in constructors explicitly.
* Turned some `enum`s into `enum class`es.
* Initialized `StreamingReporterBase::currentTestCaseInfo` in class
definition.
* Some cleanups in SelfTest code.
</pre>
</div>
</content>
</entry>
<entry>
<title>Make XmlEncoding tests slightly more efficient</title>
<updated>2020-08-18T19:02:31+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-08-18T11:47:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f16be402f77eaea8996b60299f670bfa557cee52'/>
<id>f16be402f77eaea8996b60299f670bfa557cee52</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Modify generator tracking to allow GENERATEs between SECTIONs</title>
<updated>2020-07-26T09:35:06+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-07-04T15:45:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=4565b826cff3f8c11325c23d1536ded6acd8fa78'/>
<id>4565b826cff3f8c11325c23d1536ded6acd8fa78</id>
<content type='text'>
This means that code such as

```cpp
TEST_CASE() {
    SECTION("first") { SUCCEED(); }
    auto _ = GENERATE(1, 2);
    SECTION("second") { SUCCEED(); }
}
```

will run and report 3 assertions, 1 from section "first" and 2
from section "second". This also applies for greater and potentially
more confusing nesting, but fundamentally it is up to the user to
avoid overly complex and confusing nestings, just as with `SECTION`s.

The old behaviour of `GENERATE` as first thing in a `TEST_CASE`,
`GENERATE` not followed by a `SECTION`, etc etc should be unchanged.

Closes #1938
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This means that code such as

```cpp
TEST_CASE() {
    SECTION("first") { SUCCEED(); }
    auto _ = GENERATE(1, 2);
    SECTION("second") { SUCCEED(); }
}
```

will run and report 3 assertions, 1 from section "first" and 2
from section "second". This also applies for greater and potentially
more confusing nesting, but fundamentally it is up to the user to
avoid overly complex and confusing nestings, just as with `SECTION`s.

The old behaviour of `GENERATE` as first thing in a `TEST_CASE`,
`GENERATE` not followed by a `SECTION`, etc etc should be unchanged.

Closes #1938
</pre>
</div>
</content>
</entry>
<entry>
<title>Add op+(StringRef, StringRef) -&gt; std::string</title>
<updated>2020-05-31T20:30:41+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-31T20:30:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=317145514fad8266edbce1145391524b4e948f32'/>
<id>317145514fad8266edbce1145391524b4e948f32</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</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>Implement a simplified variant of std::unique_ptr&lt;T&gt;</title>
<updated>2020-05-31T13:08:47+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-24T21:41:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=41bbaa6d573a598fe0796fd0e391ed57eae62e30'/>
<id>41bbaa6d573a598fe0796fd0e391ed57eae62e30</id>
<content type='text'>
This simplified variant supports only a subset of the functionality
in `std::unique_ptr&lt;T&gt;`. `Catch::Detail::unique_ptr&lt;T&gt;` only supports
single element pointer (no array support) with default deleter.

By removing the support for custom deleters, we also avoid requiring
significant machinery to support EBO, speeding up instantiations of
`unique_ptr&lt;T&gt;` significantly. Catch2 also currently does not need
to support `unique_ptr&lt;T[]&gt;`, so that is not supported either.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This simplified variant supports only a subset of the functionality
in `std::unique_ptr&lt;T&gt;`. `Catch::Detail::unique_ptr&lt;T&gt;` only supports
single element pointer (no array support) with default deleter.

By removing the support for custom deleters, we also avoid requiring
significant machinery to support EBO, speeding up instantiations of
`unique_ptr&lt;T&gt;` significantly. Catch2 also currently does not need
to support `unique_ptr&lt;T[]&gt;`, so that is not supported either.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move StringRef header to internals</title>
<updated>2020-05-10T08:09:01+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-10T08:09:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9e498278be92ff209687a09b989f27d51aab7809'/>
<id>9e498278be92ff209687a09b989f27d51aab7809</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Small improvements for StringRef</title>
<updated>2020-05-10T05:22:11+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-10T05:22:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=895d0a06960d9f48190dde7c7aa4a56d614946fc'/>
<id>895d0a06960d9f48190dde7c7aa4a56d614946fc</id>
<content type='text'>
* `operator[]` is constexpr
* `operator&lt;&lt;` and `operator+=` are hidden friends
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* `operator[]` is constexpr
* `operator&lt;&lt;` and `operator+=` are hidden friends
</pre>
</div>
</content>
</entry>
</feed>
