CheckOps home

Tools directory

M

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.

Visit website

Latest public signals

Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.

Visit Website

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

  1. Compiler plugin: Mutations inserted at compile time.
  2. Single binary: All mutants in one build.
  3. Mutation operators: Arithmetic, comparison, boundary and more.
  4. Incremental mode: Mutate only changed code.
  5. Framework agnostic: Works with common test frameworks.
  6. Reports: IDE-style and other outputs.

Pros

  1. Efficient: Avoids recompiling for each mutant.
  2. Free to use: Open source under the Apache-2.0 licence, so the core tool costs nothing to use.
  3. Actively maintained: The repository had commits as recent as 11 November 2026.

Cons

  1. Clang required: Needs a matching LLVM toolchain.
  2. Run time: Mutation testing is slow on big suites.
  3. Setup: Build integration takes effort.
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.

  1. C and C++ teams checking test effectiveness.
  2. 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.