This patch series introduces the image fuzzer, a tool for stability and reliability testing. Its approach is to run large amount of tests in background. During every test a program (e.g. qemu-img) is called to read or modify an invalid test image. A test image has valid inner structure defined by its format specification with some fields having random invalid values.
Patch 1 contains documentation for the image fuzzer, patch 2 is the test runner and remaining ones relate to the image generator for qcow2 format. This patch series was created for the 'block-next' branch. v3 -> v4: All changes are based on the review of Stefan Hajnoczi: Runner: * list of test results replaced by a single boolean value * the code cleanup (residual hash() and error handling) * fixed ambiguities in the usage and errors texts Fuzz: * simplified validating and selecting functions with the unified validator Layout: * fixed typos Docs: * fixed wrong JSON terminology Maria Kustova (5): docs: Specification for the image fuzzer runner: Tool for fuzz tests execution fuzz: Fuzzing functions for qcow2 images layout: Generator of fuzzed qcow2 images package: Public API for image-fuzzer/runner/runner.py tests/image-fuzzer/docs/image-fuzzer.txt | 239 ++++++++++++++++++++ tests/image-fuzzer/qcow2/__init__.py | 1 + tests/image-fuzzer/qcow2/fuzz.py | 329 ++++++++++++++++++++++++++++ tests/image-fuzzer/qcow2/layout.py | 359 ++++++++++++++++++++++++++++++ tests/image-fuzzer/runner/runner.py | 360 +++++++++++++++++++++++++++++++ 5 files changed, 1288 insertions(+) create mode 100644 tests/image-fuzzer/docs/image-fuzzer.txt create mode 100644 tests/image-fuzzer/qcow2/__init__.py create mode 100644 tests/image-fuzzer/qcow2/fuzz.py create mode 100644 tests/image-fuzzer/qcow2/layout.py create mode 100755 tests/image-fuzzer/runner/runner.py -- 1.9.3