<feed xmlns='http://www.w3.org/2005/Atom'>
<title>catch3, branch feature/property-combinators</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>Add composite property generators, single-trial replay and stable counterexample printing</title>
<updated>2026-10-02T00:27:05+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-10-02T00:27:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=5d55a3226360fae1eaa5ef91908b0fa7d7d07234'/>
<id>5d55a3226360fae1eaa5ef91908b0fa7d7d07234</id>
<content type='text'>
Property tests could only generate one integer or Boolean. This adds the
composite strategies the documentation listed as missing, without changing
any Catch2 file or the existing Progmasoft API.

Generators:
- Tuple(generators...) draws components left to right and shrinks one
  component at a time, which is how a property receives several arguments.
- Vector(element, minimumSize, maximumSize) and Text(alphabet,
  minimumLength, maximumLength) share one ordered shrink: shortest allowed
  prefix, the two halves, single removals, then single element
  simplifications. A shrunk value never falls below its minimum, each step
  offers at most 256 candidates, and a size limit above 1,048,576 is
  rejected.
- Element(values) picks from a fixed list and shrinks toward earlier
  entries.

Runner:
- PropertyOptions::ReplayTrialSeed runs exactly one trial with a reported
  replay seed, including its shrinking, so a failure from a log can be
  reproduced without rerunning earlier trials. The report now ends with the
  line that names this option and the seed.
- Counterexamples of tuples, pairs and vectors are printed element by
  element instead of relying on Catch2's optional string makers, so the
  report does not depend on configuration macros or include order.

The headers still compile for clients built without language exceptions.
Thirteen new test cases cover bounds, determinism, shrink order, candidate
limits, minimized counterexamples, replay and invalid configurations, and
every build description (Bazel, CMake, Meson, Xmake, Premake) lists the new
headers and test file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Property tests could only generate one integer or Boolean. This adds the
composite strategies the documentation listed as missing, without changing
any Catch2 file or the existing Progmasoft API.

Generators:
- Tuple(generators...) draws components left to right and shrinks one
  component at a time, which is how a property receives several arguments.
- Vector(element, minimumSize, maximumSize) and Text(alphabet,
  minimumLength, maximumLength) share one ordered shrink: shortest allowed
  prefix, the two halves, single removals, then single element
  simplifications. A shrunk value never falls below its minimum, each step
  offers at most 256 candidates, and a size limit above 1,048,576 is
  rejected.
- Element(values) picks from a fixed list and shrinks toward earlier
  entries.

Runner:
- PropertyOptions::ReplayTrialSeed runs exactly one trial with a reported
  replay seed, including its shrinking, so a failure from a log can be
  reproduced without rerunning earlier trials. The report now ends with the
  line that names this option and the seed.
- Counterexamples of tuples, pairs and vectors are printed element by
  element instead of relying on Catch2's optional string makers, so the
  report does not depend on configuration macros or include order.

The headers still compile for clients built without language exceptions.
Thirteen new test cases cover bounds, determinism, shrink order, candidate
limits, minimized counterexamples, replay and invalid configurations, and
every build description (Bazel, CMake, Meson, Xmake, Premake) lists the new
headers and test file.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid mixed-mode libc++ container annotations in Catch3 stream reuse: store released stream indices in a node-based list so ASan-instrumented clients can link the uninstrumented library without vector relocation false positives; preserve public API and third-party build flags</title>
<updated>2026-09-29T20:00:34+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-29T20:00:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=febb5b1e244174da0985b9994f8d5ed1676950e8'/>
<id>febb5b1e244174da0985b9994f8d5ed1676950e8</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Support exception-free clients in Catch3 property headers</title>
<updated>2026-09-29T16:54:42+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-29T16:54:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=a870d0a4b37c2840db4eeaaaaf57b4eab4db75d3'/>
<id>a870d0a4b37c2840db4eeaaaaf57b4eab4db75d3</id>
<content type='text'>
Preserve the existing exception-throwing and exception-catching API when language exceptions are enabled. Compile the property evaluator, shrinker and value formatter without try/catch for clients using -fno-exceptions, and fail loudly on invalid generator range or missing callbacks instead of requiring throw expressions in those translation units.

Export the new diagnostic helper through Bazel and Meson header installations. This changes neither the upstream Catch2 implementation nor its compiler flags.

Validation: Clang++ C++20 syntax checks passed for property generators with exceptions both disabled and enabled; changed headers were formatted and git diff --check passed. The consuming compiler's Linux/Windows/macOS CI will verify the integration.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Preserve the existing exception-throwing and exception-catching API when language exceptions are enabled. Compile the property evaluator, shrinker and value formatter without try/catch for clients using -fno-exceptions, and fail loudly on invalid generator range or missing callbacks instead of requiring throw expressions in those translation units.

Export the new diagnostic helper through Bazel and Meson header installations. This changes neither the upstream Catch2 implementation nor its compiler flags.

Validation: Clang++ C++20 syntax checks passed for property generators with exceptions both disabled and enabled; changed headers were formatted and git diff --check passed. The consuming compiler's Linux/Windows/macOS CI will verify the integration.
</pre>
</div>
</content>
</entry>
<entry>
<title>Backport upstream range-header and Clang diagnostic fixes</title>
<updated>2026-09-29T14:45:59+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-29T14:45:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=1f2ec07fdfe05af6df9a573f2c16551e91eef3a6'/>
<id>1f2ec07fdfe05af6df9a573f2c16551e91eef3a6</id>
<content type='text'>
Review Catch2 devel through 222e233903d287cda4713fb08e1a959e8d71fd6d. Add the direct cassert dependency to the range generator and preserve the upstream Clang pointer-to-bool diagnostic boundary in reusable streams. Record reviewed upstream revisions without changing compiler options, licensing, or fork-owned APIs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Review Catch2 devel through 222e233903d287cda4713fb08e1a959e8d71fd6d. Add the direct cassert dependency to the range generator and preserve the upstream Clang pointer-to-bool diagnostic boundary in reusable streams. Record reviewed upstream revisions without changing compiler options, licensing, or fork-owned APIs.
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix macOS exit-guard error handling build</title>
<updated>2026-09-27T22:17:48+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-27T22:17:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=bf6f0aba4b5fc4ee47a3dd99650993494b26e090'/>
<id>bf6f0aba4b5fc4ee47a3dd99650993494b26e090</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Harden Catch3 exit guards and pin build workflows</title>
<updated>2026-09-27T22:10:14+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-27T22:10:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=97328fefe9650c84b594f1cea212c48562e1745b'/>
<id>97328fefe9650c84b594f1cea212c48562e1745b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add Catch3 issue forms</title>
<updated>2026-09-27T17:00:50+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-27T17:00:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=fbd2ec1c12c3ea39df0b7af01b6ab11360302299'/>
<id>fbd2ec1c12c3ea39df0b7af01b6ab11360302299</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Add CodeQL, Codecov, Dependabot, Codacy and contribution checks for Catch3</title>
<updated>2026-09-26T13:56:52+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-26T13:56:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=f5e8586fc5640d21798ce4ab1229d1b9387665d1'/>
<id>f5e8586fc5640d21798ce4ab1229d1b9387665d1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace upstream Catch2 issue templates with Catch3-specific reports and security policy</title>
<updated>2026-09-26T10:02:51+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-26T10:02:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=6e8e2fd83c5cf7d625b532580cfb896d6f5ead0b'/>
<id>6e8e2fd83c5cf7d625b532580cfb896d6f5ead0b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Validate upstream BSL and Progmasoft MPL headers separately in Catch3 CI</title>
<updated>2026-09-24T21:56:24+00:00</updated>
<author>
<name>Leitwolf11</name>
</author>
<published>2026-09-24T21:56:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.progmasoft.com/catch3/commit/?id=ecf89607b787c10302c9e31b06ecda104791a617'/>
<id>ecf89607b787c10302c9e31b06ecda104791a617</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
