Looking for some awesome tools for C development? We have historically mostly concentrated on tools for Unit Testing, though we are slowly expanding into other useful frameworks and tools for Embedded C. You'll find that all these tools are high-quality, C-focused, and are designed to help make your code cleaner.

Unity 

Unity is curiously powerful Unit Testing in C for C. It aims to support most embedded compilers, from 8-bit tiny processors to 64-bit behemoths. Unity is designed to be small, yet still provide you rich expressive assertion set. It consists of a single C file and a pair of headers (or can be condensed down to a single header if required). If you're new to unit testing, Unity is probably what you are looking for. (Learn More or Download Now)

CMock 

CMock is a utility for automagical generation of stubs and mocks for Unity Tests. It's a collection of scripts in Ruby which investigate your C headers and create reusable fake versions for your tests. (Don't worry, you don't have to be familiar with Ruby to use it!) It's perfect for interaction testing! (Learn More or Download Now)

Ceedling 

Ceedling is a build management system designed for test suites. Why figure out how to manage all the dependencies, test modules, and build configurations when you can have Ceedling do most of the leg work for you? Like CMock, it's a collection of Ruby scripts that grant you magical powers... but you don't need to understand Ruby to use it. (Learn More or Download Now

CException 

CException provides lightweight exception handling for C (or even C++ if you disable the standard exception handling). Handle errors with style instead of relying on chains of return values! Usable on any target that supports setjmp / longjmp in their standard library. (Learn More or Download Now)

Extras 

We have many examples and plugins for your perusal. Look through our github pages and feel free to play. If you have anything you would like to see featured on our site, let us know! We're always on the lookout for tools that support embedded development! (Learn More or Download Now)

Mad Science Lab DEV Environment

Our Docker image throwtheswitch/madsciencelab provides the most general solution, the native option, for building and executing your test suites. It’s a freely available, all-in-one environment that contains each of the tools above plus gcc, ready to run. Install Docker, follow the instructions provided with the image, write your tests, and you’re on your way to taking over the world.