<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/include/internal/catch_test_case_tracker.cpp, branch v2.13.7</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>Fix potential infinite loops in generators combined with section filter</title>
<updated>2020-10-31T17:04:15+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-10-22T12:20:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=765ac08f0811f3a9d2cd6d3bdaa6cbe457457adc'/>
<id>765ac08f0811f3a9d2cd6d3bdaa6cbe457457adc</id>
<content type='text'>
The problem was that under specific circumstances, namely that none
of their children progressed, `GeneratorTracker` will not progress.
This was changed recently, to allow for code like this, where a
`SECTION` follows a `GENERATE` at the same level:

```cpp
SECTION("A") {}
auto a = GENERATE(1, 2);
SECTION("B") {}
```

However, this interacted badly with `SECTION` filters (`-c foo`),
as they could deactivate all `SECTION`s below a generator, and thus
stop it from progressing forever. This commit makes GeneratorTracker
check whether there are any filters active, and if they are, it checks
whether its section-children can ever run.

Fixes #2025
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The problem was that under specific circumstances, namely that none
of their children progressed, `GeneratorTracker` will not progress.
This was changed recently, to allow for code like this, where a
`SECTION` follows a `GENERATE` at the same level:

```cpp
SECTION("A") {}
auto a = GENERATE(1, 2);
SECTION("B") {}
```

However, this interacted badly with `SECTION` filters (`-c foo`),
as they could deactivate all `SECTION`s below a generator, and thus
stop it from progressing forever. This commit makes GeneratorTracker
check whether there are any filters active, and if they are, it checks
whether its section-children can ever run.

Fixes #2025
</pre>
</div>
</content>
</entry>
<entry>
<title>Modify generator tracking to allow GENERATEs between SECTIONs</title>
<updated>2020-07-11T21:16:07+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=b79a83e4aa6641a00c32b760456507b1745fc06e'/>
<id>b79a83e4aa6641a00c32b760456507b1745fc06e</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>Devirtualize NameAndLocation query on trackers</title>
<updated>2020-06-13T17:26:17+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-06-13T17:26:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=288416f50108ed3b17e37a6b6705821d0e2530e5'/>
<id>288416f50108ed3b17e37a6b6705821d0e2530e5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Some refactorings:</title>
<updated>2020-01-25T08:01:04+00:00</updated>
<author>
<name>offa</name>
</author>
<published>2020-01-21T20:04:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=2d172dc688ffab0867a94928159e93384475a870'/>
<id>2d172dc688ffab0867a94928159e93384475a870</id>
<content type='text'>
 - Overrides added
 - usages of push_back() replaced with emplace_back()
 - Loop variable made const-refernce
 - NULL replaced with nullptr
 - Names used in the declaration and definition unified
 - size() replaced with empty
 - Identical cases merged
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
 - Overrides added
 - usages of push_back() replaced with emplace_back()
 - Loop variable made const-refernce
 - NULL replaced with nullptr
 - Names used in the declaration and definition unified
 - size() replaced with empty
 - Identical cases merged
</pre>
</div>
</content>
</entry>
<entry>
<title>Ignore leading/trailing whitespace in test/section specs</title>
<updated>2019-09-09T12:28:11+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2019-09-09T09:30:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=af8b2538a62db34b3cec10ceb74e3d29bd06e37f'/>
<id>af8b2538a62db34b3cec10ceb74e3d29bd06e37f</id>
<content type='text'>
The leading/trailing whitespace is problematic because of e.g.
`WHEN` macro having preceeding whitespace for alignment, and it is
generally messy.

Credits to Phil who did lot of the original work.

Closes #1708
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The leading/trailing whitespace is problematic because of e.g.
`WHEN` macro having preceeding whitespace for alignment, and it is
generally messy.

Credits to Phil who did lot of the original work.

Closes #1708
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix TrackerBase::close children completion check</title>
<updated>2019-06-29T16:02:28+00:00</updated>
<author>
<name>Steven Franzen</name>
</author>
<published>2019-06-29T16:02:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=800f1b1d3df22c9ff92762cb4718ce29b2260a4f'/>
<id>800f1b1d3df22c9ff92762cb4718ce29b2260a4f</id>
<content type='text'>
Now verifies that all children have completed, instead of only the last.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now verifies that all children have completed, instead of only the last.
</pre>
</div>
</content>
</entry>
<entry>
<title>TrackerContext: Remove misleading instance static method.</title>
<updated>2019-04-22T14:37:22+00:00</updated>
<author>
<name>Martin Hostettler</name>
</author>
<published>2019-04-21T21:29:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=4a1ca1ab557a9b311a89be6131abea8cdafb4a93'/>
<id>4a1ca1ab557a9b311a89be6131abea8cdafb4a93</id>
<content type='text'>
TrackerContext is not used as singleton, so just remove this misleading
method
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
TrackerContext is not used as singleton, so just remove this misleading
method
</pre>
</div>
</content>
</entry>
<entry>
<title>Redo generator interface</title>
<updated>2019-01-31T09:43:06+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2019-01-27T18:46:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=e46a70f8291b6673f82b156b53ad5f5df8dc48a2'/>
<id>e46a70f8291b6673f82b156b53ad5f5df8dc48a2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove obsolete IndexTracker</title>
<updated>2019-01-29T13:45:52+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2019-01-27T15:04:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=64a9c02315c7ca770a575daa214b2db3bd70bb37'/>
<id>64a9c02315c7ca770a575daa214b2db3bd70bb37</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid superfluous re-run when specific section is selected</title>
<updated>2019-01-18T14:13:40+00:00</updated>
<author>
<name>Lotte Steenbrink</name>
</author>
<published>2019-01-07T15:40:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=d084162b2f41a319adb3d988f15a3aa3f127b936'/>
<id>d084162b2f41a319adb3d988f15a3aa3f127b936</id>
<content type='text'>
Fixes #1394
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #1394
</pre>
</div>
</content>
</entry>
</feed>
