Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Catch2 2.4.2 -> 2.9.1 Changelog

2.9.1

Fixes

  • Fix benchmarking compilation failure in files without CATCH_CONFIG_EXTERNAL_INTERFACES (or implementation)

2.9.0

Improvements

  • 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)

2.8.0

Improvements

  • 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, and size_t without compilation failing
  • The precision of floating point stringification can be modified by user (#1612, #1614)
  • We now provide REGISTER_ENUM convenience macro for generating StringMaker 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

Fixes

  • 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)

Miscellaneous

  • 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

2.7.2

Improvements

  • Added an approximate vector matcher (#1499)

Fixes

  • 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

Miscellaneous

  • 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
  • CatchAddTests now adds test's tags to their CTest labels (#1600)
  • Added basic CPack support to our build

2.7.1

Improvements

  • Reporters now print out the filters applied to test cases (#1550, #1585)
  • Added GENERATE_COPY and GENERATE_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
  • The map generator helper now deduces the mapped return type (#1576)

Fixes

  • 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)

2.7.0

Improvements

  • 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
  • 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.

Fixes

  • 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

Contrib

  • ParseAndAddCatchTests now properly escapes commas in the test name

2.6.1

Improvements

  • The JUnit reporter now also reports random seed (#1520, #1521)

Fixes

  • The TAP reporter now formats comments with test name properly (#1529)
  • CATCH_REQUIRE_THROWS's internals were unified with REQUIRE_THROWS (#1536)
    • This fixes a potential -Wunused-value warning when used
  • Fixed a potential segfault when using any of the --list-* options (#1533, #1534)

2.6.0

With this release the data generator feature is now fully supported.

Improvements

  • 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 for std::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

Fixes

  • 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 marked noexcept
    • CATCH_BREAK_INTO_DEBUGGER is now always a function
  • 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)

Contrib

  • ParseAndAddCatchTests has learned how to use DISABLED CTest property (#1452)
  • ParseAndAddCatchTests now works when there is a whitspace before the test name (#1493)

Miscellaneous

  • We added new issue templates for reporting issues on GitHub
  • contributing.md has been updated to reflect the current test status (#1484)

2.5.0

Improvements

  • Added support for templated tests via TEMPLATE_TEST_CASE (#1437)

Fixes

  • Fixed compilation of PredicateMatcher<const char*> by removing partial specialization of MatcherMethod<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)

Miscellaneous

  • 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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.