<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/include/internal/catch_test_case_registry_impl.hpp, branch Catch1.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>Wrap all uses in min and max in extra parentheses</title>
<updated>2018-02-23T12:06:52+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2018-02-23T12:06:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=3fe4d394a585b89df51ec2eaa6307d33358e527f'/>
<id>3fe4d394a585b89df51ec2eaa6307d33358e527f</id>
<content type='text'>
This prevents `min` and `max` macros from windows headers (!@#$)
from breaking compilation.

Related to #1191
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This prevents `min` and `max` macros from windows headers (!@#$)
from breaking compilation.

Related to #1191
</pre>
</div>
</content>
</entry>
<entry>
<title>`RandomNumberGenerator::result_type` should be unsigned (#1050)</title>
<updated>2017-10-15T16:30:40+00:00</updated>
<author>
<name>Sebastian Grottel</name>
</author>
<published>2017-10-15T16:30:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=296955c437f29addaf6c5cbfeb47a606b96a5ab1'/>
<id>296955c437f29addaf6c5cbfeb47a606b96a5ab1</id>
<content type='text'>
`result_type` must be unsigned:
http://en.cppreference.com/w/cpp/concept/UniformRandomBitGenerator

Using a signed type causes an infinite loop working with MS Visual Studio 2017, targetting: v140, WindowsTargetPlatformVersion 10.0.15063.0, Debug, x64
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`result_type` must be unsigned:
http://en.cppreference.com/w/cpp/concept/UniformRandomBitGenerator

Using a signed type causes an infinite loop working with MS Visual Studio 2017, targetting: v140, WindowsTargetPlatformVersion 10.0.15063.0, Debug, x64
</pre>
</div>
</content>
</entry>
<entry>
<title>More include simplifications</title>
<updated>2017-02-13T13:12:22+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-02-12T12:34:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=bc68b9f454021455f35fc005e59663a62ed71bca'/>
<id>bc68b9f454021455f35fc005e59663a62ed71bca</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Various small string usage performance improvements.</title>
<updated>2017-01-15T09:05:01+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-01-15T08:41:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=3b98a0166f7b7196eba2ad518174d1a77165166d'/>
<id>3b98a0166f7b7196eba2ad518174d1a77165166d</id>
<content type='text'>
* Empty strings are now direct constructed as `std::string()`, not as empty string literals.
* `startsWith` and `endsWith` no longer construct new a string. This should be an improvement
for libstdc++ when using older standards, as it doesn't use SSO but COW and thus even short
strings are expensive to first create.
* Various places now use char literal instead of string literals containing single char.
** `startsWith` and `endsWith` now also have overload that takes single char.

Generally the performance improvements under VS2015 are small, as going from short string
to char is mostly meaningless because of SSO (Catch doesn't push string handling that hard)
and previous commit removed most string handling if tests pass, which is the expect case.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Empty strings are now direct constructed as `std::string()`, not as empty string literals.
* `startsWith` and `endsWith` no longer construct new a string. This should be an improvement
for libstdc++ when using older standards, as it doesn't use SSO but COW and thus even short
strings are expensive to first create.
* Various places now use char literal instead of string literals containing single char.
** `startsWith` and `endsWith` now also have overload that takes single char.

Generally the performance improvements under VS2015 are small, as going from short string
to char is mostly meaningless because of SSO (Catch doesn't push string handling that hard)
and previous commit removed most string handling if tests pass, which is the expect case.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed compile error under VS2015 /c++:latest, caused by using random_shuffle</title>
<updated>2017-01-09T22:29:13+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2017-01-07T11:58:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=6991549457a13aa73f4ca59862b794ee7ed5e177'/>
<id>6991549457a13aa73f4ca59862b794ee7ed5e177</id>
<content type='text'>
Now if we detect C++11 compiler, or MSVC in version corresponding to VS2015,
we switch from using `std::random_shuffle` to `std::shuffle`.

`std::random_shuffle` was officially deprecated in C++14, and removed in C++17.

Also removed guarded inclusion of `&lt;random&gt;` header, as there was nothing
in the header that used it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now if we detect C++11 compiler, or MSVC in version corresponding to VS2015,
we switch from using `std::random_shuffle` to `std::shuffle`.

`std::random_shuffle` was officially deprecated in C++14, and removed in C++17.

Also removed guarded inclusion of `&lt;random&gt;` header, as there was nothing
in the header that used it.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix random_shuffle narrowing warnings</title>
<updated>2016-10-14T21:06:45+00:00</updated>
<author>
<name>Billy Robert O'Neal III</name>
</author>
<published>2016-10-14T21:06:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ccf7f2842a356e8901f8e6fe988da2f5a93db329'/>
<id>ccf7f2842a356e8901f8e6fe988da2f5a93db329</id>
<content type='text'>
Catch passes an RNG which accepts int to random_shuffle. Inside
random_shuffle, the STL tries to call that RNG with the difference_type
of the user provided iterators. For std::vector, this is ptrdiff_t,
which on amd64 builds is wider than int. This triggers a narrowing
warning because the 64 bit difference is being truncated to 32 bits.

Note that this RNG implementation still does not produce a correctly
uniformly shuffled result -- it's currently asserting that std::rand
can produce 1000000 which is false -- but I don't know enough about
how much repeatable shuffles are necessary here, so I'm leaving that
alone for now.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Catch passes an RNG which accepts int to random_shuffle. Inside
random_shuffle, the STL tries to call that RNG with the difference_type
of the user provided iterators. For std::vector, this is ptrdiff_t,
which on amd64 builds is wider than int. This triggers a narrowing
warning because the 64 bit difference is being truncated to 32 bits.

Note that this RNG implementation still does not produce a correctly
uniformly shuffled result -- it's currently asserting that std::rand
can produce 1000000 which is false -- but I don't know enough about
how much repeatable shuffles are necessary here, so I'm leaving that
alone for now.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fixed RNG issue with pre C++14 compilers</title>
<updated>2016-06-09T18:07:05+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2016-06-09T18:07:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1aa6c91e6428d3f25bc4329ef6eb7938cd53a157'/>
<id>1aa6c91e6428d3f25bc4329ef6eb7938cd53a157</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Use std::shuffle instead of (deprecated) std::random_shuffle if C++14 detected</title>
<updated>2016-06-09T07:15:57+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2016-06-09T07:15:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=be3570ef22a450e7e040913822828468f70d7f81'/>
<id>be3570ef22a450e7e040913822828468f70d7f81</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[#608] Don't use exit() on duplicate test descriptions</title>
<updated>2016-04-01T16:56:51+00:00</updated>
<author>
<name>Robert Dailey</name>
</author>
<published>2016-04-01T16:54:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=86c0ea2999d1b64af2d1771687567bc4bed2d3f9'/>
<id>86c0ea2999d1b64af2d1771687567bc4bed2d3f9</id>
<content type='text'>
Instead of `exit(1)`, it now throws `std::runtime_error` with the details
of the failure. This exception is handled in `run()` at a higher level where
the log is printed to cerr and the test gracefully exits.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Instead of `exit(1)`, it now throws `std::runtime_error` with the details
of the failure. This exception is handled in `run()` at a higher level where
the log is printed to cerr and the test gracefully exits.
</pre>
</div>
</content>
</entry>
<entry>
<title>patch build to include last two fixes</title>
<updated>2015-12-09T18:11:48+00:00</updated>
<author>
<name>Phil Nash</name>
</author>
<published>2015-12-09T18:11:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=981347b6e432007882fd59f9a498c363a3b39ec0'/>
<id>981347b6e432007882fd59f9a498c363a3b39ec0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
