A unit testing framework for C that runs tests in separate address spaces to catch assertion failures and segmentation faults.
Check is a unit testing framework for the C programming language that provides a simple interface for writing and running tests. It executes tests in isolated address spaces to reliably catch both assertion failures and critical errors like segmentation faults or other signals. The framework generates output compatible with editors and IDEs, making it easy to integrate into development environments.
C developers and software engineers who need a reliable, low-overhead testing framework for unit testing C codebases, particularly those working on systems programming or embedded projects where memory safety is critical.
Developers choose Check for its ability to detect hard-to-catch errors like segmentation faults through isolated test execution, its minimal API that reduces boilerplate, and its compatibility with standard development tools. It offers a balance of simplicity and robustness for C testing.
A unit testing framework for C
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Runs tests in isolated address spaces, reliably catching segmentation faults and signals, as highlighted in the README's description of its core feature.
Provides a simple interface for defining unit tests with little developer friction, keeping the focus on test logic as stated in the About section.
Test output is formatted for use within source code editors and IDEs, facilitating integration into development workflows as mentioned in the key features.
Builds and runs on Linux, macOS, and Windows with continuous integration validation, ensuring compatibility across major operating systems.
Requires specific versions of automake, autoconf, libtool, and other tools listed in the Installing section, which can be a barrier to quick adoption.
Uses variadic macros in check.h that cause warnings or errors with strict C90 compilers, as noted in the Linking section of the README.
Focuses on core unit testing without built-in support for advanced patterns like mocking or behavior-driven development, which may require extra effort.