<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3/src, branch v3.6.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.6.0</title>
<updated>2024-05-05T18:58:18+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-05-05T18:58:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=4e8d92bf02f7d1c8006a0e7a5ecabd8e62d98502'/>
<id>4e8d92bf02f7d1c8006a0e7a5ecabd8e62d98502</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle ANSI escape sequences when performing column wrapping (#2849)</title>
<updated>2024-05-04T21:43:52+00:00</updated>
<author>
<name>Jeremy Rifkin</name>
</author>
<published>2024-05-04T21:43:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=8ce2426e53b2596a9823b4a314f72f1c3b30be82'/>
<id>8ce2426e53b2596a9823b4a314f72f1c3b30be82</id>
<content type='text'>
This PR adds functionality to skip around ANSI escape sequences in catch_textflow so they do not contribute to line length and line wrapping code does not split escape sequences in the middle. I've implemented this by creating a AnsiSkippingString abstraction that has a bidirectional iterator that can skip around escape sequences while iterating. Additionally I refactored Column::const_iterator to be iterator-based rather than index-based so this abstraction is a simple drop-in for std::string.

Currently only color sequences are handled, other escape sequences are left unaffected.

Motivation: Text with ANSI color sequences gets messed up when being output by Catch2 #2833.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds functionality to skip around ANSI escape sequences in catch_textflow so they do not contribute to line length and line wrapping code does not split escape sequences in the middle. I've implemented this by creating a AnsiSkippingString abstraction that has a bidirectional iterator that can skip around escape sequences while iterating. Additionally I refactored Column::const_iterator to be iterator-based rather than index-based so this abstraction is a simple drop-in for std::string.

Currently only color sequences are handled, other escape sequences are left unaffected.

Motivation: Text with ANSI color sequences gets messed up when being output by Catch2 #2833.</pre>
</div>
</content>
</entry>
<entry>
<title>Explicitly silence Wnon-virtual-dtor in Decomposer and MatchExpr</title>
<updated>2024-04-30T21:51:36+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-04-30T19:08:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=fa5a53df17303339eff8fda5cae0b601af207085'/>
<id>fa5a53df17303339eff8fda5cae0b601af207085</id>
<content type='text'>
Closes #2854
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #2854
</pre>
</div>
</content>
</entry>
<entry>
<title>Default StringMaker&lt;FloatingPointType&gt;::precision to max_digits10</title>
<updated>2024-04-30T15:18:48+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-04-30T14:43:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ef713582d268d9b1b15381325021d7e0f91d6ab9'/>
<id>ef713582d268d9b1b15381325021d7e0f91d6ab9</id>
<content type='text'>
`max_digits10` is the number of decimal digits that the type _can_
represent, in other words, the number of decimal digits needed to
disambiguate any two floating point numbers when serialized to
a string.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`max_digits10` is the number of decimal digits that the type _can_
represent, in other words, the number of decimal digits needed to
disambiguate any two floating point numbers when serialized to
a string.
</pre>
</div>
</content>
</entry>
<entry>
<title>Handle active Sections for fatal errors</title>
<updated>2024-04-21T19:52:33+00:00</updated>
<author>
<name>Altan Birler</name>
</author>
<published>2024-04-15T11:25:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=42fe78d0ba0eb33096a705e8f9c4814fd619eebd'/>
<id>42fe78d0ba0eb33096a705e8f9c4814fd619eebd</id>
<content type='text'>
Closes #1210

When a signal is caught, the destructors of Sections will not be called.
Thus, we must call `sectionEndedEarly` manually for those Sections.

Example test case:
```
TEST_CASE("broken") {
   SECTION("section") {
      /// Use illegal cpu instruction
      __asm__ __volatile__("ud2" : : : "memory");
   }
}
```
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #1210

When a signal is caught, the destructors of Sections will not be called.
Thus, we must call `sectionEndedEarly` manually for those Sections.

Example test case:
```
TEST_CASE("broken") {
   SECTION("section") {
      /// Use illegal cpu instruction
      __asm__ __volatile__("ud2" : : : "memory");
   }
}
```
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix build on ARM64EC (#2858)</title>
<updated>2024-04-19T08:36:37+00:00</updated>
<author>
<name>AgostonSzepessy</name>
</author>
<published>2024-04-19T08:36:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f2320724a74f95d83f8c259e1a96cf2cd9a1d6aa'/>
<id>f2320724a74f95d83f8c259e1a96cf2cd9a1d6aa</id>
<content type='text'>
Remove `#pragma intrinsic(_umul128)` because it doesn't work on
ARM64EC and x64 works without it.

Co-authored-by: Agoston Szepessy &lt;agos@microsoft.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove `#pragma intrinsic(_umul128)` because it doesn't work on
ARM64EC and x64 works without it.

Co-authored-by: Agoston Szepessy &lt;agos@microsoft.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Use Catch::StringMaker for output in WithinRelMatcher (#2846)</title>
<updated>2024-04-15T11:35:39+00:00</updated>
<author>
<name>Ian Bell</name>
</author>
<published>2024-04-15T11:35:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=53ddf37af4488cac7724761858ae3cca9d2d65e7'/>
<id>53ddf37af4488cac7724761858ae3cca9d2d65e7</id>
<content type='text'>
The WithinRelMatcher does not listen to the precision specification; it just naively pipes to stringstream. If you specify the precision, that has no impact on the outputted values when the match fails.

This fix makes the WithinRelMatcher listen to the precision (https://github.com/catchorg/Catch2/blob/devel/docs/tostring.md#floating-point-precision) specified by: Catch::StringMaker&lt;float&gt;::precision</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The WithinRelMatcher does not listen to the precision specification; it just naively pipes to stringstream. If you specify the precision, that has no impact on the outputted values when the match fails.

This fix makes the WithinRelMatcher listen to the precision (https://github.com/catchorg/Catch2/blob/devel/docs/tostring.md#floating-point-precision) specified by: Catch::StringMaker&lt;float&gt;::precision</pre>
</div>
</content>
</entry>
<entry>
<title>Actually check for x64 target with MSVC</title>
<updated>2024-04-13T20:51:17+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-04-13T20:51:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=029fe3b4609dd84cd939b73357f37bbb75bcf82f'/>
<id>029fe3b4609dd84cd939b73357f37bbb75bcf82f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix ARM64 windows builds</title>
<updated>2024-04-12T14:40:06+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-04-12T13:20:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=65794fd2b8fd05c2d5524acf44bc9ac2bad19d97'/>
<id>65794fd2b8fd05c2d5524acf44bc9ac2bad19d97</id>
<content type='text'>
Apparently I looked at the docs for umulh when checking availability,
and umul128 is x64 only.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Apparently I looked at the docs for umulh when checking availability,
and umul128 is x64 only.
</pre>
</div>
</content>
</entry>
<entry>
<title>v3.5.4</title>
<updated>2024-04-10T10:05:46+00:00</updated>
<author>
<name>Martin Hořeňovský</name>
</author>
<published>2024-04-10T10:05:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=b5373dadca40b7edc8570cf9470b9b1cb1934d40'/>
<id>b5373dadca40b7edc8570cf9470b9b1cb1934d40</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
