<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/projects/SelfTest/UsageTests/Tricky.tests.cpp, branch v2.13.10</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>stdio.h replaced with cstdio.</title>
<updated>2020-02-08T13:27:40+00:00</updated>
<author>
<name>offa</name>
</author>
<published>2020-02-04T17:41:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=36170d60ca3c76c663b7c12a518c979394d67f7a'/>
<id>36170d60ca3c76c663b7c12a518c979394d67f7a</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove useless test</title>
<updated>2019-10-29T10:44:24+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2019-06-22T13:31:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=74e0e737a60d684d660cd2d8c9c0e9bee5e8f56b'/>
<id>74e0e737a60d684d660cd2d8c9c0e9bee5e8f56b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Small cleanup of self tests</title>
<updated>2019-08-04T11:50:25+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2019-08-04T11:50:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=3701c2e2e645df69e28914c72bf5c75158fa6613'/>
<id>3701c2e2e645df69e28914c72bf5c75158fa6613</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Force flush streams in tests for #1514</title>
<updated>2019-03-06T20:53:26+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2019-03-06T20:53:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1a03918455c1666808202a303342e6fff0c17c00'/>
<id>1a03918455c1666808202a303342e6fff0c17c00</id>
<content type='text'>
This avoids the problem where writes to stderr/stdout stop being
line-buffered when stderr/stdout is redirected to a file, which led
to different order of outputs between Linux and Windows in our tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This avoids the problem where writes to stderr/stdout stop being
line-buffered when stderr/stdout is redirected to a file, which led
to different order of outputs between Linux and Windows in our tests.
</pre>
</div>
</content>
</entry>
<entry>
<title>Add tests for #1514</title>
<updated>2019-03-02T20:22:47+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2019-03-02T20:22:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=28db5ed4c98db6a47d7a04afbd6b7ad9ba73e401'/>
<id>28db5ed4c98db6a47d7a04afbd6b7ad9ba73e401</id>
<content type='text'>
If the regression comes back, it will only be caught by approvals,
but that's better than nothing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
If the regression comes back, it will only be caught by approvals,
but that's better than nothing.
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove obsolete test</title>
<updated>2018-07-02T15:32:47+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2018-07-02T08:57:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=4846ad59e10e6174df1c4679cfef5bc80fe3f5d7'/>
<id>4846ad59e10e6174df1c4679cfef5bc80fe3f5d7</id>
<content type='text'>
`REQUIRE`, `CHECK` and many other macros already support expressions
with multiple template parameters without parenthesizing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`REQUIRE`, `CHECK` and many other macros already support expressions
with multiple template parameters without parenthesizing.
</pre>
</div>
</content>
</entry>
<entry>
<title>Deprecated description in SECTION (still accepts it, for now, but doesn't use it anywhere)</title>
<updated>2018-06-25T18:04:29+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2018-06-25T18:04:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1579744dddc69c290808eae0b9c6887ee60765f2'/>
<id>1579744dddc69c290808eae0b9c6887ee60765f2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove isTrue, alwaysTrue, alwaysFalse</title>
<updated>2017-11-22T15:03:45+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-11-21T20:39:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=401ad7a18941fb3744533a315a8a9500a7f573c9'/>
<id>401ad7a18941fb3744533a315a8a9500a7f573c9</id>
<content type='text'>
isTrue and alwaysFalse were replaced by (void)0, 0 inspired by doctest
alwaysTrue was replaced by warning suppression
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
isTrue and alwaysFalse were replaced by (void)0, 0 inspired by doctest
alwaysTrue was replaced by warning suppression
</pre>
</div>
</content>
</entry>
<entry>
<title>All tests files have .tests.cpp suffix. Also moved tests out of TestMain.cpp and moved up a level</title>
<updated>2017-11-13T16:03:27+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2017-11-13T16:03:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=74d3dfd4cc45088f3f7ab82c2168dbfd43cb048c'/>
<id>74d3dfd4cc45088f3f7ab82c2168dbfd43cb048c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
