Skip to content

@Snaipe Snaipe released this Nov 5, 2018 · 112 commits to bleeding since this release

Version 2.3.3

* Fix: Clang 5.0.x was producing test executables that caused Criterion to
  fork-bomb the host system. The issue has been fixed, and Criterion
  now pro-actively aborts itself if it detects a fork-bomb loop to avoid
  similar issues in the future.
Assets 4

@Snaipe Snaipe released this Apr 8, 2017

Version 2.3.2

* Fix: timings were always reporting `0`; they are now working as expected.
Assets 7

@Snaipe Snaipe released this Feb 7, 2017

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.
Assets 4

@Snaipe Snaipe released this Dec 7, 2016 · 155 commits to bleeding since this release

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.
Assets 3

@Snaipe Snaipe released this Nov 23, 2016 · 163 commits to bleeding since this release

* 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.
Assets 6
Pre-release

@Snaipe Snaipe released this Oct 28, 2016 · 176 commits to bleeding since this release

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.
Assets 4
Pre-release

@Snaipe Snaipe released this Sep 22, 2016 · 206 commits to bleeding since this release

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.
Assets 3

@Snaipe Snaipe released this Jun 20, 2016 · 543 commits to bleeding since this release

* 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
Assets 8

@Snaipe Snaipe released this Mar 6, 2016 · 548 commits to bleeding since this release

* 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
Assets 9

@Snaipe Snaipe released this Dec 8, 2015 · 557 commits to bleeding since this release

* 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_*.
Assets 8
You can’t perform that action at this time.