A Smart Unit Testing Framework by Fossil Logic
Pizza Test is an advanced, high-traceability unit testing framework designed by Fossil Logic for C and C++ projects. Built for environments where determinism, transparency, and system introspection are essential, Pizza Test provides deep behavioral insights and fully traceable execution metadata. It is ideal for testing modules involving critical logic, memory correctness, system reasoning, and long-term auditability.
Key Features #
| Feature | Description |
|---|---|
| Command-Line Interface (CLI) | A robust CLI for executing tests, managing suites, and generating reports—ideal for automation and CI/CD workflows. |
| Traceable Test Metadata | Each test carries timestamped, hashed metadata enabling full reproducibility and auditability of results. |
| Multiple Testing Methodologies | Supports BDD, DDD, and TDD styles for maximum flexibility. |
| Mocking Capabilities | Advanced mocking tools for simulating dependencies and isolating logic with deterministic behavior. |
| Bench-marking Tools | Integrated bench-marking and performance metrics for detecting regressions or long-running paths. |
| Sanity Kit for Command Testing | A dedicated module for validating CLI and shell-based tools consistently across platforms. |
| Customizable Output Themes | Select from output themes such as fossil, catch, doctest, and more. |
| Tag-Based Test Filtering | Run only the tests you want using tags, names, suites, or combined criteria. |
| Detailed Performance Insights | Execution time, memory profile, and stability statistics help improve reliability. |
| Objective-C and Objective-C++ Support | Full macOS compatibility for Apple-specific code-bases. |
Command-Line Interface #
Pizza Test provides a powerful CLI for test execution and suite management.
Below is the full command and option reference.
Commands and Options #
| Command | Description | Notes |
|---|---|---|
--version | Display version information. | Useful for CI validation. |
--dry-run | Show what would run, without running tests. | Ideal for verifying selection filters. |
--host | Display system information. | Helps identify execution environment. |
--help | Show general help. | Quick reference for commands. |
run | Execute tests with optional parameters. | Supports --fail-fast, --repeat, and more. |
filter | Filter tests by criteria. | Filter by name, suite, or tag. |
sort | Sort tests by user-defined fields. | Supports ascending or descending order. |
shuffle | Shuffle test order. | Optional seed for reproducible shuffles. |
show | List test cases and suites. | Useful for browsing available tests. |
color=<mode> | Set color mode (enable, disable, auto). | Enhances visibility in terminals. |
config=<file> | Load settings from pizza_test.ini. | Supports environment-specific configs. |
theme=<name> | Select output theme. | Customize formatting and layout. |
timeout=<seconds> | Set command timeout (default: 60). | Helps identify long-running tests. |
Note:
Use run --help or <command> --help to view detailed, command-specific documentation.
Prerequisites #
Before installing Pizza Test, ensure the following:
Required Tools #
- Meson Build System 1.8.0+
If Meson is not installed, follow instructions on the official Meson website.
Adding Pizza Test as a Dependency #
Pizza Test can be added conveniently through Meson’s git wrap mechanism.
1. Add a Git Wrap #
Place a .wrap file inside subprojects/:
subprojects/fossil-test.wrap
[wrap-git]
url = https://github.com/fossillogic/fossil-test.git
revision = v1.3.1
[provide]
dependency_names = fossil-test2. Integrate Into Your meson.build #
fossil_test = dependency('fossil-test')
Meson will automatically fetch, build, and link the framework.
Tip:
For best results, always use the latest version of Pizza Test.
Check the Pizza Test Releases page for updates.