/check, Unit test framework for C
0.10.0, Package name:
check-0.10.0, Maintainer: pkgsrc-users
Check is a unit test framework for C. It features a simple interface
for defining unit tests, putting little in the way of the developer.
Tests are run in a separate address space, so Check can catch both
assertion failures and code errors that cause segmentation faults or
other signals. The output from unit tests can be used within source code
editors and IDEs.
There is a tutorial introduction to check at
This includes a brief comparison of check with other C unit test
frameworks, such as GNU Autounit, cUnit, and CUnit.
Check was inspired by similar frameworks that currently exist for most
programming languages; the most famous example being JUnit for Java
(www.junit.org). There is a list of unit test frameworks for multiple
languages at www.xprogramming.com/software.htm .
Master sites: SHA1:
Version history: (Expand)
- (2016-06-17) Updated to version: check-0.10.0
- (2014-12-12) Updated to version: check-0.9.14
- (2013-10-03) Updated to version: check-0.9.10
- (2012-12-09) Updated to version: check-0.9.9
- (2010-08-18) Updated to version: check-0.9.8
- (2007-02-02) Updated to version: check-0.9.5
CVS history: (Expand)
| 2016-06-17 04:25:47 by Amitai Schlair | Files touched by this commit (2) | |
Update to 0.10.0. From the changelog:
* CMake on MinGW and MSVC was unable to find time related types because
time.h was not included. This header is now included for the checks.
* If the test runner process catches a SIGTERM or SIGINT signal the running
tests are now also killed.
* If Check is compiled without support for fork(), the behavior of
functions which require fork() to be useful have been changed.
Functions that attempt to set CK_FORK mode are no-ops,
check_fork() returns in failure, and check_waitpid_and_exit()
exits in failure.
* Add space around operators in assert messages for readability.
* Use mkstemp() if available instead of tmpfile() or tempnam().
* Fix issue with string formatting in ck_assert(), where using
the % operator would be interpreted as a string formatter. Bug #96.
* In nofork mode, the location of a failed assertion within a test
case was lost if that test case has a checked teardown fixture
(even if that fixture function is empty). This is now fixed.
| 2015-11-03 04:29:40 by Alistair G. Crooks | Files touched by this commit (1995) |
Add SHA512 digests for distfiles for devel category
Issues found with existing distfiles:
No changes made to these distinfo files.
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
| 2014-12-12 08:38:43 by Makoto Fujiwara | Files touched by this commit (2) | |
Update 0.9.10 to 0.9.14
Sat July 26, 2014: Released Check 0.9.14
based on r1174 (2014-07-03 18:43:49 +0000)
* Changes to (unofficially for now) support Solaris and AIX platforms.
* Fix issue with checked teardown functions in CK_NOFORK mode. If
the teardown function called an assertion that failed, an
infinate loop would result. Bug#98. As a result of the change, for now
checked teardown functions that fail in CK_NOFORK mode will
not cause the test to fail.
* Allow checked fixtures when compiled without fork(). Previously
such setup/teardown functions were disabled, as the full contract
for checked fixtures could not be honored. Checked fixtures
in CK_NOFORK mode are now closer to the contract, and are now
* Various code cleanup, including changes for compiling Check on
c++ compilers Clang and g++ (which are less forgiving than their
* Re-enable internal unit tests, which verify which line numbers are
reported for unit test failures. (The tests were unintentionally
disabled in a previous release).
Fri May 30, 2014: Released Check 0.9.13
based on r1137 (2014-05-26 21:03:09 +0000)
* When a test assertion fails, exit() was invoked. This results in any
registered exit handlers being invoked. A test should not be relied
upon to clean up if it fails. Instead, _exit() will be used to signal
a test failure, to prevent exit handlers from being invoked.
* Fix issue with string formatting in ck_assert_(u)int_* calls, where using
the % operator would be interpreted as a string formatter. Bug #96.
* If the LOG/XML/TAP file name is set to "-" either through the
srunner_set_log() srunner_set_xml() or srunner_set_tap() calls
or through the related environment variables, the logged data will be
printed to stdout instead of a file. This is mainly to support using TAP
for fixtures which expect the results to be reported via stdout. However,
it is available via all of Check's logging modalities.
* For CMake builds, check_stdint.h was not being installed. This is now
* Check's example under doc/example now also works for CMake projects
using Visual Studios and MSVC. This includes an example CMake
Mon Jan 20, 2014: Released Check 0.9.12
based on r1054 (2014-01-16 23:08:03 +0000)
* Additional unit tests created for internal and external Check
* Check now compiled on Windows using MSVC when using CMake and
NMake. All unit tests pass, though shell script based ones need
to be run in the MSYS environment.
* Check now compiles on Windows using Visual Studio 10
when using CMake. check_check passes when run from Visual Studios.
* Always capture the start and end times of tests when using
NO_FORK mode. Previously the end time was not captured,
resulting in arbitrary durations being recorded when tests
failed. Bug #87.
* Added additional configure script checks for support of
timer_create() on the target system. This allows for
OpenBSD to compile and run all Check's unit tests successfully.
* Added a unit test, check_mem_leaks, which can be used against
valgrind to test for memory leaks. No memory leaks were found.
* Added tcase_add_loop_test support in checkm. Patch from patches #46.
* Add support for logging in Test Anything Protocol (TAP) format.
* Refactor Check's assertions to be more like the assert() call in
assert.h, in that static source code analyzers can use gcc attributes
in the header to make assumptions about the flow of the code. See
feature request #29.
* fix ck_assert_ptr_* causing const compilation warnings. Patch from
Wed, Nov 4, 2013: Released Check 0.9.11
based on r856 (2013-11-04 02:09:21 +0000)
* Check's unit tests pass when compiled out of the source tree.
* Check compiles for Windows using the MinGW/msys environment (without using \
fork), and all unit tests pass.
* Check compiles for Windows using the Cygwin environment, and all unit tests pass.
* Check compiles for Windows using MinGW in Linux (without using fork), and all \
unit tests pass using wine 1.4.
* Check compiles for Windows using MinGW-w64 in Linux (without using fork), and \
all unit tests pass using wine 1.4.
* On systems without timer_settimer, use setitimer (if available) to get
subsecond unit test timeouts. If setitimer is unavailable, fallback
| 2013-10-03 16:48:07 by Takahiro Kambe | Files touched by this commit (3) | |
Update check to 0.9.10.
Thu, Apr 18, 2013: Released Check 0.9.10
based on r743 (2013-04-18 11:27:03 +0200)
* Support 64bit int for __ck_assert_int. Patch from bug #3599471
* Add equivalent uint variants for __ck_assert_int. Patch from bug #3600433.
* Detect if the system has a C99 compliant version of the printf related
functions for check to use, and if not use an implementation provided by
* Updated HACKING and release procedure in Makefile.am.
* Detect if the system has clock_gettime() available, and if not use an
implementation provided by check. clock_gettime() is used to measure
test durations. The implementation for OSX uses OSX specific system calls
to get the time. For all other systems, clock_gettime() does nothing.
* Updated documentation in check.h to reference new check API.
* Remove usage of deprecated fail(), fail_if(), and fail_unless() calls from
check's unit tests.
* Fix implementation of putenv in check's libcompat for systems that do not
* Fix implementation of unsettenv in check's libcompat for systems that do
not provide it.
* Improvements to the new Check API: new comparison functions for pointers:
* Test timeouts can now be in nanosecond precision. The tcase_set_timeout
call, and CK_DEFAULT_TIMEOUT and CK_TIMEOUT_MULTIPLIER environment
variables now can accept floating point arguments.
* Cleanup compile warnings, patch #3579199 on SF.
* Renamed Check's internal list functions to start with check_, patch #3448601 on SF.
| 2012-12-09 16:09:34 by Thomas Klausner | Files touched by this commit (3) | |
Update to 0.9.9:
Mon, Oct 22, 2012: Released Check 0.9.9
based on r637 (2012-10-22 13:54:14 +0200)
* Measure test duration and print in XML output.
Feature request #3521371 on SF, but reimplemented.
* Added contrib/XML_for_JUnit.xsl from feature request #3521371 on SF.
* Added support for setting log files via environment variables.
Patch #3576713 on SF.
* Added better pkg-config and subunit support, patch #3417041 on SF.
* Make tests/test_vars.in bourne shell compatible, bug #3472578 on SF.
* Added ck_ prefix to mutex_lock variable, to avoid name clash on Solaris.
Solves bug #3472574 on SF.
* In autoconf, request system extensions to generate 64-bit safe code,
solution from patch #2803433 on SF.
* Fix for mutex deadlock when killing threads, patch #3564640 on SF.
* Make XML output well-formed, solution from patch #3575642 on SF.
Solves bug #3485651 also.
* Fix buggy duration calculation, bug #3575451 on SF.
* A more complete CMake / MSVC patch for those interested in pursuing
Windows development with Check and Visual Studio. See
* Added instructions for improving the speed and output of `make
check' when using Automake. See contrib/improved_make_check/.
* Added a chapter in the documentation for selective running of tests.
* Changed how the message pipe is read. Before, the whole file was copied to
RAM with realloc, giving problems with huge allocations for repetetive
tests, the problem was visible for a specific GStreamer test case.
* Improvements to the new Check API: documentation, macros that allow
multiple evaluation, unit tests, and new
ck_assert_(str|int)_(lt|le|gt|ge) comparison functions.
* Made the new Check API primary and use it to define macros from old Check API
* Added checkmk, a tool for reducing "boilerplate coding" when writing
unit tests with check.
* Added xslt link to xml output, added display of iteration field into xslt
stylesheet and moved it to directory accessible from web page root
* Added longjmp to fail function to ensure that no code will be executed in test
function after failed assertion
* Fix dead assignments and several possible NULL pointer dereferences
| 2012-10-31 12:19:55 by Aleksej Saushev | Files touched by this commit (1460) |
Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.
| 2010-08-18 06:36:13 by OBATA Akio | Files touched by this commit (6) | |
Update check to 0.9.8.
Based on PR#43757 by Kamel Derouiche.
Tue, Sep 22, 2009: Released Check 0.9.8
based on r559 (2009-09-23 21:00).
* Fix CHECK_MICRO_VERSION, left at 6 in 0.9.7 by mistake.
Tue, Sep 22, 2009: Released Check 0.9.7
based on r552 (2009-09-22 09:26).
* Added CK_SUBUNIT support for outputting test information in the subunit wire
protocol. See the check manual for more information. (Contributed by Robert
* Added code and tests for timeout scaling via environment variable.
Feature requested in tracker item #1549835 on sourceforge.
* Added documentation for testing exit values with tcase_add_exit_test().
* Add make_macros perl script from somebody (who?)
* add type to check_type error message
* add contrib dir with xslt transform
* function exist testing support (patch #1726574).
* introduce HAVE_WORKING_SETENV to protect tc_timeout_env usage
* support running tests with multiple pthreads (Daniel Gollub, closes 1391527)
* partial MSYS/MinGW support
Mon, Dec 29, 2008: Released Check 0.9.6
based on r453 (2008-12-01 22:14:15).
* 'make distcheck' does not work out of the box. Disable the two
top lines in doc/Makefile.am and it shall pass. Will have to
be fixed later.
* add call to AC_REPLACE_FUNCS([strsignal])
* add new rpl_strsignal following rpl_(re)malloc template, body
of function due to Roland Illig
-- hopefully closes 1629755
* add missing NULL argument to fail* varargs macro calls
* define incorrect tests for __GNUC__ only
-- both per Roland Illig in bug 1677391
* define CK_ATTRIBUTE_UNUSED for GCC >= 2.95, closing:
[ 1674626 ] compile error with non defined __attribute__ compiler
* Fixed error in documentation example Makefile.am, bug #1888237
* Fixed spelling (patch #1652630)
* Handle NULL in srunner_add_suite(). Fixes #1624887
* add CK_FORK_GETENV to enum fork_status and delete CK_FORK_UNSPECIFIED
* call strdup on result from strsignal to avoid clobbering it
* add Torok Edwin to AUTHORS
* add CK_TEST_RESULT_INVALID to enum test_result
* add CK_CTX_INVALID to ck_result_ctx and don't use -1 anymore
* count checks in setup() as well; patch due to Roland Stigge
* use int __attribute__((unused)) _i instead of
int _i __attribute__((unused))
per gcc-3.3.5 request from Sebastian Trahm
* rename signal to _signal in _tcase_add_test to avoid a
symbol clash with /usr/include/sys/signal.h on OS X.
* define rpl_malloc and rpl_realloc for platforms where
!malloc(0) and !realloc(0,0), such as AIX, because configure
goes and redefines malloc/realloc in this case...
* SVNChangeLog patch from Robert Collins
* Incorporated patch from Debian for debian bug #395466. This fixes
'AM_PATH_CHECK causes "possibly undefined macro" errors'.
* Added new Check fail API. Implemented on top of fail_unless. Future
versions will reverse this so fail_unless is implemented on top of the
ck_assert API. This API is not documented yet, will probably not be fully
released until 0.9.8, when it will be possible to choose API.
| 2009-06-14 19:49:18 by Joerg Sonnenberger | Files touched by this commit (454) |
Remove @dirrm entries from PLISTs