Skip to content
Tags give the ability to mark specific points in history as being important
  • v2.9.2
    2c869e17 · v2.9.2 ·
    v2.9.2
    
    --- Fixes ---
    * `ChunkGenerator` can now be used with chunks of size 0 (#1671)
    * Nested subsections are now run properly when specific section is run via the `-c` argument (#1670, #1673)
    * Catch2 now consistently uses `_WIN32` to detect Windows platform (#1676)
    * `TEMPLATE_LIST_TEST_CASE` now support non-default constructible type lists (#1697)
    * Fixed a crash in the XMLReporter when a benchmark throws exception during warmup (#1706)
    * Fixed a possible infinite loop in CompactReporter (#1715)
    * Fixed `-w NoTests` returning 0 even when no tests were matched (#1449, #1683, #1684)
    * Fixed matcher compilation under Obj-C++ (#1661)
    
    --- Improvements ---
    * `RepeatGenerator` and `FixedValuesGenerator` now fail to compile when used with `bool` (#1692)
      * Previously they would fail at runtime.
    * Catch2 now supports Android's debug logging for its debug output (#1710)
    * Catch2 now detects and configures itself for the RTX platform (#1693)
      * You still need to pass `--benchmark-no-analysis` if you are using benchmarking under RTX
    * Removed a "storage class is not first" warning when compiling Catch2 with PGI compiler (#1717)
    
    --- Miscellaneous ---
    * Documentation now contains indication when a specific feature was introduced (#1695)
      * These start with Catch2 v2.3.0, (a bit over a year ago).
      * `docs/contributing.md` has been updated to provide contributors guidance on how to add these to newly written documentation
    * Various other documentation improvements
      * ToC fixes
      * Documented `--order` and `--rng-seed` command line options
      * Benchmarking documentation now clearly states that it requires opt-in
      * Documented `CATCH_CONFIG_CPP17_OPTIONAL` and `CATCH_CONFIG_CPP17_BYTE` macros
      * Properly documented built-in vector matchers
      * Improved `*_THROWS_MATCHES` documentation a bit
    * CMake config file is now arch-independent even if `CMAKE_SIZEOF_VOID_P` is in CMake cache (#1660)
    * `CatchAddTests` now properly escapes `[` and `]` in test names (#1634, #1698)
    
  • v2.9.1
    2f631bb8 · v2.9.1 ·
    v2.9.1
    
    === Fixes ===
    * Fix benchmarking compilation failure in files without `CATCH_CONFIG_EXTERNAL_INTERFACES` (or implementation)
    
  • v2.9.0
    f9dce28e · v2.9.0 ·
    v2.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)
    
  • v2.8.0
    00347f1e · v2.8.0 ·
    v2.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
    
  • v2.7.2
    7c37501b · v2.7.2 ·
    v2.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)
    
  • v2.7.1
    b9dd1936 · v2.7.1 ·
    v2.7.1
    
    --- Improvements ---
    * Reporters now print out the filters applied to test cases (#1550, #1585)
    * Added `GENERATE_COPY` and `GENERATE_VAR` 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)
    
  • v2.7.0
    d6330727 · v2.7.0 ·
    v2.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` occuring 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
    
  • v2.6.1
    dbbab872 · v2.6.1 ·
    v2.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)
    
  • v2.6.0
    d75e9b3c · v2.6.0 ·
    v2.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)
    
  • v2.5.0
    6ccd4670 · v2.5.0 ·
    v2.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)
      * KeyID `E29C 46F3 B8A7 5028 6079 3B7D ECC9 C20E 314B 2360`
      * or https://codingnest.com/files/horenmar-publickey.asc
    
  • v2.4.2
    03d122a3 · v2.4.2 ·
  • v2.4.1
    9e1bdca4 · v2.4.1 ·
  • v2.4.0
    60b05b20 · v2.4.0 ·
  • v2.3.0
    15cf3caa · v2.3.0 ·
  • v2.2.3
    d2a130f2 · v2.2.3 ·
  • v1.12.2
    6860c8de · v1.12.2 ·
  • v2.2.2
    d2d8455b · v2.2.2 ·
  • v2.2.1
    0a34cc20 · v2.2.1 ·
  • v2.2.0
    d14b7563 · v2.2.0 ·
  • v1.12.1
    74effafc · v1.12.1 ·