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. v2 -> v3: * the runner.py takes binaries under test from environment variables only * the runner.py accepts JSON with a list of commands under test * the runner.py has default list of commands under test * *.ini files for fuzzer configuration were replaced by JSON * the runner creates backing files of different formats * the image generator supports backing file name * the header extensions are generated dependently on available free space * the specification reflects changes mentioned above * the specification has the copyright header (based on Eric Blake comments) 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 | 336 ++++++++++++++++++++++++++++ tests/image-fuzzer/qcow2/layout.py | 359 ++++++++++++++++++++++++++++++ tests/image-fuzzer/runner/runner.py | 370 +++++++++++++++++++++++++++++++ 5 files changed, 1305 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