Shrinking violations #

When Bombadil finds a violation, the trace leading up to it is often long and full of actions that have nothing to do with the bug. The shrink command takes such a trace and searches for a shorter one that still violates the same property.

Shrinking is experimental. The command-line options and output format may change between releases.

bombadil browser shrink --headless --trace my-test https://example.com

It’s important that the shrink invocation uses the same options as the original test or fuzz invocation, just as when reproducing violations.

Shrinking begins with a calibration phase that tries to assess the flakiness of reproducing the violation. Calibration can be controlled with --calibration-runs and --confirmation-runs-max if needed. At the end of shrinking, you get a new trace in the output directory, configured with --output-path and --output-path-overwrite, that can be reproduced or inspected.