Skip to content

Migration Guide

  • The generator is now a shell script (bash/ksh/zsh) that reads a binary’s symbol table (readelf, objdump, or nm) to find test cases — no more source-code parsing.
  • Test cases are found by naming convention, not by annotations like the old A_Test.
  • The shell-script generator is less fragile and more universal than the old source parser.
  • It’s modular — readelf, objdump, and nm are all supported, and you can write a module for a different toolchain.
  • The old version is end-of-life and no longer maintained.
  • The new runner architecture is modular: run the same tests with a simple/custom runner on an embedded device, and a fork runner on your dev machine — see Core Concepts.
  1. Rename your test functions (annotations can stay for now, so old and new AceUnit can run side by side during migration):
    • A_Before → prefix with beforeEach
    • A_BeforeClass → prefix with beforeAll
    • A_After → prefix with afterEach
    • A_AfterClass → prefix with afterAll
    • A_Test → prefix with test
  2. Get the new AceUnit running alongside the old one — see Getting Started.
  3. Deactivate the old version once the new one is verified.
  • Annotation-style processing (A_Test, A_BeforeClass, etc.) — removed to drop the fragile source parser (and the Java dependency it required) in favor of naming conventions read via the shell-script generator. Expected to return once C gets real annotations.
  • Multiple fixture methods per fixture — previous versions allowed several setup/teardown functions per fixture; this wasn’t really used and added memory and complexity for little benefit.