Skip to content

v2.10.0

Compare
Choose a tag to compare
@horenmar horenmar released this 13 Oct 21:51
v2.10.0
7c9f92b

Fixes

  • TEMPLATE_LIST_TEST_CASE now properly handles non-copyable and non-movable types (#1729)
  • Fixed compilation error on Solaris caused by a system header defining macro TT (#1722, #1723)
  • REGISTER_ENUM will now fail at compilation time if the registered enum is too large
  • Removed use of std::is_same_v in C++17 mode (#1757)
  • Fixed parsing of escaped special characters when reading test specs from a file (#1767, #1769)

Improvements

  • Trailing and leading whitespace in test/section specs are now ignored.
  • Writing to Android debug log now uses __android_log_write instead of __android_log_print
  • Android logging support can now be turned on/off at compile time (#1743)
    • The toggle is CATCH_CONFIG_ANDROID_LOGWRITE
  • Added a generator that returns elements of a range
    • Use via from_range(from, to) or from_range(container)
  • Added support for CRTs that do not provide std::nextafter (#1739)
    • They must still provide global nextafter{f,l,}
    • Enabled via CATCH_CONFIG_GLOBAL_NEXTAFTER
  • Special cased Approx(inf) not to match non-infinite values
    • Very strictly speaking this might be a breaking change, but it should match user expectations better
  • The output of benchmarking through the Console reporter when --benchmark-no-analysis is set is now much simpler (#1768)
  • Added a matcher that can be used for checking an exceptions message (#1649, #1728)
    • The matcher helper function is called Message
    • The exception must publicly derive from std::exception
    • The matching is done exactly, including case and whitespace
  • Added a matcher that can be used for checking relative equality of floating point numbers (#1746)
    • Unlike Approx, it considers both sides when determining the allowed margin
    • Special cases NaN and INFINITY to match user expectations
    • The matcher helper function is called WithinRel
  • The ULP matcher now allows for any possible distance between the two numbers
  • The random number generators now use Catch-global instance of RNG (#1734, #1736)
    • This means that nested random number generators actually generate different numbers

Miscellaneous

  • In-repo PNGs have been optimized to lower overhead of using Catch2 via git clone
  • Catch2 now uses its own implementation of the URBG concept
    • In the future we also plan to use our own implementation of the distributions from <random> to provide cross-platform repeatability of random results