CBTF
Caught by the Fuzz! - A Minimalistic Fuzz-Test Runner
A fuzzer for R packages that grew from one argument at a time to parallel runs across whole namespaces.
◆Recent moves
- 1mo ago
Time inputs added; results groupable by input or function
The input catalogue grows from 70 to 85 with a new time class, and print() gains grouping by input or by function plus a summary-only mode. Continued work on the triage side of the tool rather than the fuzzing side, alongside fixes for multi-message conditions and dropped warnings.
View source ↗ - 6mo ago
Parallel fuzzing with timeouts, and multi-argument support
⚡ SPARKThe release that made the tool usable on a whole package rather than a handful of functions. Rewriting fuzz() on mirai brings parallel execution and a timeout that can interrupt a function which neither fails nor returns, while the args argument lifts the long-standing restriction to fuzzing only the first argument.
View source ↗ - 0y ago
Whitelisting for false positives, plus clearer result semantics
whitelist() lets known-benign failures be dropped from a results object, and length() switches to counting tests rather than inputs. Both are triage features, and they arrive alongside errors now taking precedence over warnings when a function raises both — a reporting correctness fix worth more than it sounds.
View source ↗ - 1y ago
Function discovery skips unfuzzable functions; failures no longer crash
get_exported_functions() stops returning functions with no arguments and survives a failing namespace lookup, so a run no longer dies on discovery. Small, but it is the layer everything else depends on before a single input is thrown.
View source ↗ - 1y ago
First release; notes carry only a website link
The package's first version, though the entry says nothing about what it does beyond pointing at the new website — the capability description has to be read from the releases that follow. Its timestamp is backfilled and lands after 0.2.0 and 0.3.0 in this feed, so its position here does not reflect release order.
View source ↗ - 1y ago
Raw results returned as an object with summary and print methods
fuzz() starts returning a structured result with S3 methods instead of printing and discarding, which is the foundation every later reporting feature builds on. Functions calling readline() are skipped so interactive runs stop stalling — an early version of the hang problem that the timeout in 0.6.0 solved properly.
View source ↗