[criterion] [release] criterion v2.4.0-rc-0-gbc3b265

  • From: Franklin Mathieu <franklinmathieu+dev@xxxxxxxxx>
  • To: criterion@xxxxxxxxxxxxx, laszlo.varady@xxxxxxxxxxxxxx
  • Date: Mon, 3 Jan 2022 21:34:30 +0100

Hello everyone,

Criterion v2.4.0-rc-0-gbc3b265, the first release candidate for 2.4.0,
has been released. The full changelog is included below. Please verify
that your tests still work with this new version. As usual, the
release candidate will wait for two weeks after the last commit before
turning into an actual release.

One of the very exciting additions to this release is the new
experimental assertion API. This API brings rich value printing and
diffing on assertion error, and is more pleasant to use overall. Give
it a try!

I'd like to thank everyone involved in this release. In particular,
huge thanks to László Várady for helping me push this over the finish
line. It has been three years since the last release of Criterion, and
I've had less and less time and interest in the project due to me not
mainly working with C.

Alongside that release, I'd like to announce that László will help
with maintenance of the project going forward. László is currently
involved with syslog-ng[1] and has contributed outstanding fixes to
Criterion's sandboxing code, ARM support, as well as various fixes in
the CI pipeline, build system, tests, and documentation.

Happy New Year!

[1]: https://github.com/syslog-ng/syslog-ng

---

Changelog:

* Addition: added new experimental assertion API. The API brings a more
  generic approach for comparing values of arbitrary types, alongside
  value diffing on error.
* Addition: added --color=<always|never|auto> CLI switch to explicitly
  add or strip colors from the test runner output.
* Addition: added --encoding CLI switch to control the use of unicode
  in the test runner output.
* Addition: added ARM (v6/v7) and ARM64 support. Huge kudos to László
  Várady (MrAnno) for fixing most of the issues and testing on real
  hardware.
* Addition: added directory support to write test reports via --output.
  If the provided path is an existing directory, the report will be
  created in that directory, and the report file is named after the
  binary (László Várady).
* Breaking: the runner now exits with a non-zero exit status on warning
  by default. --ignore-warnings has been added to restore the old behaviour.
* Breaking: changed '-' to mean stdout rather than stderr.
  /dev/stderr can instead be used to signify stderr, even on Windows.
* Breaking: switched build system from CMake to Meson.
* Deprecation: --ascii and CRITERION_USE_ASCII are deprecated in favor of
  passing --encoding=C or setting LC_ALL=C.
* Fix: fixed c++ allocator to work with older compiler versions.
* Fix: fixed CRITERION_DISABLE_TIME_MEASUREMENTS=1 not being picked up.
* Fix: allow log functions to be called from runner-side report hooks.
* Fix: allow assertions to execute in fixtures (init/fini).
* Fix: test std{out,err} is now discarded when operating in quiet mode.
  They are also discarded when the runner output is redirected via
  --output.
* Fix: cr_file_match_str now fails if the input is longer than the
  expected value (Ethiraric).
* Fix: cr_file_match_str passes when both the input and expected value
  are empty (Ethiraric).
* Fix: fixed throw assertion not failing when nothing throws.
* Fix: fixed major slowdowns from running criterion in container
  environments with a high open file descriptor limit.
* Fix: fixed libcriterion.so not being loadable on WSL due to the stack
  not being executable.
* Fix: worked around msync not properly working on WSL and causing the
  runner to break.
* Fix: fixed use-after-free in fprintf_locale.
* Fix: fixed cr_file_match_file matching only the last block (Ethiraric).
* Fix: fixed TAP test description format. TAP mandates that details must
  use a YAML format, while Criterion directly dumped the description
  string in the detail section.
* Fix: fixed TAP output to comment out blank lines, since the TAP spec
  doesn't say anything about blank lines, and some parsers have trouble
  with them.
* Fix: fixed c++20 incompatibility with the criterion allocator (Ersikan).
* Fix: fixed escape of special characters in XML output (Paul Khuat-Duy).
* Fix: fixed crash when passing an empty string to cr_log_info (Ersikan).
* Fix: fixed compilation errors on macOS (Kare Nuorteva, László Várady).
* Fix: fixed --debug flag aborting runner with gdbserver >= 8.3.
* Misc: various documentation fixes (Oleksii Vilchanskyi, Sam Zaydel, Karim
  Dridi, Florent Poinsard, Tim Gates, László Várady).
* Misc: various updates to dependencies (László Várady).
* Misc: various build system fixes (Tomasz Sieprawski, László Várady).
* Misc: various fixes to the autotools example (Bruno Belany).

--
Franklin "Snaipe" Mathieu
🝰 https://snai.pe

Other related posts:

  • » [criterion] [release] criterion v2.4.0-rc-0-gbc3b265 - Franklin Mathieu