Unity/Ceedling Test Skill

SkillDev tools

Embedded unit testing with Unity framework and CMock

Instructions available. Your AI can read the instructions. Execution depends on the setup they require.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the Unity/Ceedling Test Skill skill

What this skill tells your AI

The instructions your AI receives, as published by a5c-ai/babysitter in library/specializations/embedded-systems/skills/unity-ceedling-test/SKILL.md and read by ahel’s review.

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 implementation
  • device-driver-development.js - Driver testing
  • bsp-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));
}

Signals

GitHub stars
2k
Forks
112
Last commit
Sep 2026
Advanced
Item type
skill
Key
unity-ceedling-test
Source
github.com/a5c-ai/babysitter