This patch override only when default is specified, I am +1 with it. I think we had discuss before, just want a double check, stefan, do you agree with this?
> This replaces _unsupported_qemu_io_options and check for support of > current cache mode, and allow to provide a default if user didn't > specify. > > Signed-off-by: Fam Zheng <f...@redhat.com> > --- > tests/qemu-iotests/026 | 3 ++- > tests/qemu-iotests/039 | 3 ++- > tests/qemu-iotests/052 | 4 ++-- > tests/qemu-iotests/common.rc | 25 +++++++++++++++---------- > 4 files changed, 21 insertions(+), 14 deletions(-) > > diff --git a/tests/qemu-iotests/026 b/tests/qemu-iotests/026 > index ebe29d0..c9c5f83 100755 > --- a/tests/qemu-iotests/026 > +++ b/tests/qemu-iotests/026 > @@ -44,7 +44,8 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 > _supported_fmt qcow2 > _supported_proto generic > _supported_os Linux > - > +_default_cache_mode "writethrough" > +_supported_cache_modes "writethrough" "none" > Why forbid mode = writeback? > echo "Errors while writing 128 kB" > echo > diff --git a/tests/qemu-iotests/039 b/tests/qemu-iotests/039 > index 8bade92..6abf472 100755 > --- a/tests/qemu-iotests/039 > +++ b/tests/qemu-iotests/039 > @@ -44,7 +44,8 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 > _supported_fmt qcow2 > _supported_proto generic > _supported_os Linux > -_unsupported_qemu_io_options --nocache > +_default_cache_mode "writethrough" > +_supported_cache_modes "writethrough" > same here. > size=128M > > diff --git a/tests/qemu-iotests/052 b/tests/qemu-iotests/052 > index f5f9683..4d4e411 100755 > --- a/tests/qemu-iotests/052 > +++ b/tests/qemu-iotests/052 > @@ -41,8 +41,8 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 > _supported_fmt generic > _supported_proto generic > _supported_os Linux > -_unsupported_qemu_io_options --nocache > - > +_default_cache_mode "writethrough" > +_supported_cache_modes "writethrough" > same question. > size=128M > _make_test_img $size > diff --git a/tests/qemu-iotests/common.rc b/tests/qemu-iotests/common.rc > index 7f62457..47cef6d 100644 > --- a/tests/qemu-iotests/common.rc > +++ b/tests/qemu-iotests/common.rc > @@ -387,18 +387,23 @@ _supported_os() > _notrun "not suitable for this OS: $HOSTOS" > } > > -_unsupported_qemu_io_options() > +_supported_cache_modes() > { > - for bad_opt > - do > - for opt in $QEMU_IO_OPTIONS > - do > - if [ "$bad_opt" = "$opt" ] > - then > - _notrun "not suitable for qemu-io option: $bad_opt" > - fi > - done > + for mode; do > + if [ "$mode" = "$CACHEMODE" ]; then > + return > + fi > done > + _notrun "not suitable for cache mode: $CACHEMODE" > +} > + > +_default_cache_mode() > +{ > + if $CACHEMODE_IS_DEFAULT; then > + CACHEMODE="$1" > + QEMU_IO="$QEMU_IO --cache $1" > + return > + fi > } > > # this test requires that a specified command (executable) exists >