<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/internal, branch v3.1.0</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>Different way of checking for support of local warning suppression</title>
<updated>2022-07-15T17:34:35+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-07-11T22:05:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=cc0e91472aa7f5dc28388be57c2ee8d3340c365f'/>
<id>cc0e91472aa7f5dc28388be57c2ee8d3340c365f</id>
<content type='text'>
Closes #2474
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #2474
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix Wunused-variable warning for MinGW</title>
<updated>2022-07-11T20:28:15+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-07-11T20:28:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=3bd0c58878bb4d413a4ef9ed701ec08e407420ab'/>
<id>3bd0c58878bb4d413a4ef9ed701ec08e407420ab</id>
<content type='text'>
Closes #2132
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #2132
</pre>
</div>
</content>
</entry>
<entry>
<title>Split apart combined TUs</title>
<updated>2022-06-21T16:48:44+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-06-21T14:19:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=8730260457ddbd19f3df70c53931934398fc54d7'/>
<id>8730260457ddbd19f3df70c53931934398fc54d7</id>
<content type='text'>
The compile time improvements from using combined TUs mostly isn't
worth the annoyance they cause with various IDE shortcuts, like
when switching between header and its impl. file.

Splitting them apart also fixes the issue of empty subdirs being
installed due to `foo/internal` folders that only contained the
combined TUs and no headers.

Closes #2457
Closes #2463
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The compile time improvements from using combined TUs mostly isn't
worth the annoyance they cause with various IDE shortcuts, like
when switching between header and its impl. file.

Splitting them apart also fixes the issue of empty subdirs being
installed due to `foo/internal` folders that only contained the
combined TUs and no headers.

Closes #2457
Closes #2463
</pre>
</div>
</content>
</entry>
<entry>
<title>Compatility fixes for GCC5 (#2448)</title>
<updated>2022-06-07T16:46:46+00:00</updated>
<author>
<name>Morwenn</name>
</author>
<published>2022-06-07T16:46:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a0ece7b2528418c730c4feb2871808f739afd482'/>
<id>a0ece7b2528418c730c4feb2871808f739afd482</id>
<content type='text'>
* GCC5 compat: work around inherited constructor issues

Don't use inherited constructors, forward manually instead. This
basically reverts 61f803126d3cff2195d700d11d07c6578f416b23.

I believe that GCC5 does not implement P0136, a C++17 change that made
inherited constructors actually usable and was backported as a DR all
the way to C++11.

* GCC5 compat: bypass std::pair construction issue

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>
* GCC5 compat: work around inherited constructor issues

Don't use inherited constructors, forward manually instead. This
basically reverts 61f803126d3cff2195d700d11d07c6578f416b23.

I believe that GCC5 does not implement P0136, a C++17 change that made
inherited constructors actually usable and was backported as a DR all
the way to C++11.

* GCC5 compat: bypass std::pair construction issue

Co-authored-by: Martin Hořeňovský &lt;martin.horenovsky@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Suppress NVCC unused variable warnings (#2427)</title>
<updated>2022-06-03T14:17:14+00:00</updated>
<author>
<name>ahans</name>
</author>
<published>2022-06-03T14:17:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1c4f52b24a8d9170cc92bf8314fe8d9a79f37386'/>
<id>1c4f52b24a8d9170cc92bf8314fe8d9a79f37386</id>
<content type='text'>

Closes #2306</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>

Closes #2306</pre>
</div>
</content>
</entry>
<entry>
<title>Make default colour selection fall-through</title>
<updated>2022-06-02T07:16:10+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-06-02T07:16:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=2dc657cd1f9ce9f67b93a6511acea2775965e621'/>
<id>2dc657cd1f9ce9f67b93a6511acea2775965e621</id>
<content type='text'>
Closes #2426
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #2426
</pre>
</div>
</content>
</entry>
<entry>
<title>Leak full Wparentheses suppression for GCC 9</title>
<updated>2022-05-31T21:57:09+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-05-31T21:57:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=cca59235023fa30339086be845d9cd7214ecff91'/>
<id>cca59235023fa30339086be845d9cd7214ecff91</id>
<content type='text'>
Reported as an issue on Discord. I thought that by GCC 9, the
C++ frontend was fixed enough to support `_Pragma`-based
suppression correctly, but apparently I was wrong.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reported as an issue on Discord. I thought that by GCC 9, the
C++ frontend was fixed enough to support `_Pragma`-based
suppression correctly, but apparently I was wrong.
</pre>
</div>
</content>
</entry>
<entry>
<title>Ensure that console_width.hpp includes user_config.hpp first</title>
<updated>2022-05-23T21:57:42+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-05-23T21:57:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=85c00eb946b04a55a41aa131fb3f2050fa2f8b44'/>
<id>85c00eb946b04a55a41aa131fb3f2050fa2f8b44</id>
<content type='text'>
Otherwise we can get macro redefinition warnings when another
file includes console_width.hpp first, before user_config.hpp.

Closes #2431
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Otherwise we can get macro redefinition warnings when another
file includes console_width.hpp first, before user_config.hpp.

Closes #2431
</pre>
</div>
</content>
</entry>
<entry>
<title>Only reseed the internal RNG when a test is first entered</title>
<updated>2022-05-17T19:49:26+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-05-17T19:49:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=dcafc605f3232f5109e3f86ac8d8281e6ed611d2'/>
<id>dcafc605f3232f5109e3f86ac8d8281e6ed611d2</id>
<content type='text'>
This fixes multiple issues with random generators, with the most
important one being that multiple nested generators could return
values from the same sequence, due to internal implementation
details of `GENERATE`, and how they interact with test case
paths.

The cost of doing this is that given this simple `TEST_CASE`,
```cpp
TEST_CASE("foo") {
    auto i = GENERATE(take(10, random(0, 100));
    SECTION("A") {
        auto j = GENERATE(take(10, random(0, 100));
    }
    SECTION("B") {
        auto k = GENERATE(take(10, random(0, 100));
    }
}
```

`k` will have different values between running the test as
a whole, e.g. with `./tests "foo"`, and running only the "B"
section with `./tests "foo" -c "B"`.

I consider this an acceptable cost, because the only alternative
would be very messy to implement, and add a lot of brittle and
complex code for relatively little benefit.

If this calculation changes, we will need to instead walk
the current tracker tree whenever a random generator is being
constructed, check for random generators on the path to root,
and take a seed from them.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes multiple issues with random generators, with the most
important one being that multiple nested generators could return
values from the same sequence, due to internal implementation
details of `GENERATE`, and how they interact with test case
paths.

The cost of doing this is that given this simple `TEST_CASE`,
```cpp
TEST_CASE("foo") {
    auto i = GENERATE(take(10, random(0, 100));
    SECTION("A") {
        auto j = GENERATE(take(10, random(0, 100));
    }
    SECTION("B") {
        auto k = GENERATE(take(10, random(0, 100));
    }
}
```

`k` will have different values between running the test as
a whole, e.g. with `./tests "foo"`, and running only the "B"
section with `./tests "foo" -c "B"`.

I consider this an acceptable cost, because the only alternative
would be very messy to implement, and add a lot of brittle and
complex code for relatively little benefit.

If this calculation changes, we will need to instead walk
the current tracker tree whenever a random generator is being
constructed, check for random generators on the path to root,
and take a seed from them.
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename global rng() to sharedRng()</title>
<updated>2022-05-17T13:43:23+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-05-17T13:37:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=359cd6187d7e8fe40dec82e77bafe5066115cb53'/>
<id>359cd6187d7e8fe40dec82e77bafe5066115cb53</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
