On Mon, Aug 26, 2019 at 1:03 AM Nir Soffer <nir...@gmail.com> wrote: > Using block_resize we can test allocate_first_block() with file > descriptor opened with O_DIRECT, ensuring that it works for any size > larger than 4096 bytes. > > Testing smaller sizes is tricky as the result depends on the filesystem > used for testing. For example on NFS any size will work since O_DIRECT > does not require any alignment. >
Forgot to add: Signed-off-by: Nir Soffer <nsof...@redhat.com> --- > tests/qemu-iotests/175 | 25 +++++++++++++++++++++++++ > tests/qemu-iotests/175.out | 8 ++++++++ > 2 files changed, 33 insertions(+) > > diff --git a/tests/qemu-iotests/175 b/tests/qemu-iotests/175 > index d54cb43c39..60cc251eb2 100755 > --- a/tests/qemu-iotests/175 > +++ b/tests/qemu-iotests/175 > @@ -49,6 +49,23 @@ _filter_blocks() > -e "s/blocks=$((extra_blocks + img_size / > 512))\\(\$\\|[^0-9]\\)/max allocation/" > } > > +# Resize image using block_resize. > +# Parameter 1: image path > +# Parameter 2: new size > +_block_resize() > +{ > + local path=$1 > + local size=$2 > + > + $QEMU -qmp stdio -nographic -nodefaults \ > + -blockdev file,node-name=file,filename=$path,cache.direct=on \ > + <<EOF > +{'execute': 'qmp_capabilities'} > +{'execute': 'block_resize', 'arguments': {'node-name': 'file', 'size': > $size}} > +{'execute': 'quit'} > +EOF > +} > + > # get standard environment, filters and checks > . ./common.rc > . ./common.filter > @@ -79,6 +96,14 @@ for mode in off full falloc; do > stat -c "size=%s, blocks=%b" $TEST_IMG | _filter_blocks $extra_blocks > $min_blocks $size > done > > +for new_size in 4096 1048576; do > + echo > + echo "== resize empty image with block_resize ==" > + _make_test_img 0 | _filter_imgfmt > + _block_resize $TEST_IMG $new_size >/dev/null > + stat -c "size=%s, blocks=%b" $TEST_IMG | _filter_blocks $extra_blocks > $min_blocks $new_size > +done > + > # success, all done > echo "*** done" > rm -f $seq.full > diff --git a/tests/qemu-iotests/175.out b/tests/qemu-iotests/175.out > index 263e521262..39c2ee0f62 100644 > --- a/tests/qemu-iotests/175.out > +++ b/tests/qemu-iotests/175.out > @@ -15,4 +15,12 @@ size=1048576, max allocation > == creating image with preallocation falloc == > Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=1048576 > preallocation=falloc > size=1048576, max allocation > + > +== resize empty image with block_resize == > +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=0 > +size=4096, min allocation > + > +== resize empty image with block_resize == > +Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=0 > +size=1048576, min allocation > *** done > -- > 2.20.1 > >