Skip to content

1.2.0

Compare
Choose a tag to compare
@onqtam onqtam released this 15 May 21:27
· 788 commits to master since this release

see the changelog

download the header from here

The main changes are:

  • improved runtime by more than 30 times compared to version 1.1.4 by eliminating allocations in the common case:
    • when asserts don't fail the expression is not stringified
    • rewrote the String class to employ the small string optimization
    • see the benchmarks
  • templated test cases - parameterized by type
  • an exception translation mechanism
  • logging context with INFO("text: " << some_variable) with lazy string creation - only when an assert fails later in the current scope
  • an API for reporting failures by third-party code such as mocking frameworks
  • !!! BREAKING CHANGE !!! the TEST_SUITE() macro now works with blocks of code
  • multiple binaries (dll/exe) can share the same test runner/registry by defining the DOCTEST_CONFIG_IMPLEMENTATION_IN_DLL config identifier
  • subcases can be filtered
  • added support for un-parenthesized expressions containing commas in asserts - like this: CHECK(std::vector<int>{1, 2} == std::vector<int>{1, 3}); (only if variadic macros are enabled)
  • crash handling support - using signals under UNIX and SEH under Windows - reports which test case failed and exits
  • added support for test case decorators - description, skip, may_fail, should_fail, expected_failures, timeout, etc.
  • added option to show duration of test case execution
  • statically analysed on the CI - Cppcheck / Clang-Tidy / Coverity Scan / OCLint / Visual Studio Analyzer