Summary of changes:
- Fixed the way package metadata is accessed to ensure wheel compatibility.
Summary of changes:
- New features in the framework:
- Support for issue (re-)validation with a new job type (validate).
- Support for user-defined event listeners.
- Numerous new building blocks in the framework:
fuzzinator.EmailListener
: support for sending emails about events, e.g., new issues.fuzzinator.tracker.MonorailReport
: support for the Monorail issue tracking system.fuzzinator.call.LldbBacktraceDecorator
: support for backtrace info via LLDB.fuzzinator.fuzzer.ByteFlipDecorator
: support for adding extra random byte flips to fuzzer results.fuzzinator.fuzzer.FileWriterDecorator
: support for writing fuzzer results to files.fuzzinator.call.FileReaderDecorator
: support for extracting fuzzer results from files.
- Building blocks with extended or changed functionality:
fuzzinator.call.SubprocessCall
and.StdinSubprocessCall
can accept 0 exit code as an issue.fuzzinator.call.StreamRegexFilter
has been renamed to.RegexFilter
to enable arbitrary filtering of issues, and can match multiple patterns.fuzzinator.call.StreamMonitoredSubprocessCall
regex patterns are multiline.fuzzinator.fuzzer.AFLRunner
supports AFL's master and slave concepts.fuzzinator.fuzzer.ListDirectory
works with a glob pattern instead of a simple directory name to collect test cases.fuzzinator.fuzzer.SubprocessRunner
and.ListDirectory
can work both as file content generators and as file path generators.fuzzinator.update.TimestampUpdateCondition
supports time intervals longer than 24 hours.- All Popen-based subprocess-executing building blocks
(
fuzzinator.call.StdinSubprocessCall
,.StreamMonitoredSubprocessCall
,.SubprocessCall
,.SubprocessPropertyDecorator
,.TestRunnerSubprocessCall
,fuzzinator.fuzzer.SubprocessRunner
, andfuzzinator.update.SubprocessUpdate
) have timeout support and avoid shell invocation. fuzzinator.reduce.Picire
has been updated to use Picire 18.1.fuzzinator.reduce.Picireny
has been updated to use Picireny 18.2.- All reporters (
fuzzinator.tracker.MonorailReport
,.BugzillaReport
,.GithubReport
) have been changed to use format string syntax ({key}) instead of template syntax ($key) in their report templates, and all handle missing keys gracefully.
- TUI improvements:
- Support for simpler custom color schemes.
- More convenient bug report editor.
- Support for both text and binary copying of test cases to the clipboard.
- Support for declaring bug duplicates manually.
- New and improved dialogs (about dialog, closing of dialogs).
- Improved event handling (responsivity, updated issues, invalid issues).
- General usability improvements:
- More flexible configuration format enabling config sections to be split across multiple files, and keys to have no value.
- Support for command line arguments specified in list files to help with config file fragments.
- Useful command line argument aliases and new arguments (appearance, verbosity, Python interpreter limits, fuzz session length).
- Under-the-hood improvements:
- Improved logging.
- Added testing infrastructure: unit testing of SUT calls, fuzzers, and SUT updaters via tox; continuous testing via Travis and AppVeyor CI services.
- Added documentation: out-of-sources tutorial and auto-generated API docs via Sphinx; online documentation hosting on Read-the-Docs.
- Various bug fixes and refactorings (in core components, in building blocks, and in user interfaces).
First public release of the Fuzzinator Random Testing Framework.
Summary of main features:
- Core scheduler/controller of fuzzing-related jobs (update, fuzz, reduce).
- MongoDB-based issue repository.
- Extensible framework with predefined building blocks for invoking SUTs, detecting issues, and determining uniqueness; for generating test cases and transporting them to SUTs; for minimizing issue-triggering tests; and for keeping SUTs under development up-to-date.
- Configurability via INI files.
- CLI and Urwid-based TUI.