install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/embedded-systems/skills/unity-ceedling-test" ~/.claude/skills/a5c-ai-babysitter-unity-ceedling-test && rm -rf "$T"
manifest:
library/specializations/embedded-systems/skills/unity-ceedling-test/SKILL.mdsource content
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
- Unit test implementationembedded-unit-testing.js
- Driver testingdevice-driver-development.js
- BSP unit testingbsp-development.js
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)); }