<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src/catch2/internal/catch_run_context.cpp, branch v3.3.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>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>
<entry>
<title>Fix references to license file</title>
<updated>2022-10-28T09:30:15+00:00</updated>
<author>
<name>Lars Toenning</name>
</author>
<published>2022-10-28T09:22:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f1084fb30990fe40c8f5b70034970c7eb4e1da72'/>
<id>f1084fb30990fe40c8f5b70034970c7eb4e1da72</id>
<content type='text'>
The license file was renamed with 6a502cc2f5fedd59b3495b58708f0d6d987ed9e1
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The license file was renamed with 6a502cc2f5fedd59b3495b58708f0d6d987ed9e1
</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>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>
<entry>
<title>Reseed global rng instance unconditionally</title>
<updated>2022-05-17T10:35:34+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-05-17T10:35:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=9c72b303d9ed0de4fc1ed3247223e5449cdd328d'/>
<id>9c72b303d9ed0de4fc1ed3247223e5449cdd328d</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 reseed std::srand when resetting rng state</title>
<updated>2022-05-17T09:54:19+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-05-17T09:54:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=6044f021cf53ac51c307566dd9b5c13054b097d6'/>
<id>6044f021cf53ac51c307566dd9b5c13054b097d6</id>
<content type='text'>
We no longer use `std::rand` anywhere, so there is no point,
and it might even interfere with our users use of `std::(s)rand`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We no longer use `std::rand` anywhere, so there is no point,
and it might even interfere with our users use of `std::(s)rand`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Generators now keep track of the index of current element</title>
<updated>2022-05-16T09:56:21+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-05-16T09:56:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=af8b54ecd59f8174aaaa97682e3544f2820a0900'/>
<id>af8b54ecd59f8174aaaa97682e3544f2820a0900</id>
<content type='text'>
This might become potentially useful in the future, when we want
to provide the ability to forward jump generators, to be able to
simply reproduce specific input to a test.

I am not yet sure how it would work, but the basic idea is that
it could be similar to the `-c` switch for selecting specific
`SECTION` in a test case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This might become potentially useful in the future, when we want
to provide the ability to forward jump generators, to be able to
simply reproduce specific input to a test.

I am not yet sure how it would work, but the basic idea is that
it could be similar to the `-c` switch for selecting specific
`SECTION` in a test case.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add -Wsuggest-destructor-override to enabled warnings</title>
<updated>2022-05-03T11:54:02+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2022-05-02T08:45:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=7752229105c85126712cb0b9d252a57c2ff79851'/>
<id>7752229105c85126712cb0b9d252a57c2ff79851</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
