On Mon, Mar 1, 2021 at 6:46 PM Richard W.M. Jones <rjones(a)redhat.com> wrote:
On Mon, Mar 01, 2021 at 06:41:43PM +0200, Nir Soffer wrote:
> On Mon, Mar 1, 2021 at 6:38 PM Richard W.M. Jones <rjones(a)redhat.com> wrote:
> >
> > On Mon, Mar 01, 2021 at 06:35:04PM +0200, Nir Soffer wrote:
> > > Add simple test similar to copy-sparse-no-extents testing that
> > > --request-size is respected.
> > >
> > > Signed-off-by: Nir Soffer <nsoffer(a)redhat.com>
> > > ---
> > > copy/Makefile.am | 2 +
> > > copy/copy-sparse-request-size.sh | 92 ++++++++++++++++++++++++++++++++
> > > 2 files changed, 94 insertions(+)
> > > create mode 100755 copy/copy-sparse-request-size.sh
> > >
> > > diff --git a/copy/Makefile.am b/copy/Makefile.am
> > > index c8b28ac..d85ceff 100644
> > > --- a/copy/Makefile.am
> > > +++ b/copy/Makefile.am
> > > @@ -36,6 +36,7 @@ EXTRA_DIST = \
> > > copy-sparse.sh \
> > > copy-sparse-allocated.sh \
> > > copy-sparse-no-extents.sh \
> > > + copy-sparse-request-size.sh \
> > > copy-sparse-to-stream.sh \
> > > copy-stdin-to-nbd.sh \
> > > copy-stdin-to-null.sh \
> > > @@ -122,6 +123,7 @@ TESTS += \
> > > copy-sparse.sh \
> > > copy-sparse-allocated.sh \
> > > copy-sparse-no-extents.sh \
> > > + copy-sparse-request-size.sh \
> > > copy-sparse-to-stream.sh \
> > > $(ROOT_TESTS) \
> > > test-long-options.sh \
> > > diff --git a/copy/copy-sparse-request-size.sh
b/copy/copy-sparse-request-size.sh
> > > new file mode 100755
> > > index 0000000..b539f5e
> > > --- /dev/null
> > > +++ b/copy/copy-sparse-request-size.sh
> > > @@ -0,0 +1,92 @@
> > > +#!/usr/bin/env bash
> > > +# nbd client library in userspace
> > > +# Copyright (C) 2021 Red Hat Inc.
> > > +#
> > > +# This library is free software; you can redistribute it and/or
> > > +# modify it under the terms of the GNU Lesser General Public
> > > +# License as published by the Free Software Foundation; either
> > > +# version 2 of the License, or (at your option) any later version.
> > > +#
> > > +# This library is distributed in the hope that it will be useful,
> > > +# but WITHOUT ANY WARRANTY; without even the implied warranty of
> > > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> > > +# Lesser General Public License for more details.
> > > +#
> > > +# You should have received a copy of the GNU Lesser General Public
> > > +# License along with this library; if not, write to the Free Software
> > > +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA
> > > +
> > > +# Adapted from copy-sparse-no-extents.sh
> > > +#
> > > +# This test depends on the nbdkit default sparse block size (32K).
> > > +
> > > +. ../tests/functions.sh
> > > +
> > > +set -e
> > > +set -x
> > > +
> > > +# Skip this test under valgrind, it takes too long.
> > > +if [ "x$LIBNBD_VALGRIND" = "x1" ]; then
> > > + echo "$0: test skipped under valgrind"
> > > + exit 77
> > > +fi
> > > +
> > > +requires nbdkit --version
> > > +requires nbdkit --exit-with-parent --version
> > > +requires nbdkit data --version
> > > +requires nbdkit eval --version
> > > +
> > > +out=copy-sparse-request-size.out
> >
> > Copy and paste problem - unless temporary files have a unique name
> > they will conflict when we run the tests in parallel (which we do
> > normally).
>
> Isn't "copy-sparse-request-size.out" unique?
Sorry, yes it's totally fine. I misread it as copy-sparse.out
from the original file.
Will push this tomorrow then.
Rich.
> >
> > Rich.
> >
> > > +cleanup_fn rm -f $out
> > > +
> > > +$VG nbdcopy --no-extents -S 0 --request-size=1048576 -- \
> > > + [ nbdkit --exit-with-parent data data='
> > > + 1
> > > + @33554431 1
> > > + ' ] \
> > > + [ nbdkit --exit-with-parent eval \
> > > + get_size=' echo 33554432 ' \
> > > + pwrite=" echo \$@ >> $out " \
> > > + trim=" echo \$@ >> $out " \
> > > + zero=" echo \$@ >> $out " ]
> > > +
> > > +sort -n -o $out $out
> > > +
> > > +echo Output:
> > > +cat $out
> > > +
> > > +if [ "$(cat $out)" != "pwrite 1048576 0
> > > +pwrite 1048576 1048576
> > > +pwrite 1048576 10485760
> > > +pwrite 1048576 11534336
> > > +pwrite 1048576 12582912
> > > +pwrite 1048576 13631488
> > > +pwrite 1048576 14680064
> > > +pwrite 1048576 15728640
> > > +pwrite 1048576 16777216
> > > +pwrite 1048576 17825792
> > > +pwrite 1048576 18874368
> > > +pwrite 1048576 19922944
> > > +pwrite 1048576 2097152
> > > +pwrite 1048576 20971520
> > > +pwrite 1048576 22020096
> > > +pwrite 1048576 23068672
> > > +pwrite 1048576 24117248
> > > +pwrite 1048576 25165824
> > > +pwrite 1048576 26214400
> > > +pwrite 1048576 27262976
> > > +pwrite 1048576 28311552
> > > +pwrite 1048576 29360128
> > > +pwrite 1048576 30408704
> > > +pwrite 1048576 3145728
> > > +pwrite 1048576 31457280
> > > +pwrite 1048576 32505856
> > > +pwrite 1048576 4194304
> > > +pwrite 1048576 5242880
> > > +pwrite 1048576 6291456
> > > +pwrite 1048576 7340032
> > > +pwrite 1048576 8388608
> > > +pwrite 1048576 9437184" ]; then
> > > + echo "$0: output does not match expected"
> > > + exit 1
> > > +fi
> > > --
> > > 2.26.2
> >
> > --
> > Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
> > Read my programming and virtualization blog:
http://rwmj.wordpress.com
> > virt-top is 'top' for virtual machines. Tiny program with many
> > powerful monitoring features, net stats, disk stats, logging, etc.
> >
http://people.redhat.com/~rjones/virt-top
> >
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
Fedora Windows cross-compiler. Compile Windows programs, test, and
build Windows installers. Over 100 libraries supported.
http://fedoraproject.org/wiki/MinGW