<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/projects/SelfTest/UsageTests/Misc.tests.cpp, branch v2.x</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 copy paste error in 7-arg TEMPLATE_TEST_CASE_SIG implementation</title>
<updated>2020-06-13T13:46:59+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-06-13T13:41:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=cbbebb65b60eaef6dc7d5a51a2d6eaf9a6f1c1a8'/>
<id>cbbebb65b60eaef6dc7d5a51a2d6eaf9a6f1c1a8</id>
<content type='text'>
Closes #1954
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #1954
</pre>
</div>
</content>
</entry>
<entry>
<title>Rework how warning suppression in macros is done</title>
<updated>2019-10-27T20:07:21+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2019-10-27T20:07:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=849f2848bdf625a7b6248e4e62ba0e39ee609634'/>
<id>849f2848bdf625a7b6248e4e62ba0e39ee609634</id>
<content type='text'>
Previously, each warning suppression was self-contained, with its
own pair of `SUPPRESS_X_WARNING` and `UNSUPPRESS_X_WARNING` macros.
This had the obvious advantage of being self-containing, but it
also meant that if we needed to suppress more than one warning
in a single place, then we would manipulate the compiler's warning
state multiple times, even though logically we would only need one
layer.

The new way of suppressing warnings in macros is to push compiler's
warning state with `CATCH_INTERNAL_START_WARNINGS_SUPPRESSION` macro,
then disable whatever macros we need with the
`CATCH_INTERNAL_SUPPRESS_X_WARNINGS` macro, and then return to the
previous state using `CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION`.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously, each warning suppression was self-contained, with its
own pair of `SUPPRESS_X_WARNING` and `UNSUPPRESS_X_WARNING` macros.
This had the obvious advantage of being self-containing, but it
also meant that if we needed to suppress more than one warning
in a single place, then we would manipulate the compiler's warning
state multiple times, even though logically we would only need one
layer.

The new way of suppressing warnings in macros is to push compiler's
warning state with `CATCH_INTERNAL_START_WARNINGS_SUPPRESSION` macro,
then disable whatever macros we need with the
`CATCH_INTERNAL_SUPPRESS_X_WARNINGS` macro, and then return to the
previous state using `CATCH_INTERNAL_STOP_WARNINGS_SUPPRESSION`.
</pre>
</div>
</content>
</entry>
<entry>
<title>Allow to use non-copyable and non-movable types in TEMPLATE_LIST_TEST_CASE</title>
<updated>2019-09-06T10:15:09+00:00</updated>
<author>
<name>Benjamin Worpitz</name>
</author>
<published>2019-08-17T09:48:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=18d597cf10b593de2853199b152f6a8a7a041293'/>
<id>18d597cf10b593de2853199b152f6a8a7a041293</id>
<content type='text'>
The parameter given to `convert` may not be copyable therefore it has to be
captured by const reference. For example an `std::tuple` that contains a
non-copyable type is itself non-copyable.

The NonDefaultConstructible test-case was reduced by one example type
because it did not add any value.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The parameter given to `convert` may not be copyable therefore it has to be
captured by const reference. For example an `std::tuple` that contains a
non-copyable type is itself non-copyable.

The NonDefaultConstructible test-case was reduced by one example type
because it did not add any value.
</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>Fix non-default-constructible type lists used in TEMPLATE_LIST_TEST_CASE (#1697)</title>
<updated>2019-07-22T10:56:33+00:00</updated>
<author>
<name>Benjamin Worpitz</name>
</author>
<published>2019-07-22T10:56:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=e7c26f09d1e561a41a321690046ebdd89ef18935'/>
<id>e7c26f09d1e561a41a321690046ebdd89ef18935</id>
<content type='text'>
* Fix non-default-constructible type lists used in TEMPLATE_LIST_TEST_CASE

std::tuple is not default constructible when the first type is not
default-constuctible. Therefore it can not be instantiated.
to circumvent this, we have to use std::declval in the unevaluate decltype
context.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix non-default-constructible type lists used in TEMPLATE_LIST_TEST_CASE

std::tuple is not default constructible when the first type is not
default-constuctible. Therefore it can not be instantiated.
to circumvent this, we have to use std::declval in the unevaluate decltype
context.
</pre>
</div>
</content>
</entry>
<entry>
<title>tests for TEMPLATE_LIST_TEST_CASE</title>
<updated>2019-06-15T13:40:39+00:00</updated>
<author>
<name>Jozef Grajciar</name>
</author>
<published>2019-05-27T15:25:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=dbc1295354ee1f07fff39946dc963c71bc5436a7'/>
<id>dbc1295354ee1f07fff39946dc963c71bc5436a7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Nttp support</title>
<updated>2019-05-23T19:03:47+00:00</updated>
<author>
<name>Jozef Grajciar</name>
</author>
<published>2019-04-17T18:23:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=0c43f98fa2a082d99f759c1886630872fa7cbf3a'/>
<id>0c43f98fa2a082d99f759c1886630872fa7cbf3a</id>
<content type='text'>
Closes #1531
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #1531
</pre>
</div>
</content>
</entry>
<entry>
<title>Template tests: added TEMPLATE_PRODUCT_TEST_CASE</title>
<updated>2018-12-10T07:22:09+00:00</updated>
<author>
<name>Jozef Grajciar</name>
</author>
<published>2018-12-06T18:27:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=21a1cd56838c677acba467de512441cc146c6de3'/>
<id>21a1cd56838c677acba467de512441cc146c6de3</id>
<content type='text'>
support for generating test cases based on multiple template template
types combined with template arguments for each of the template template
types specified

e.g.
```
TEMPLATE_PRODUCT_TEST_CASE("template product","[template]",
			   (std::tuple, std::pair, std::map),
			   ((int,float),(char,double),(int,char)))
```
will effectively create 9 test cases with types:
std::tuple&lt;int,float&gt;
std::tuple&lt;char,double&gt;
std::tuple&lt;int,char&gt;
std::pair&lt;int,float&gt;
std::pair&lt;char, double&gt;
std::pair&lt;int,char&gt;
std::map&lt;int,float&gt;
std::map&lt;char,double&gt;
std::map&lt;int,char&gt;

Tested type is accessible in test case body as TestType
Unique name is created by appending ` - &lt;index&gt;` to test name
since preprocessor has some limitations in recursions

Closes #1454
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
support for generating test cases based on multiple template template
types combined with template arguments for each of the template template
types specified

e.g.
```
TEMPLATE_PRODUCT_TEST_CASE("template product","[template]",
			   (std::tuple, std::pair, std::map),
			   ((int,float),(char,double),(int,char)))
```
will effectively create 9 test cases with types:
std::tuple&lt;int,float&gt;
std::tuple&lt;char,double&gt;
std::tuple&lt;int,char&gt;
std::pair&lt;int,float&gt;
std::pair&lt;char, double&gt;
std::pair&lt;int,char&gt;
std::map&lt;int,float&gt;
std::map&lt;char,double&gt;
std::map&lt;int,char&gt;

Tested type is accessible in test case body as TestType
Unique name is created by appending ` - &lt;index&gt;` to test name
since preprocessor has some limitations in recursions

Closes #1454
</pre>
</div>
</content>
</entry>
<entry>
<title>Add support for templated tests</title>
<updated>2018-11-16T20:21:23+00:00</updated>
<author>
<name>Jozef Grajciar</name>
</author>
<published>2018-11-08T06:26:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=2d906a92cb82fe65e3cafab6495c0fd12a0ab0ab'/>
<id>2d906a92cb82fe65e3cafab6495c0fd12a0ab0ab</id>
<content type='text'>
This adds support for templated tests and test methods via
`TEMPLATE_TEST_CASE` and `TEMPLATE_TEST_CASE_METHOD` macros. These
work mostly just like their regular counterparts*, but take an
unlimited** number of types as their last arguments.

* Unlike the plain `TEST_CASE*` macros, the `TEMPLATE*` variants
require a tag string.

** In practice there is limit of about 300 types.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds support for templated tests and test methods via
`TEMPLATE_TEST_CASE` and `TEMPLATE_TEST_CASE_METHOD` macros. These
work mostly just like their regular counterparts*, but take an
unlimited** number of types as their last arguments.

* Unlike the plain `TEST_CASE*` macros, the `TEMPLATE*` variants
require a tag string.

** In practice there is limit of about 300 types.
</pre>
</div>
</content>
</entry>
<entry>
<title>Added DYNAMIC_SECTION and implemented GIVEN/ WHEN/ THEN in terms of it</title>
<updated>2018-06-25T18:19:21+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2018-06-25T18:19:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=5c0efa1cfc3864365a16a82309698efdf0196699'/>
<id>5c0efa1cfc3864365a16a82309698efdf0196699</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
