Catch2/Catch2.changes
Luigi Baldoni 1f019c4e02 Accepting request 884863 from home:alois:branches:devel:libraries:c_c++
- Update to version 2.13.5
 Improvements:
  * Added workaround for bug in XLC 16.1.0.1
  * Add detection for LCC when it is masquerading as GCC
  * Modified posix signal handling so it supports newer libcs
    + `MINSIGSTKSZ` was no longer usable in constexpr context.
  Fixes:
  * Fixed compilation of benchmarking when `min` and `max`
    macros are defined
    + Including `windows.h` without `NOMINMAX` remains a really
      bad idea, don't do it
  Miscellaneous:
  * `Catch2WithMain` target (static library) is no longer built
    by default
    + Building it by default was at best unnecessary overhead
      for people not using it, and at worst it caused trouble
      with install paths
    + To have it built, set CMake option
      `CATCH_BUILD_STATIC_LIBRARY` to `ON`
  * The check whether Catch2 is being built as a subproject is
    now more reliable
    + The problem was that if the variable name used internally
      was defined the project including Catch2 as subproject, it
      would not be properly overwritten for Catch2's CMake.
  version 2.13.4
  Improvements:
  * Improved the hashing algorithm used for shuffling test cases
    + `TEST_CASE`s that differ only in the last character should
      be properly shuffled
    + Note that this means that v2.13.4 gives you a different
      order of test cases than 2.13.3, even given the same seed.
  Miscellaneous:
  * Deprecated `ParseAndAddCatchTests` CMake integration
    + It is impossible to implement it properly for all the
      different test case variants Catch2 provides, and there
      are better options provided.
    + Use `catch_discover_tests` instead, which uses runtime
      information about available tests.
  * Fixed bug in `catch_discover_tests` that would cause it to
    fail when used in specific project structures
  * Added Bazel build file
  * Added an experimental static library target to CMake

OBS-URL: https://build.opensuse.org/request/show/884863
OBS-URL: https://build.opensuse.org/package/show/devel:libraries:c_c++/Catch2?expand=0&rev=9
2021-04-13 07:54:29 +00:00

396 lines
16 KiB
Plaintext

-------------------------------------------------------------------
Tue Apr 13 07:50:44 UTC 2021 - Luigi Baldoni <aloisio@gmx.com>
- Update to version 2.13.5
Improvements:
* Added workaround for bug in XLC 16.1.0.1
* Add detection for LCC when it is masquerading as GCC
* Modified posix signal handling so it supports newer libcs
+ `MINSIGSTKSZ` was no longer usable in constexpr context.
Fixes:
* Fixed compilation of benchmarking when `min` and `max`
macros are defined
+ Including `windows.h` without `NOMINMAX` remains a really
bad idea, don't do it
Miscellaneous:
* `Catch2WithMain` target (static library) is no longer built
by default
+ Building it by default was at best unnecessary overhead
for people not using it, and at worst it caused trouble
with install paths
+ To have it built, set CMake option
`CATCH_BUILD_STATIC_LIBRARY` to `ON`
* The check whether Catch2 is being built as a subproject is
now more reliable
+ The problem was that if the variable name used internally
was defined the project including Catch2 as subproject, it
would not be properly overwritten for Catch2's CMake.
version 2.13.4
Improvements:
* Improved the hashing algorithm used for shuffling test cases
+ `TEST_CASE`s that differ only in the last character should
be properly shuffled
+ Note that this means that v2.13.4 gives you a different
order of test cases than 2.13.3, even given the same seed.
Miscellaneous:
* Deprecated `ParseAndAddCatchTests` CMake integration
+ It is impossible to implement it properly for all the
different test case variants Catch2 provides, and there
are better options provided.
+ Use `catch_discover_tests` instead, which uses runtime
information about available tests.
* Fixed bug in `catch_discover_tests` that would cause it to
fail when used in specific project structures
* Added Bazel build file
* Added an experimental static library target to CMake
-------------------------------------------------------------------
Tue Dec 1 11:27:06 UTC 2020 - aloisio@gmx.com
- Update to version 2.13.3
Fixes:
* Fixed possible infinite loop when combining generators with
section filter (`-c` option)
Miscellaneous:
* Fixed `ParseAndAddCatchTests` not finding `TEST_CASE`s
without tags
* `ParseAndAddCatchTests` supports `CMP0110` policy for
changing behaviour of `add_test`
+ This was the shortlived change in CMake 3.18.0 that
temporarily broke `ParseAndAddCatchTests`
version 2.13.2
Improvements:
* Implemented workaround for NVCC ICE
Fixes:
* Fixed detection of `std::uncaught_exceptions` support under
non-msvc platforms
Miscellaneous:
* `catch_discover_tests` has been improved significantly
+ You can now specify which reporter should be used
+ You can now modify where the output will be written
+ `WORKING_DIRECTORY` setting is respected
* `ParseAndAddCatchTests` now supports `TEMPLATE_TEST_CASE`
macros
* Various documentation fixes and improvements
version 2.13.1
Improvements:
* `ParseAndAddCatchTests` handles CMake v3.18.0 correctly
* Improved autodetection of `std::byte`
* Simplified implementation of templated test cases
+ This should have a tiny positive effect on its compilation
throughput
Fixes:
* Automatic stringification of ranges handles sentinel ranges
properly
-------------------------------------------------------------------
Fri Aug 14 13:05:03 UTC 2020 - Luigi Baldoni <aloisio@gmx.com>
- Update to version 2.13.0
Improvements:
* `GENERATE` can now follow a `SECTION` at the same level of
nesting
+ The `SECTION`(s) before the `GENERATE` will not be run
multiple times, the following ones will.
* Added `-D`/`--min-duration` command line flag
+ If a test takes longer to finish than the provided value,
its name and duration will be printed.
+ This flag is overriden by setting `-d`/`--duration`.
Fixes:
* `TAPReporter` no longer skips successful assertions
version 2.12.4:
* `GENERATE` nested in a for loop no longer creates multiple
generators
* Fixed copy paste error breaking `TEMPLATE_TEST_CASE_SIG` for
6 or more arguments
* Fixed potential UB when handling non-ASCII characters in CLI
args
* There can be multiple calls to `GENERATE` on a single line
* Improved `fno-except` support for platforms that do not
provide shims for exception-related std functions
+ E.g. the Green Hills C++ compiler
* XmlReporter now also reports test-case-level statistics
+ This is done via a new element, `OverallResultsCases`
* Added `.clang-format` file to the repo
* Rewrote contributing docs
+ They should explain the different levels of testing and so
on much better
version 2.12.2:
* Fixed compilation failure if `is_range` ADL found deleted
function
* Fixed potential UB in `CAPTURE` if the expression contained
non-ASCII characters
* `std::result_of` is not used if `std::invoke_result` is
available
* JUnit reporter writes out `status` attribute for tests
* Suppresed clang-tidy's `hicpp-vararg` warning
+ Catch2 was already suppressing the
`cppcoreguidelines-pro-type-vararg` alias of the warning
version 2.12.1:
* Vector matchers now support initializer list literals better
* Added support for `^` (bitwise xor) to `CHECK` and `REQUIRE`
version 2.12.0:
* Running tests in random order (`--order rand`) has been
reworked significantly
+ Given same seed, all platforms now produce the same order
+ Given same seed, the relative order of tests does not
change if you select only a subset of them
* Vector matchers support custom allocators
* `|` and `&` (bitwise or and bitwise and) are now supported
in `CHECK` and `REQUIRE`
+ The resulting type must be convertible to `bool`
* Fixed computation of benchmarking column widths in
ConsoleReporter
* Suppressed clang-tidy's `cppcoreguidelines-pro-type-vararg`
in assertions
+ It was a false positive trigered by the new warning
support workaround
* Fixed bug in test specification parser handling of OR'd
patterns using escaping
* Worked around IBM XL's codegen bug
+ It would emit code for _destructors_ of temporaries in an
unevaluated context
* Improved detection of stdlib's support for
`std::uncaught_exceptions`
version 2.11.2:
* GCC and Clang now issue warnings for suspicious code in
assertions
+ E.g. `REQUIRE( int != unsigned int )` will now issue mixed
signedness comparison warning
+ This has always worked on MSVC, but it now also works for
GCC and current Clang versions
* Colorization of "Test filters" output should be more robust
now
* `--wait-for-keypress` now also accepts `never` as an option
* Reporters no longer round-off nanoseconds when reporting
benchmarking results
* It is now possible to customize benchmark's warm-up time
when running the test binary
+ `--benchmark-warmup-time {ms}`
* User can now specify how Catch2 should break into debugger
* Fixes missing `<random>` include in benchmarking
* Fixed missing `<iterator>` include in benchmarking
* Hidden test cases are now also tagged with `[!hide]` as per
documentation
* Detection of whether libc provides `std::nextafter` has been
improved
* Composing already-composed matchers no longer modifies the
partially-composed matcher expression
+ This bug has been present for the last ~2 years and nobody
reported it
version 2.11.1:
* `google-build-using-namespace` clang-tidy warning is
suppressed
* `ObjectStorage` now behaves properly in `const` contexts
* `GENERATE_COPY(a, b)` now compiles properly
* Some more cleanups in the benchmarking support
-------------------------------------------------------------------
Wed Jan 8 12:55:46 UTC 2020 - Luigi Baldoni <aloisio@gmx.com>
- Use only %license
-------------------------------------------------------------------
Wed Dec 25 17:43:04 UTC 2019 - Luigi Baldoni <aloisio@gmx.com>
- Update to version 2.11.0
Improvements:
* JUnit reporter output now contains more details in case of
failure (#1347, #1719)
* Added SonarQube Test Data reporter (#1738)
+ It is in a separate header, just like the TAP, Automake,
and TeamCity reporters
* `range` generator now allows floating point numbers (#1776)
* Reworked part of internals to increase throughput
Fixes:
* The single header version should contain full benchmarking
support (#1800)
* `[.foo]` is now properly parsed as `[.][foo]` when used on
the command line (#1798)
* Fixed compilation of benchmarking on platforms where
`steady_clock::period` is not `std::nano` (#1794)
version 2.10.2
Improvements:
* Catch2 will now compile on platform where `INFINITY` is
double (#1782)
Fixes:
* Warning suppressed during listener registration will no
longer leak
version 2.10.1
Improvements:
* Catch2 now guards itself against `min` and `max` macros from
`windows.h` (#1772)
* Templated tests will now compile with ICC (#1748)
* `WithinULP` matcher now uses scientific notation for
stringification (#1760)
Fixes:
* Templated tests no longer trigger `-Wunused-templates`
(#1762)
* Suppressed clang-analyzer false positive in context getter
(#1230, #1735)
Miscellaneous:
* CMake no longer prohibits in-tree build when Catch2 is used
as a subproject (#1773, #1774)
version 2.10.0
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
version 2.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)
* Reverted `CatchAddTests` adding tags as CTest labels (#1658)
+ The script broke when test names were too long
+ Overwriting `LABELS` caused trouble for users who set them
manually
+ CMake does not let users append to `LABELS` if the test
name has spaces
version 2.9.1
Fixes:
* Fix benchmarking compilation failure in files without
`CATCH_CONFIG_EXTERNAL_INTERFACES` (or implementation)
version 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)
version 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
- Drop _service file
-------------------------------------------------------------------
Sat May 18 20:37:18 UTC 2019 - Kira Marie Backes <kira@kiralein.de> - 2.7.2
- Finalize .spec of Catch2 v 2.7.2
-------------------------------------------------------------------
Sat May 18 19:31:10 UTC 2019 - Kira Marie Backes <kira@kiralein.de>
- Try to setup Catch2 as OBS project