Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. C/C++
  3. check

check

LGPL-2.1C0.15.2

A unit testing framework for C that runs tests in separate address spaces to catch assertion failures and segmentation faults.

GitHubGitHub
1.2k stars224 forks0 contributors

What is check?

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.

Target Audience

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.

Value Proposition

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.

Overview

A unit testing framework for C

Use Cases

Best For

  • Unit testing C libraries and applications where memory safety is critical
  • Detecting segmentation faults and signal-based errors in test suites
  • Integrating test output with IDEs and source code editors
  • Cross-platform C projects requiring Linux, macOS, and Windows support
  • Projects using Autoconf or CMake build systems
  • Educational purposes for learning C unit testing fundamentals

Not Ideal For

  • Projects written in C++ or mixed-language codebases requiring a unified testing framework.
  • Teams needing built-in mocking libraries or advanced test doubles without additional dependencies.
  • Environments with strict C90 compliance where variadic macros are problematic.

Pros & Cons

Pros

Robust Error Detection

Runs tests in isolated address spaces, reliably catching segmentation faults and signals, as highlighted in the README's description of its core feature.

Minimal Boilerplate

Provides a simple interface for defining unit tests with little developer friction, keeping the focus on test logic as stated in the About section.

Editor Integration

Test output is formatted for use within source code editors and IDEs, facilitating integration into development workflows as mentioned in the key features.

Cross-Platform Support

Builds and runs on Linux, macOS, and Windows with continuous integration validation, ensuring compatibility across major operating systems.

Cons

Complex Setup Dependencies

Requires specific versions of automake, autoconf, libtool, and other tools listed in the Installing section, which can be a barrier to quick adoption.

C90 Compatibility Issues

Uses variadic macros in check.h that cause warnings or errors with strict C90 compilers, as noted in the Linking section of the README.

Limited Modern Features

Focuses on core unit testing without built-in support for advanced patterns like mocking or behavior-driven development, which may require extra effort.

Frequently Asked Questions

Quick Stats

Stars1,175
Forks224
Contributors0
Open Issues81
Last commit1 month ago
CreatedSince 2015

Tags

#unit-testing#cmake#ci-cd#cross-platform#c-language#testing-framework

Built With

a
autoconf
l
libtool
a
automake
C
CMake
T
Texinfo
p
pkg-config
s
sed

Included in

C/C++70.6k
Auto-fetched 1 day ago

Related Projects

Google MockGoogle Mock

GoogleTest - Google Testing and Mocking Framework

Stars38,943
Forks10,849
Last commit2 days ago
googletestgoogletest

GoogleTest - Google Testing and Mocking Framework

Stars38,943
Forks10,849
Last commit2 days ago
Catch2Catch2

A modern, C++-native, test framework for unit-tests, TDD and BDD - using C++14, C++17 and later (C++11 support is in v2.x branch, and C++03 on the Catch1.x branch)

Stars21,428
Forks3,499
Last commit1 day ago
benchmarkbenchmark

A microbenchmark support library

Stars10,356
Forks1,792
Last commit4 days ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub