<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3, branch v2.12.2</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>v2.12.2</title>
<updated>2020-05-25T13:13:18+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-25T13:13:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=b1b5cb812277f367387844aab46eb2d3b15d03cd'/>
<id>b1b5cb812277f367387844aab46eb2d3b15d03cd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Really fix use of std::result_of when invoke_result is available</title>
<updated>2020-05-22T08:05:34+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-21T19:39:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=77dc8cfc45e7bae1d1219bac2e06bac87eb8c6b1'/>
<id>77dc8cfc45e7bae1d1219bac2e06bac87eb8c6b1</id>
<content type='text'>
Closes #1934
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #1934
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid using std::result_of when std::invoke_result is available</title>
<updated>2020-05-21T19:39:19+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-21T19:39:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ddc9f4c61df438952a4c0c2e451d25677ecf4b2b'/>
<id>ddc9f4c61df438952a4c0c2e451d25677ecf4b2b</id>
<content type='text'>
Closes #1934
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #1934
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove obsolete comment in UnorderedEquals vector matcher</title>
<updated>2020-05-18T12:29:50+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-18T12:29:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=bed47374cee07c6f9fec1a84d1afddba887fe731'/>
<id>bed47374cee07c6f9fec1a84d1afddba887fe731</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Create a BUILD file for compatibility with bazel</title>
<updated>2020-05-17T11:18:22+00:00</updated>
<author>
<name>Valentin Tolmer</name>
</author>
<published>2020-05-08T08:08:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=0e9bae1cdb5d7bcd967bcab10539805cc3bccb32'/>
<id>0e9bae1cdb5d7bcd967bcab10539805cc3bccb32</id>
<content type='text'>
With this change, it's much easier for bazel projects to depend on
Catch. They just need to add:
  - In the workspace:
  ```
http_archive(
    name = "com_github_catchorg_catch2",
    urls = ["https://github.com/catchorg/Catch2/archive/v2.12.1.tar.gz"],
    strip_prefix = "Catch2-2.12.1",
    sha256 = "e5635c082282ea518a8dd7ee89796c8026af8ea9068cd7402fb1615deacd91c3",
)
```
  Or the appropriate version/sha256.
  - For the tests, assuming that `test_main.cc` contains the
  `CATCH_CONFIG_MAIN`:
  ```
cc_library(
    name = "test_main",
    srcs = ["test_main.cc"],
    deps = ["@com_github_catchorg_catch2//:catch2"],
)
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With this change, it's much easier for bazel projects to depend on
Catch. They just need to add:
  - In the workspace:
  ```
http_archive(
    name = "com_github_catchorg_catch2",
    urls = ["https://github.com/catchorg/Catch2/archive/v2.12.1.tar.gz"],
    strip_prefix = "Catch2-2.12.1",
    sha256 = "e5635c082282ea518a8dd7ee89796c8026af8ea9068cd7402fb1615deacd91c3",
)
```
  Or the appropriate version/sha256.
  - For the tests, assuming that `test_main.cc` contains the
  `CATCH_CONFIG_MAIN`:
  ```
cc_library(
    name = "test_main",
    srcs = ["test_main.cc"],
    deps = ["@com_github_catchorg_catch2//:catch2"],
)
```
</pre>
</div>
</content>
</entry>
<entry>
<title>Add status attribute to JUnit's section reporting</title>
<updated>2020-05-15T19:00:19+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-15T19:00:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f133277910c59ba5526a081e94d5e4ece406e517'/>
<id>f133277910c59ba5526a081e94d5e4ece406e517</id>
<content type='text'>
This brings our output inline with GTest's. We do not handle skipped
tests properly, but that should be currently less important than
having the attribute exist with proper value for non-skipped tests.

Thanks @joda-01.

Closes #1899
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This brings our output inline with GTest's. We do not handle skipped
tests properly, but that should be currently less important than
having the attribute exist with proper value for non-skipped tests.

Thanks @joda-01.

Closes #1899
</pre>
</div>
</content>
</entry>
<entry>
<title>Document that user can only provide main in TU with CONFIG_RUNNER</title>
<updated>2020-05-15T13:57:27+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-15T13:57:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f764ee3d30e441db93d4b48b61340eaba7ecfb2b'/>
<id>f764ee3d30e441db93d4b48b61340eaba7ecfb2b</id>
<content type='text'>
Closes #1851
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #1851
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix compilation failure when using libstdc++10 (#1929)</title>
<updated>2020-05-15T09:30:12+00:00</updated>
<author>
<name>Natsu</name>
</author>
<published>2020-05-15T09:30:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=c190061001739e8bf240a78059f1a3e927a35efc'/>
<id>c190061001739e8bf240a78059f1a3e927a35efc</id>
<content type='text'>
The issue is caused by deleted `std::__detail::begin` declared in `bits/iterator_concepts.h`. This would be found by ADL, and because it is deleted, compilation would fail. This change makes it so that we SFINAE on `begin(std::declval&lt;T&gt;())` and `end(std::declval&lt;T&gt;())` being well-formed.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The issue is caused by deleted `std::__detail::begin` declared in `bits/iterator_concepts.h`. This would be found by ADL, and because it is deleted, compilation would fail. This change makes it so that we SFINAE on `begin(std::declval&lt;T&gt;())` and `end(std::declval&lt;T&gt;())` being well-formed.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix invalid isspace call detected by PREfast</title>
<updated>2020-05-12T12:07:22+00:00</updated>
<author>
<name>Billy Robert O'Neal III</name>
</author>
<published>2020-05-12T03:38:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=b1dcdc5032f09cab0a5834476d85e999bb608ce6'/>
<id>b1dcdc5032f09cab0a5834476d85e999bb608ce6</id>
<content type='text'>
D:\vcpkg\toolsrc\include\catch2\catch.hpp(11285): warning C6330: 'char' passed as _Param_(1) when 'unsigned char' is required in call to 'isspace'.
D:\vcpkg\toolsrc\include\catch2\catch.hpp(11288): warning C6330: 'char' passed as _Param_(1) when 'unsigned char' is required in call to 'isspace'.

ISO/IEC 9899:2011:
"7.4 Character handling &lt;ctype.h&gt;"/1
[...] In all cases the argument is an int, the value of which shall be
representable as an unsigned char or shall equal the value of the macro
EOF. If the argument has any other value, the behavior is undefined.

This means if isspace was passed a character like ñ it could corrupt
memory without the static_cast to treat it as a positive value after
integral promotion (and C libraries commonly use the int index supplied
as a key into a table which result in out of bounds access if the
resulting int is negative).
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
D:\vcpkg\toolsrc\include\catch2\catch.hpp(11285): warning C6330: 'char' passed as _Param_(1) when 'unsigned char' is required in call to 'isspace'.
D:\vcpkg\toolsrc\include\catch2\catch.hpp(11288): warning C6330: 'char' passed as _Param_(1) when 'unsigned char' is required in call to 'isspace'.

ISO/IEC 9899:2011:
"7.4 Character handling &lt;ctype.h&gt;"/1
[...] In all cases the argument is an int, the value of which shall be
representable as an unsigned char or shall equal the value of the macro
EOF. If the argument has any other value, the behavior is undefined.

This means if isspace was passed a character like ñ it could corrupt
memory without the static_cast to treat it as a positive value after
integral promotion (and C libraries commonly use the int index supplied
as a key into a table which result in out of bounds access if the
resulting int is negative).
</pre>
</div>
</content>
</entry>
<entry>
<title>Silence clang-tidy's hicpp-vararg (alias of coreguidelines vararg)</title>
<updated>2020-05-09T16:23:12+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2020-05-09T16:23:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f0e596e2522f64451f6444edab5c59b8b9e8e082'/>
<id>f0e596e2522f64451f6444edab5c59b8b9e8e082</id>
<content type='text'>
Ideally, clang-tidy would be smart that if one alias of a warning
is suppressed, then the other one is suppressed as well, but as of
right now, it isn't. This means that for now we have to suppress
both aliases of this warning. Opened upstream issue to fix this:
https://bugs.llvm.org/show_bug.cgi?id=45859

Obviously, ideally clang-tidy would also not warn that we are calling
a vararg function when it is an unevaluated magic builtin, but that
also is not happening right now and I opened an issue for it:
https://bugs.llvm.org/show_bug.cgi?id=45860

Closes #1921
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ideally, clang-tidy would be smart that if one alias of a warning
is suppressed, then the other one is suppressed as well, but as of
right now, it isn't. This means that for now we have to suppress
both aliases of this warning. Opened upstream issue to fix this:
https://bugs.llvm.org/show_bug.cgi?id=45859

Obviously, ideally clang-tidy would also not warn that we are calling
a vararg function when it is an unevaluated magic builtin, but that
also is not happening right now and I opened an issue for it:
https://bugs.llvm.org/show_bug.cgi?id=45860

Closes #1921
</pre>
</div>
</content>
</entry>
</feed>
