Unity ceedling test
Skill a5c-ai/babysitter/library/specializations/embedded-systems/skills/unity-ceedling-test
Babysitter enforces obedience on agentic workforces and enables them to manage extremely complex tasks and workflows through deterministic, hallucination-free self-orchestration
npx -y skills add a5c-ai/babysitter --skill unity-ceedling-testAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
What its author says it does
Copied from the file, not written here
Embedded unit testing with Unity framework and CMock
SKILL.md
3.1 KB, as published. Nobody here has run it
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));
}