<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/docs/logging.md, branch 0.2.0</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>v3.13.0</title>
<updated>2026-02-15T21:55:48+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-02-15T21:55:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=29c9844f688acb27c87338c39cd186ebfe41aa19'/>
<id>29c9844f688acb27c87338c39cd186ebfe41aa19</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add UNSCOPED_CAPTURE</title>
<updated>2026-01-11T13:53:08+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2026-01-08T13:35:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=2580eadc4230eedf1b66841bdd27a8aacc2412a5'/>
<id>2580eadc4230eedf1b66841bdd27a8aacc2412a5</id>
<content type='text'>
Closes #2954
Closes #3010
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #2954
Closes #3010
</pre>
</div>
</content>
</entry>
<entry>
<title>Regularize scoped message lifetime to only consider the object's scope</title>
<updated>2025-07-21T19:50:47+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2025-07-21T15:47:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=10aef62f21e52e5cd73bf0dc6ac8be35fbc4a798'/>
<id>10aef62f21e52e5cd73bf0dc6ac8be35fbc4a798</id>
<content type='text'>
This means that:
1) Scoped messages are always removed at the end of their scope,
   even if the scope ended due to an exception.
2) Scoped messages outlive section end, if that section's scope is
   enclosed in their own.

Previously neither of these were true, which has led to a number
of surprising behaviour, where e.g. this:
```cpp
TEST_CASE() {
    try {
        INFO( "some info" );
        throw std::runtime_error( "ex" );
    } catch (std::exception const&amp;) {}

    REQUIRE( false );
}
```
would print "some info" as the message for the assertion, while this:
```cpp
TEST_CASE() {
    INFO("Hello");
    SECTION("dummy") {}
    REQUIRE(false);
}
```
would not print out "Hello" as the message for the assertion.

This had an underlying reason, in that it was trying to helpfully
keep the messages around in case of unexpected exceptions, so that
code like this:
```cpp
TEST_CASE() {
    auto [input, expected] = GENERATE(...);
    CAPTURE(input);
    auto result = transform(input); // throws
    REQUIRE(result == expected);
}
```
would report the value of `input` when `transform` throws. However,
it was surprising in practice and was causing various issues around
handling of messages in other cases.

Closes #1759
Closes #2019
Closes #2959
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This means that:
1) Scoped messages are always removed at the end of their scope,
   even if the scope ended due to an exception.
2) Scoped messages outlive section end, if that section's scope is
   enclosed in their own.

Previously neither of these were true, which has led to a number
of surprising behaviour, where e.g. this:
```cpp
TEST_CASE() {
    try {
        INFO( "some info" );
        throw std::runtime_error( "ex" );
    } catch (std::exception const&amp;) {}

    REQUIRE( false );
}
```
would print "some info" as the message for the assertion, while this:
```cpp
TEST_CASE() {
    INFO("Hello");
    SECTION("dummy") {}
    REQUIRE(false);
}
```
would not print out "Hello" as the message for the assertion.

This had an underlying reason, in that it was trying to helpfully
keep the messages around in case of unexpected exceptions, so that
code like this:
```cpp
TEST_CASE() {
    auto [input, expected] = GENERATE(...);
    CAPTURE(input);
    auto result = transform(input); // throws
    REQUIRE(result == expected);
}
```
would report the value of `input` when `transform` throws. However,
it was surprising in practice and was causing various issues around
handling of messages in other cases.

Closes #1759
Closes #2019
Closes #2959
</pre>
</div>
</content>
</entry>
<entry>
<title>Mention SUCCEED along with FAIL in logging.md</title>
<updated>2024-03-29T20:40:18+00:00</updated>
<author>
<name>Jeremy</name>
</author>
<published>2024-03-29T20:40:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=07701f946a4e172d8e2ea1fe72da38f883c6ecc0'/>
<id>07701f946a4e172d8e2ea1fe72da38f883c6ecc0</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix introduced in version placeholders</title>
<updated>2021-03-13T09:26:12+00:00</updated>
<author>
<name>Jozef Grajciar</name>
</author>
<published>2021-03-12T09:22:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=037ddbc75cc5e58b93cf5a010a94b32333ad824d'/>
<id>037ddbc75cc5e58b93cf5a010a94b32333ad824d</id>
<content type='text'>
Resolves #2082
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Resolves #2082
</pre>
</div>
</content>
</entry>
<entry>
<title>Add 'Introduced in Catch 2.7.0.' note</title>
<updated>2019-08-02T17:18:47+00:00</updated>
<author>
<name>Clare Macrae</name>
</author>
<published>2019-07-21T21:35:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=c071f07e1ada47ac16bda5439fb5b3cc990375a3'/>
<id>c071f07e1ada47ac16bda5439fb5b3cc990375a3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix typos identified by codespell.</title>
<updated>2019-04-10T07:42:11+00:00</updated>
<author>
<name>Ryan Pavlik</name>
</author>
<published>2019-04-08T21:30:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=edde6f473604c6364476d2963939272ac7c795d4'/>
<id>edde6f473604c6364476d2963939272ac7c795d4</id>
<content type='text'>
Self test baselines also modified accordingly, due to
one typo found in a string in test code.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Self test baselines also modified accordingly, due to
one typo found in a string in test code.
</pre>
</div>
</content>
</entry>
<entry>
<title>Document unscoped info</title>
<updated>2019-03-06T21:04:35+00:00</updated>
<author>
<name>Omer Ozarslan</name>
</author>
<published>2019-02-04T01:41:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1701325caa11af8ceff92c7254e12f5a8f77ada5'/>
<id>1701325caa11af8ceff92c7254e12f5a8f77ada5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Docs: note to INFO</title>
<updated>2019-01-22T11:37:03+00:00</updated>
<author>
<name>Jozef Grajciar</name>
</author>
<published>2019-01-22T10:23:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=8d5d54e52939326eadee0935432d832f4bed442e'/>
<id>8d5d54e52939326eadee0935432d832f4bed442e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix CAPTURE macro for nontrivial uses</title>
<updated>2018-11-21T15:48:09+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2018-11-19T22:06:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=59087f74d9ee8ed956d3df09b044c502b71862fd'/>
<id>59087f74d9ee8ed956d3df09b044c502b71862fd</id>
<content type='text'>
The previous implemetation was just plain broken for most of
possible uses, the new one should work (even though it is ugly
as all hell, and should be improved ASAP).

Fixes #1436
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The previous implemetation was just plain broken for most of
possible uses, the new one should work (even though it is ugly
as all hell, and should be improved ASAP).

Fixes #1436
</pre>
</div>
</content>
</entry>
</feed>
