Skip to content

Releases: catchorg/Catch2

v2.0.0-develop.3

30 Aug 10:27

Choose a tag to compare

Fixes

  • Fixed compilation error when comparing a pointer to long NULL
  • Fixed missing platform detection when CATCH_CONFIG_FAST_COMPILE was used
  • Silenced unused return value warning in wait-for-keypress option
  • Enabled workaround for VS2017 issue with raw string literals in assertions

Improvements

  • Added CATCH_CONFIG_DISABLE compile-time toggle inspired by Doctest
    • Assertions are turned into no-ops
    • TEST_CASEs are not registered
    • Exception translators are not registered
    • Reporters are not registered
    • Listeners are not registered
    • Further improvements are coming
  • REGISTER_TEST_CASE can be now used in global scope to provide automatic registration of test function

Breaking changes

  • Removed legacy [hide] tag
    • [!hide], [.] and [.foo] are kept

v1.10.0

26 Aug 13:35

Choose a tag to compare

1.10.0

Fixes

  • Evaluation layer has been rewritten (backported from Catch 2)
    • The new layer is much simpler and fixes some issues (#981)
  • Implemented workaround for VS 2017 raw string literal stringification bug (#995)
  • Fixed interaction between [!shouldfail] and [!mayfail] tags and sections
    • Previously sections with failing assertions would be marked as failed, not failed-but-ok

Improvements

  • Added libidentify support
  • Added "wait-for-keypress" option

v2.0.0-develop.2

18 Aug 15:04

Choose a tag to compare

v2.0.0-develop.2 Pre-release
Pre-release

Fixes

  • fixed issue when comparing non-copyable values
  • fixed issue with exception message checking with matchers

Features

  • introduced CATCH_CONFIG_EXTERNAL_INTERFACES so that, e.g., reporters can be implemented outside the main file.

Breaking changes

  • reverted -d syntax to previous behaviour (so it takes an argument again, yes or no).
  • removed deprecated INTERNAL_CATCH_REGISTER_LISTENER (use CATCH_REGISTER_LISTENER)

v2.0.0-develop.1

17 Aug 08:15

Choose a tag to compare

v2.0.0-develop.1 Pre-release
Pre-release

2.0.0-develop.1

This is the first beta release of Catch2, which rebases on C++11.

It includes many changes - some breaking - including:

Internal

  • Migrated lots of code to C++11 and removed most compatibility workarounds
  • Reworked expression decomposition layer - now much simpler and less code
  • Added, and started using in some places, a StringRef, which is similar to C++17's string_view
  • Use new, rewritten, version of Clara (for command line parsing)
  • Use new, rewritten, text formatting sub-lib, TextFlow.
  • Full project now has .cpp files instead of headers with implementation - still merged down to a single header.
  • Lots of other fixes and tweaks

Features

  • Can now use commas in assertion macros (e.g. when using template argument lists)
  • Command line can now be easily extended (as Clara has a composable interface)
  • Experimental micro-benchmarking support added

Breaking

  • Removed Catch::toString() - you must now specialise Catch::StringMaker<> instead
  • -d command line option no longer takes an argument
  • Removed old, experimental, generators support (new version will be coming)
  • Changed interface of Catch::Session as it relates to Clara - in particular removed unusedTokens(), the unusedOptionBehaviour argument from applyCommandLine() and changed the type that cli() returns.
  • Removed redundant SCOPED_MSG and SCOPED_CAPTURE

v1.9.7

10 Aug 22:01

Choose a tag to compare

1.9.7

Fixes

  • Various warnings from clang-tidy, Resharper-C++ and PVS Studio have been addressed (#957)
  • Dynamically generated sections are now properly reported (#963)
  • Writes to std::clog are redirected for reporters (#989)
    • Previously only std::cerr writes were redirected
    • Interleaved writes to std::cerr and std::clog are combined properly
  • Assertions failed before signals/structured exceptions fails test case are properly reported as failed (#990)

Improvements

  • Catch's runtime overhead has been decreased further (#940)
  • Added support for IBM i ILE c++ compiler (#976)
    • This means that AS/400 is now supported.
  • The default reporter can be configured at compile time (#978)
    • That is, the reporter used if no reporter is explicitly specified

Other

  • ParseAndAddCatchTests cmake script has couple new customization options

v1.9.6

27 Jun 10:27

Choose a tag to compare

1.9.6

Improvements

  • Catch's runtime overhead has been significantly decreased (#937, #939)
  • Added --list-extra-info cli option (#934).
    • It lists all tests together with extra information, ie filename, line number and description.

v1.9.5

15 Jun 11:08

Choose a tag to compare

1.9.5

Fixes

  • Truthy expressions are now reconstructed properly, not as booleans (#914)
  • Various warnings are no longer erroneously suppressed in test files (files that include catch.hpp, but do not define CATCH_CONFIG_MAIN or CATCH_CONFIG_RUNNER) (#871)
  • Catch no longer fails to link when main is compiled as C++, but linked against Objective-C (#855)
  • Fixed incorrect gcc version detection when deciding to use __COUNTER__ (#928)
    • Previously any GCC with minor version less than 3 would be incorrectly classified as not supporting __COUNTER__.
  • Suppressed C4996 warning caused by upcoming updated to MSVC 2017, marking std::uncaught_exception as deprecated. (#927)

Improvements

  • CMake integration script now incorporates debug messages and registers tests in an improved way (#911)
  • Various documentation improvements

v1.9.4

16 May 12:01

Choose a tag to compare

Fixes

  • CATCH_FAIL macro no longer causes compilation error without variadic macro support
  • INFO messages are no longer cleared after being reported once

Improvements and minor changes

  • Catch now uses wmain when compiled under Windows and UNICODE is defined.
    • Note that Catch still officially supports only ASCII

v1.9.3

25 Apr 14:35

Choose a tag to compare

Fixes

  • Completed the fix for (lack of) uint64_t in earlier Visual Studios

v1.9.2

25 Apr 09:08

Choose a tag to compare

Improvements and minor changes

  • All of Approx's member functions now accept strong typedefs in C++11 mode (#888)
    • Previously Approx::scale, Approx::epsilon, Approx::margin and Approx::operator() didn't.

Fixes

  • POSIX signals are now disabled by default under QNX (#889)
    • QNX does not support current enough (2001) POSIX specification
  • JUnit no longer counts exceptions as failures if given test case is marked as ok to fail.
  • Catch::Option should now have its storage properly aligned.
  • Catch no longer attempts to define uint64_t on windows (#862)
    • This was causing trouble when compiled under Cygwin

Other

  • Catch is now compiled under MSVC 2017 using std:c++latest (C++17 mode) in CI
  • We now provide cmake script that autoregisters Catch tests into ctest.
    • See contrib folder.