Ceedling Packet
Ceedling is a fancypants build system that greatly simplifies building C projects. While it can certainly build release targets, it absolutely shines at running unit test suites.
Ceedling and its suite of frameworks, including Unity and CMock, were developed for use on platforms from heavy duty workstations to teeny tiny microcontrollers. Features handy for low-level development have made these tools popular with embedded systems developers.
New to Ceedling?
Jump straight to the Quick Start — installation, project set up, and your first build tasks all in one place.
New in Ceedling 1.1.0 — Partials
A Partial is your C code sliced and diced to expose functional elements for testing that you could not otherwise access without rewriting your source code. Think of Partials as a scalpel for testing your code.
Overview
-
Generate a complete test and release build from a single YAML file. Provides a minimal sample project configuration and an explanation of Ceedling’s design philosophy.
-
Ruby, Rake, YAML, Unity, CMock, and CException explained — the pieces that make Ceedling possible and how they fit together.
-
Native host builds, emulator-based runs, and on-target execution — choose the right test suite strategy for your project.
Getting Started
-
Ready to go? Let’s go.
-
Ceedling Installation & Set Up
Installing Ceedling and its prerequisites.
-
Now what? How do I make it Go?
Unit Testing
-
How Does a Test Case Even Work?
A brief overview of what a test case is with simple examples illustrating how test cases work.
-
A sample test file illustrating test case creation and the conventions that make it work. Includes a discussion of how test executables get built.
-
How a unit test grows up to become a test suite.
-
Using Unity, CMock & CException
Ceedling links together Unity, CMock, and CException — each of which can require configuration of their own. Ceedling facilitates this.
-
Important Conventions & Behaviors
Much of testing in Ceedling is accomplished by convention. Code and files structured and named in certain ways trigger sophisticated build features.
-
Partials are like a scalpel for your source code. A generated partial allows you to test and mock parts of your code you could not otherwise access without rewriting it first.
Project Configuration
-
How to Load a Project Configuration
You have options, my friend. Load your base configuration via command line flag, environment variable, or default file. Add Mixins to merge configuration for different build scenarios.
-
The Mighty Project Configuration File
Everything you need to know about the project configuration file. All in glorious YAML.
-
Project Configuration Reference
Exhaustive documentation for all project configuration options — project paths, testing features, plugins, and much more.
-
Configure Ceedling to take advantage of multiple CPU cores for faster build steps and test suite execution.
-
Sometimes you may need to point to a different Ceedling to run.
Advanced & Extending
-
Code macros to accomplish build goals when Ceedling's conventions aren't quite enough.
-
Ceedling is extensible with built-in plugins for code coverage, test reporting, CI integration, file scaffolding, sophisticated release builds, and more.
-
Globally available Ruby lists of paths, files, and more — useful for advanced project customization and plugin development.