CheckOps
Mull
Mull is an Apache-2.0 LLVM-based mutation testing and fault injection tool for C and C++ that mutates code at compile time and reports surviving mutants.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Mull is a practical mutation testing and fault injection tool for C and C++. It is built on LLVM and works as a compiler plugin, inserting mutations during compilation so that one instrumented binary contains all mutants.
The test runner then activates mutants one at a time and records whether your tests kill them. Surviving mutants show places where tests execute code without checking its behaviour. Mull supports Clang-based builds, works with test frameworks such as GoogleTest, and can limit mutations to changed lines for incremental runs. The approach is described in peer-reviewed research cited in the README.
In the quality loop Mull measures how strong C and C++ unit tests really are.
The source code is at mull-project/mull on GitHub under the Apache-2.0 licence, with about 854 stars; the most recent commit was on 11 November 2026.
Features
- Compiler plugin: Mutations inserted at compile time.
- Single binary: All mutants in one build.
- Mutation operators: Arithmetic, comparison, boundary and more.
- Incremental mode: Mutate only changed code.
- Framework agnostic: Works with common test frameworks.
- Reports: IDE-style and other outputs.
Pros
- Efficient: Avoids recompiling for each mutant.
- Free to use: Open source under the Apache-2.0 licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 11 November 2026.
Cons
- Clang required: Needs a matching LLVM toolchain.
- Run time: Mutation testing is slow on big suites.
- Setup: Build integration takes effort.
Usage and Links (Example)
clang -fpass-plugin=/usr/lib/mull-ir-frontend-<llvm-version> -g -grecord-command-line main.c -o tests
mull-runner-<llvm-version> ./tests
Resources:
Pricing
Mull is free and open source under the Apache-2.0 licence.
Recommended for?
- C and C++ teams checking test effectiveness.
- Safety-critical projects needing stronger evidence than coverage.
Conclusion
Mull brings practical mutation testing to C and C++.
Start with incremental runs on changed code.
On CheckOps, Mull is filed under the Unit testing and Release & CI gates stages. Related tools listed here include StrykerJS, PIT (Pitest), mutmut, Infection, cargo-mutants and Gremlins. Which one fits best depends mostly on your stack, your team’s size and skills, and whether you prefer to run tools yourself or pay for a managed service. This page reflects the official website, documentation and repository as they stood on 11 November 2026.
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Mull side by side.
SStrykerJSStrykerJS is the Apache-2.0 mutation testing framework for JavaScript and TypeScript, part of the Stryker Mutator family (with Stryker.NET and Stryker4s), supporting Jest, Vitest, Mocha, Karma and more.Compare with Mull
PPIT (Pitest)PIT (Pitest) is an Apache-2.0 state-of-the-art mutation testing system for Java and the JVM that mutates bytecode to measure how well your tests detect faults, with Maven and Gradle plugins and HTML reports.Compare with Mull
Mmutmutmutmut is a BSD-3-Clause mutation testing tool for Python that changes your code in small ways and reports which mutants your tests fail to kill, with a terminal UI for browsing results.Compare with Mull
IInfectionInfection is a BSD-3-Clause AST-based mutation testing framework for PHP that measures test effectiveness with Mutation Score Indicator metrics, supporting PHPUnit, Pest, Codeception and phpspec.Compare with Mull
Ccargo-mutantscargo-mutants is an MIT-licensed mutation testing tool for Rust that injects bugs into your code and reports which ones your tests miss, with nextest support, sharding and diff-based runs.Compare with Mull
GGremlinsGremlins is an Apache-2.0 mutation testing tool for Go, designed for small to medium modules and usable as a CI quality gate.Compare with Mull