- Fix benchmarking compilation failure in files without
CATCH_CONFIG_EXTERNAL_INTERFACES
(or implementation)
- The experimental benchmarking support has been replaced by integrating Nonius code (#1616)
- This provides a much more featurefull micro-benchmarking support.
- Due to the compilation cost, it is disabled by default. See the documentation for details.
- As far as backwards compatibility is concerned, this feature is still considered experimental in that we might change the interface based on user feedback.
WithinULP
matcher now shows the acceptable range (#1581)- Template test cases now support type lists (#1627)
- Templated test cases no longer check whether the provided types are unique (#1628)
- This allows you to e.g. test over
uint32_t
,uint64_t
, andsize_t
without compilation failing
- This allows you to e.g. test over
- The precision of floating point stringification can be modified by user (#1612, #1614)
- We now provide
REGISTER_ENUM
convenience macro for generatingStringMaker
specializations for enums- See the "String conversion" documentation for details
- Added new set of macros for template test cases that enables the use of NTTPs (#1531, #1609)
- See "Test cases and sections" documentation for details
UNSCOPED_INFO
macro now has a prefixed/disabled/prefixed+disabled versions (#1611)- Reporting errors at startup should no longer cause a segfault under certain circumstances (#1626)
- CMake will now prevent you from attempting in-tree build (#1636, #1638)
- Previously it would break with an obscure error message during the build step
- Added an approximate vector matcher (#1499)
- Filters will no longer be shown if there were none
- Fixed compilation error when using Homebrew GCC on OS X (#1588, #1589)
- Fixed the console reporter not showing messages that start with a newline (#1455, #1470)
- Modified JUnit reporter's output so that rng seed and filters are reported according to the JUnit schema (#1598)
- Fixed some obscure warnings and static analysis passes
- Various improvements to
ParseAndAddCatchTests
(#1559, #1601)- When a target is parsed, it receives
ParseAndAddCatchTests_TESTS
property which summarizes found tests - Fixed problem with tests not being found if the
OptionalCatchTestLauncher
variables is used - Including the script will no longer forcefully modify
CMAKE_MINIMUM_REQUIRED_VERSION
- CMake object libraries are ignored when parsing to avoid needless warnings
- When a target is parsed, it receives
CatchAddTests
now adds test's tags to their CTest labels (#1600)- Added basic CPack support to our build
- Reporters now print out the filters applied to test cases (#1550, #1585)
- Added
GENERATE_COPY
andGENERATE_REF
macros that can use variables inside the generator expression- Because of the significant danger of lifetime issues, the default
GENERATE
macro still does not allow variables
- Because of the significant danger of lifetime issues, the default
- The
map
generator helper now deduces the mapped return type (#1576)
- Fixed ObjC++ compilation (#1571)
- Fixed test tag parsing so that
[.foo]
is now parsed as[.][foo]
. - Suppressed warning caused by the Windows headers defining SE codes in different manners (#1575)
TEMPLATE_PRODUCT_TEST_CASE
now uses the resulting type in the name, instead of the serial number (#1544)- Catch2's single header is now strictly ASCII (#1542)
- Added generator for random integral/floating point types
- The types are inferred within the
random
helper
- The types are inferred within the
- Added back RangeGenerator (#1526)
- RangeGenerator returns elements within a certain range
- Added ChunkGenerator generic transform (#1538)
- A ChunkGenerator returns the elements from different generator in chunks of n elements
- Added
UNSCOPED_INFO
(#415, #983, #1522)- This is a variant of
INFO
that lives until next assertion/end of the test case.
- This is a variant of
- All calls to C stdlib functions are now
std::
qualified (#1541)- Code brought in from Clara was also updated.
- Running tests will no longer open the specified output file twice (#1545)
- This would cause trouble when the file was not a file, but rather a named pipe
- Fixes the CLion/Resharper integration with Catch
- Fixed
-Wunreachable-code
occurring with (old) ccache+cmake+clang combination (#1540) - Fixed
-Wdefaulted-function-deleted
warning with Clang 8 (#1537) - Catch2's type traits and helpers are now properly namespaced inside
Catch::
(#1548) - Fixed std{out,err} redirection for failing test (#1514, #1525)
- Somehow, this bug has been present for well over a year before it was reported
ParseAndAddCatchTests
now properly escapes commas in the test name
- The JUnit reporter now also reports random seed (#1520, #1521)
- The TAP reporter now formats comments with test name properly (#1529)
CATCH_REQUIRE_THROWS
's internals were unified withREQUIRE_THROWS
(#1536)- This fixes a potential
-Wunused-value
warning when used
- This fixes a potential
- Fixed a potential segfault when using any of the
--list-*
options (#1533, #1534)
With this release the data generator feature is now fully supported.
- Added
TEMPLATE_PRODUCT_TEST_CASE
(#1454, #1468)- This allows you to easily test various type combinations, see documentation for details
- The error message for
&&
and||
inside assertions has been improved (#1273, #1480) - The error message for chained comparisons inside assertions has been improved (#1481)
- Added
StringMaker
specialization forstd::optional
(#1510) - The generator interface has been redone once again (#1516)
- It is no longer considered experimental and is fully supported
- The new interface supports "Input" generators
- The generator documentation has been fully updated
- We also added 2 generator examples
- Fixed
-Wredundant-move
on newer Clang (#1474) - Removed unreachable mentions
std::current_exception
,std::rethrow_exception
in no-exceptions mode (#1462)- This should fix compilation with IAR
- Fixed missing
<type_traits>
include (#1494) - Fixed various static analysis warnings
- Unrestored stream state in
XmlWriter
(#1489) - Potential division by zero in
estimateClockResolution
(#1490) - Uninitialized member in
RunContext
(#1491) SourceLineInfo
move ops are now markednoexcept
CATCH_BREAK_INTO_DEBUGGER
is now always a function
- Unrestored stream state in
- Fix double run of a test case if user asks for a specific section (#1394, #1492)
- ANSI colour code output now respects
-o
flag and writes to the file as well (#1502) - Fixed detection of
std::variant
support for compilers other than Clang (#1511)
ParseAndAddCatchTests
has learned how to useDISABLED
CTest property (#1452)ParseAndAddCatchTests
now works when there is a whitspace before the test name (#1493)
- We added new issue templates for reporting issues on GitHub
contributing.md
has been updated to reflect the current test status (#1484)
- Added support for templated tests via
TEMPLATE_TEST_CASE
(#1437)
- Fixed compilation of
PredicateMatcher<const char*>
by removing partial specialization ofMatcherMethod<T*>
- Listeners now implicitly support any verbosity (#1426)
- Fixed compilation with Embarcadero builder by introducing
Catch::isnan
polyfill (#1438) - Fixed
CAPTURE
asserting for non-trivial captures (#1436, #1448)
- We should now be providing first party Conan support via https://bintray.com/catchorg/Catch2 (#1443)
- Added new section "deprecations and planned changes" to the documentation
- It contains summary of what is deprecated and might change with next major version
- From this release forward, the released headers should be pgp signed (#430)
- KeyID
E29C 46F3 B8A7 5028 6079 3B7D ECC9 C20E 314B 2360
- or https://codingnest.com/files/horenmar-publickey.asc
- KeyID