CtrlK
BlogDocsLog inGet started
Tessl Logo

testland/unity-test-framework-c

Author and run ThrowTheSwitch Unity (the C unit-testing library) for bare-metal and RTOS C code. Distinct from the Unity game-engine Test Framework at docs.unity3d.com: this is the ThrowTheSwitch C testing library at throwtheswitch.org/unity, a single C file plus headers that runs on 8-bit MCUs through 64-bit hosts. Anchored on the Unity assertion API and configuration macros regardless of execution environment: the TEST_ASSERT_EQUAL_* / _FLOAT / _DOUBLE / _STRING / _MEMORY / _BITS assertion families, setUp/tearDown/RUN_TEST/UNITY_BEGIN/UNITY_END semantics and the exit-code contract, the generate_test_runner.rb generator, build-time config defines (UNITY_INCLUDE_DOUBLE, UNITY_OUTPUT_CHAR, UNITY_EXCLUDE_SETJMP), and CI integration via Ceedling JUnit XML; applies to host builds, cross-builds, and QEMU-run targets alike. For QEMU machine flags, semihosting, and exit-code capture, see qemu-system-test-runner. Use when the unit-under-test is pure C and the target ranges from 8-bit AVR to Cortex-M0 to Linux ARM.

69

Quality

87%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

Quality

Content

85%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A well-structured, actionable body with copy-paste-ready C and shell examples across host and cross-build paths, clean one-level-deep references, and an explicit anti-patterns/limitations section. The only minor gaps are a touch of redundant inline explanation and an absent explicit retry loop on the QEMU run path.

DimensionReasoningScore

Conciseness

The body is largely efficient — it skips explaining what unit testing is and jumps to executable code, build commands, and a tight anti-pattern table — but a few inline runs (e.g. repeating the Configuration Guide link across sections, restating the _ARRAY/_MESSAGE semantics both inline and via the reference) could be trimmed slightly.

4 / 5

Actionability

Copy-paste-ready code and commands throughout: a complete minimal test with setUp/tearDown/main, host gcc and arm-none-eabi-gcc + QEMU invocation lines, the generate_test_runner.rb command, and concrete grep-based result parsing — covering the common cases end to end.

5 / 5

Workflow Clarity

Authoring → Building → Running → Parsing results → CI integration are clearly sequenced with concrete commands at each stage, and exit-code + grep ':FAIL:' checkpoints validate runs; the cross-build/QEMU path lacks an explicit validate-and-retry loop, so it falls just short of the fully checkpointed anchor.

4 / 5

Progressive Disclosure

SKILL.md is a clear overview that offloads the assertion-family/config table and the full CI YAML to one-level-deep, well-signaled references (references/assertion-api.md, references/ci-integration.md), both of which exist in the bundle, with easy navigation and no nested-reference chains.

5 / 5

Total

18

/

20

Passed

Description

87%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

A highly specific, complete, and well-differentiated description that states concrete capabilities, an explicit 'Use when' trigger, and explicit disambiguation from the similarly-named game-engine skill. Minor room to add more colloquial trigger phrasing.

DimensionReasoningScore

Specificity

Lists multiple concrete capabilities — the TEST_ASSERT_EQUAL_* / _FLOAT / _DOUBLE / _STRING / _MEMORY / _BITS assertion families, setUp/tearDown/RUN_TEST/UNITY_BEGIN/UNITY_END semantics, the generate_test_runner.rb generator, and CI integration via Ceedling JUnit XML — giving comprehensive coverage of what the skill does.

5 / 5

Completeness

Explicitly answers both 'what' (author and run ThrowTheSwitch Unity for C code, with the full assertion API and config) and 'when' via the closing "Use when the unit-under-test is pure C and the target ranges from 8-bit AVR to Cortex-M0 to Linux ARM."

5 / 5

Trigger Term Quality

Strong natural keywords are present ("unit-testing", "embedded", "C unit-testing library", "bare-metal", "RTOS", "8-bit AVR", "Cortex-M0", host/cross/QEMU builds), but it leans slightly technical and omits a few common phrasings a user might say (e.g. "C test" or "unit test my C code").

4 / 5

Distinctiveness Conflict Risk

It explicitly disambiguates the ThrowTheSwitch C library from the Unity game-engine Test Framework ("Distinct from the Unity game-engine Test Framework at docs.unity3d.com"), carves a clear niche (pure C, embedded 8-bit to 64-bit), and points to the sibling qemu-system-test-runner for adjacent concerns, minimizing conflict risk.

5 / 5

Total

19

/

20

Passed

Validation

87%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation14 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_version

'metadata.version' is missing

Warning

referenced_paths_exist

Referenced path issues: 3 missing

Warning

Total

14

/

16

Passed

Reviewed

Table of Contents