Agent skill
unity-ceedling-test
Embedded unit testing with Unity framework and CMock
Install this agent skill to your Project
npx add-skill https://github.com/a5c-ai/babysitter/tree/main/library/specializations/embedded-systems/skills/unity-ceedling-test
SKILL.md
Unity/Ceedling Test Skill
Overview
This skill provides embedded unit testing capabilities using the Unity test framework, CMock mock generation, and Ceedling build system for comprehensive off-target and on-target testing.
Capabilities
Unity Test Framework
- Test case generation
- Assertion macro usage
- Test fixture setup/teardown
- Test group organization
- Parameterized tests
- Custom assertions
CMock Mock Generation
- Automatic mock generation from headers
- HAL/driver mocking strategies
- Callback mocking
- Argument capture and validation
- Return value configuration
- Call count verification
Ceedling Build System
- Project configuration (project.yml)
- Test runner generation
- Coverage integration
- Compiler configuration
- Plugin management
- CI/CD integration
Hardware Abstraction Mocking
- Register mock strategies
- DMA mock patterns
- Interrupt mock handling
- Timing mock approaches
- State machine mocking
Test Coverage
- gcov integration
- lcov report generation
- Branch coverage analysis
- MC/DC coverage (for safety)
- Coverage threshold enforcement
Off-Target Testing
- Host compilation setup
- Platform abstraction
- Stub implementation
- Double buffering for DMA
- Fake timer implementations
Target Processes
embedded-unit-testing.js- Unit test implementationdevice-driver-development.js- Driver testingbsp-development.js- BSP unit testing
Dependencies
- Unity test framework
- CMock mock generator
- Ceedling build system (optional)
- gcov/lcov for coverage
Usage Context
This skill is invoked when tasks require:
- Unit test development
- Mock generation for drivers
- Test coverage analysis
- Off-target testing setup
- TDD for embedded
Project Structure
project/
src/
driver.c
driver.h
test/
test_driver.c
support/
test_helper.c
build/
test/
artifacts/
project.yml
Configuration Example (project.yml)
:project:
:build_root: build/
:test_file_prefix: test_
:use_exceptions: FALSE
:paths:
:test:
- test/**
:source:
- src/**
:include:
- inc/**
:cmock:
:mock_prefix: mock_
:when_no_prototypes: :warn
:enforce_strict_ordering: TRUE
:plugins:
- :ignore
- :callback
- :return_thru_ptr
:plugins:
:enabled:
- gcov
- xml_tests_report
Test Example
#include "unity.h"
#include "driver.h"
#include "mock_hal_spi.h"
void setUp(void) {
driver_init();
}
void tearDown(void) {
driver_deinit();
}
void test_driver_sends_correct_command(void) {
uint8_t expected[] = {0x01, 0x02, 0x03};
HAL_SPI_Transmit_ExpectWithArrayAndReturn(
SPI1, expected, 3, 3, 100, HAL_OK);
TEST_ASSERT_EQUAL(DRIVER_OK, driver_send_command(0x01));
}
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
gsd-tools
Central utility skill for GSD operations. Provides config parsing, slug generation, timestamps, path operations, and orchestrates calls to other specialized skills. Acts as the unified entry point that the original gsd-tools.cjs provided via its lib/ modules (commands, config, core, init).
model-profile-resolution
Resolve model profile (quality/balanced/budget) at orchestration start and map agents to specific models. Enables cost/quality tradeoffs by selecting appropriate AI models for each agent role.
verification-suite
Plan structure validation, phase completeness checks, reference integrity verification, and artifact existence confirmation. Provides the structured verification layer ensuring GSD artifacts are well-formed and complete.
state-management
STATE.md reading, writing, and field-level updates. Provides cross-session state persistence via .planning/STATE.md with structured fields for current task, completed phases, blockers, decisions, and quick tasks.
git-integration
Git commit patterns, formats, and conventions for GSD methodology. Provides atomic commits per task, structured commit messages, planning file commits, branch management, and milestone tag operations.
frontmatter-parsing
YAML frontmatter parsing and manipulation for .planning/ documents. Provides read, write, update, query, and validation operations on frontmatter blocks in GSD markdown artifacts.
Didn't find tool you were looking for?