Releases: Snaipe/Criterion
Releases · Snaipe/Criterion
v2.3.2
v2.3.1
Version 2.3.1 Fix: correctly handle malformed --debug parameter Fix: replaced the cryptic message when the debugger is not present with a more explicit one. Fix: cache section limits on report hooks for significantly better performance. Fix: don't report passing assertions by default for significantly better performance. Addition: added --full-stats CLI switch to report passing assertions for compatibility purposes.
v2.3.0-1: Version 2.3.0-1
This is a re-release of v2.3.0. There are no substantial changes in the release, only fixes in the build system. If you are not building criterion from source, you can ignore this changelog. * Fix: Updated version strings in messages * Fix: The build system now searches for local installations of non-criterion-specific dependencies.
v2.3.0: Version 2.3.0
* Addition: added German translation files (Matthias "ailu" Günzel). * Addition: added a pkg-config file. * Addition: allow tests to be skipped with cr_skip_test() (Matthias "ailu" Günzel). * Addition: assertions on wide-strings are now available (Kevin "kevinoid" Locke). * Addition: crash-mode with --crash to raise a trap when an assertion fails for debugging purposes (Matthias "ailu" Günzel). * Addition: debugging mode with --debug. * Addition: global test timeout with --timeout. * Addition: header files in the public API now have doxygen documentation (Matthias "ailu" Günzel). * Addition: test filtering now works on windows. * Addition: user logging API with cr_log, cr_log_info, cr_log_warning, and cr_log_error. * Breaking: dropped support for MinGW, use MinGW-w64. * Breaking: dropped support for Windows XP, use Windows 7 and later. * Breaking: log_pre_init and log_pre_test in the internal logger API now takes an additional parameter. * Breaking: the SOVERSION now follows the SONAME major independently of the project version. * Change: --pattern has been renamed to --filter. * Change: removed dependency on PCRE for filtering (Matthias "ailu" Günzel). * Change: sections of all loaded shared modules are now inspected for tests and hooks. * Change: setting .exit_code = 0 now enforces the exit code of the test to be 0. * Change: string assertions now print the contents of string parameters ("kaidowei"). * Change: xml reports now includes elapsed times ("kaidowei"). * Deprecation: --no-early-exit is now a no-op and should no longer be used. * Deprecation: internal logging API is no longer public, fallbacks to the new logging API. * Fix: fail-fast now works correctly. * Fix: fixed FindCriterion.cmake with the correct package name (László "MrAnno" Várady). * Fix: position-independent executables now work. * Fix: string assertions no longer crash with a NULL parameter ("kaidowei"). * Fix: the data pipe no longer gets corrupted when running a large quantity of assertions in parallel. * Fix: using dmalloc on tests now works. * Fix: using the GOLD linker rather than BFD now works. * Fix: using the musl C library now works. Changes since 2.3.0-rc2: * Fix: --debug=idle no longer hangs forever when debugging with visual studio. * Fix: Criterion no longer crashes when trying to instanciate a worker arena on 32-bit processes. * Fix: Theories no longer crash when an assert fails on windows. * Fix: Workers no longer crash randomly due to bad address denormalization. * Fix: Workers no longer crash randomly when run in parallel on windows.
2.3.0 release candidate 2
Version 2.3.0-rc2 Changes since 2.3.0-rc1: * Fix: --crash works again. * Fix: Unknown options no longer crash the runner. * Fix: --no-early-exit no longer fallthrough to --use-ascii. * Fix: Create unix domain sockets in /tmp rather than the current directory (Steffen "stv0g" Vogel). * Fix: Fixed a data race in the I/O layer. Tests on windows can be parallelized again, and threads now work inside test functions. * Fix: The runner now correctly handles EINTR in the I/O layer. Profiling the tests works again. * Fix: The runner no longer hangs when the address space is tiny * Fix: The runner no longer crashes on systems (like FreeBSD) where elf symbol offsets for the current module are in fact addresses * Fix: Gmon files are now created with a unique name per test 2.3.0 Changelog: * Addition: added German translation files (Matthias "ailu" Günzel). * Addition: added a pkg-config file. * Addition: allow tests to be skipped with cr_skip_test() (Matthias "ailu" Günzel). * Addition: assertions on wide-strings are now available (Kevin "kevinoid" Locke). * Addition: crash-mode with --crash to raise a trap when an assertion fails for debugging purposes (Matthias "ailu" Günzel). * Addition: debugging mode with --debug. * Addition: global test timeout with --timeout. * Addition: header files in the public API now have doxygen documentation (Matthias "ailu" Günzel). * Addition: test filtering now works on windows. * Addition: user logging API with cr_log, cr_log_info, cr_log_warning, and cr_log_error. * Breaking: dropped support for MinGW, use MinGW-w64. * Breaking: dropped support for Windows XP, use Windows 7 and later. * Breaking: log_pre_init and log_pre_test in the internal logger API now takes an additional parameter. * Breaking: the SOVERSION now follows the SONAME major independently of the project version. * Change: --pattern has been renamed to --filter. * Change: removed dependency on PCRE for filtering (Matthias "ailu" Günzel). * Change: sections of all loaded shared modules are now inspected for tests and hooks. * Change: setting .exit_code = 0 now enforces the exit code of the test to be 0. * Change: string assertions now print the contents of string parameters ("kaidowei"). * Change: xml reports now includes elapsed times ("kaidowei"). * Deprecation: --no-early-exit is now a no-op and should no longer be used. * Deprecation: internal logging API is no longer public, fallbacks to the new logging API. * Fix: fail-fast now works correctly. * Fix: fixed FindCriterion.cmake with the correct package name (László "MrAnno" Várady). * Fix: position-independent executables now work. * Fix: string assertions no longer crash with a NULL parameter ("kaidowei"). * Fix: the data pipe no longer gets corrupted when running a large quantity of assertions in parallel. * Fix: using dmalloc on tests now works. * Fix: using the GOLD linker rather than BFD now works. * Fix: using the musl C library now works.
2.3.0 release candidate 1
Version 2.3.0-rc1 * Addition: added German translation files (Matthias "ailu" Günzel). * Addition: added a pkg-config file. * Addition: allow tests to be skipped with cr_skip_test() (Matthias "ailu" Günzel). * Addition: assertions on wide-strings are now available (Kevin "kevinoid" Locke). * Addition: crash-mode with --crash to raise a trap when an assertion fails for debugging purposes (Matthias "ailu" Günzel). * Addition: debugging mode with --debug. * Addition: global test timeout with --timeout. * Addition: header files in the public API now have doxygen documentation (Matthias "ailu" Günzel). * Addition: test filtering now works on windows. * Addition: user logging API with cr_log, cr_log_info, cr_log_warning, and cr_log_error. * Breaking: dropped support for MinGW, use MinGW-w64. * Breaking: dropped support for Windows XP, use Windows 7 and later. * Breaking: the SOVERSION now follows the SONAME major independently of the project version. * Change: --pattern has been renamed to --filter. * Change: removed dependency on PCRE for filtering (Matthias "ailu" Günzel). * Change: sections of all loaded shared modules are now inspected for tests and hooks. * Change: setting .exit_code = 0 now enforces the exit code of the test to be 0. * Change: string assertions now print the contents of string parameters ("kaidowei"). * Change: tests are no longer executed in parallel on windows by default to mitigate a nanomsg bug (see https://github.com/Snaipe/Criterion/issues/118). * Change: xml reports now includes elapsed times ("kaidowei"). * Deprecation: --no-early-exit is now a no-op and should no longer be used. * Deprecation: internal logging API is no longer public, fallbacks to the new logging API. * Fix: fail-fast now works correctly. * Fix: fixed FindCriterion.cmake with the correct package name (László "MrAnno" Várady). * Fix: position-independent executables now work. * Fix: string assertions no longer crash with a NULL parameter ("kaidowei"). * Fix: the data pipe no longer gets corrupted when running a large quantity of assertions in parallel. * Fix: using dmalloc on tests now works. * Fix: using the GOLD linker rather than BFD now works. * Fix: using the musl C library now works.
v2.2.2: Version 2.2.2
* Fix: fixed deadlocks when tests are terminated too fast * Fix: fixed crash during test teardown if spawning new threads in the test * Fix: fixed memory leak in disabled tests
v2.2.1: Version 2.2.1
* Fix: fixed criterion not being embeddable with CMake's `add_directory` * Fix: fixed resource leaks in the child pump thread * Fix: fixed redirected standard streams being leaked by cr_(assert|expect)_std(out|err) * Fix: fixed out of bounds during assert message sending * Fix: fixed naming convention conflicts for internal variables used by the implementation of cr_assert * Fix: fixed empty format string warning with GCC 4.8 * Fix: fixed file-to-file comparison assert message being corrupted
v2.2.0: Version 2.2.0
* Breaking: Renamed all unprefixed internal macros and functions that were exposed in the API, and moved them to criterion/internal. This shouldn't break your code if you did not use these in the first place. * Change: Added language-specific wrapping logic to decouple the language the tests are written in from the test runner. * Change: Rewrote the reporting logic to allow multiple test reports to be written using any format. * Addition: Added parallel jobs for the test runner. * Addition: Added C++ allocator for STL collections based on cr_malloc/cr_free. * Addition: Added criterion::parameters in C++ for simpler parameter list generation. * Addition: Added saner defaults when the tests detect they run under valgrind. * Addition: Added basic Objective-C language support. * Addition: Added JUnit XML reporting. * Addition: Added JSON reporting. * Addition: Added dynamic reporter registration. * Addition: Added back support for GCC 4.6 when compiling C tests. * Addition: Added single test execution mode. * Removal: Removed all deprecated 1.x unprefixed assertion macros. * Fix: Fixed some memory corruption happening on rare occasions on assert messages. * Fix: Fixed deadlocks happening at random when a large quantity of assert is present. * Fix: Fixed the library not compiling with the intel compiler collection. * Deprecation: All cr_assume_strings_* macros are deprecated in favor of cr_assume_str_*. * Deprecation: All cr_assume_arrays_* macros are deprecated in favor of cr_assume_arr_*.
v2.1.1: Version 2.1.1
* Fix: Fixed bug where the TAP output access the assert message after it has been freed, causing it to print garbage.