Add basic tests to cover some regressions that we had. It's hard to test floppy because some tests require presence or absense of a diskette in a drive. To simulate test conditions and automate the testing I added "run_*.sh" wrapper scripts that run tests in QEMU.
The first patch just improves check for reverted commits in a commit message. The second patch is required to generate a minimal initrd used in next commits. Rest of commits are basic floppy tests.
Please, comment the approach, selftests integration and suggest tests that you would like to add.
I thought about adding a possibility to remove/insert diskettes inside a test. This is possible if we give the guest an access to the QEMU monitor (eject/change cmds). But I didn't find a better way to do it than to map a monitor to an external port: -monitor tcp:<ip>:<port>,server,nowait and access this ip from the guest. Maybe it's also possible to do with virtserialport.
Denis Efremov (5): checkpatch: improve handling of revert commits gen_initramfs.sh: use absolute path for gen_init_cpio selftests: floppy: add basic tests for opening an empty device selftests: floppy: add basic tests for a readonly disk selftests: floppy: add basic rdwr tests
MAINTAINERS | 1 + scripts/checkpatch.pl | 12 +-- tools/testing/selftests/floppy/.gitignore | 8 ++ tools/testing/selftests/floppy/Makefile | 10 ++ tools/testing/selftests/floppy/config | 1 + tools/testing/selftests/floppy/empty.c | 58 ++++++++++++ tools/testing/selftests/floppy/init.c | 43 +++++++++ tools/testing/selftests/floppy/lib.sh | 67 +++++++++++++ tools/testing/selftests/floppy/rdonly.c | 99 ++++++++++++++++++++ tools/testing/selftests/floppy/rdwr.c | 67 +++++++++++++ tools/testing/selftests/floppy/run_empty.sh | 16 ++++ tools/testing/selftests/floppy/run_rdonly.sh | 22 +++++ tools/testing/selftests/floppy/run_rdwr.sh | 22 +++++ usr/gen_initramfs.sh | 2 +- 14 files changed, 421 insertions(+), 7 deletions(-) create mode 100644 tools/testing/selftests/floppy/.gitignore create mode 100644 tools/testing/selftests/floppy/Makefile create mode 100644 tools/testing/selftests/floppy/config create mode 100644 tools/testing/selftests/floppy/empty.c create mode 100644 tools/testing/selftests/floppy/init.c create mode 100644 tools/testing/selftests/floppy/lib.sh create mode 100644 tools/testing/selftests/floppy/rdonly.c create mode 100644 tools/testing/selftests/floppy/rdwr.c create mode 100755 tools/testing/selftests/floppy/run_empty.sh create mode 100755 tools/testing/selftests/floppy/run_rdonly.sh create mode 100755 tools/testing/selftests/floppy/run_rdwr.sh