On Thu, Apr 13, 2023 at 06:05:56PM +0200, Laszlo Ersek wrote:
On 4/13/23 16:32, Richard W.M. Jones wrote:
> See:
https://listman.redhat.com/archives/libguestfs/2023-April/031243.html
> Updates: commit c6d6113fa1f38389dbc27f000d06c425cbe912cd
> ---
> tests/Makefile.am | 10 +++++--
> tests/test-floppy-size.sh | 61 +++++++++++++++++++++++++++++++++++++++
> 2 files changed, 69 insertions(+), 2 deletions(-)
>
> diff --git a/tests/Makefile.am b/tests/Makefile.am
> index 9b846d246..a080765f2 100644
> --- a/tests/Makefile.am
> +++ b/tests/Makefile.am
> @@ -818,8 +818,14 @@ test_file_block_CFLAGS = $(WARNINGS_CFLAGS)
$(LIBGUESTFS_CFLAGS)
> test_file_block_LDADD = libtest.la $(LIBGUESTFS_LIBS)
>
> # floppy plugin test.
> -TESTS += test-floppy.sh
> -EXTRA_DIST += test-floppy.sh
> +TESTS += \
> + test-floppy.sh \
> + test-floppy-size.sh \
> + $(NULL)
> +EXTRA_DIST += \
> + test-floppy.sh \
> + test-floppy-size.sh \
> + $(NULL)
>
> # full plugin test.
> TESTS += test-full.sh
> diff --git a/tests/test-floppy-size.sh b/tests/test-floppy-size.sh
> new file mode 100755
> index 000000000..f59c0edfa
> --- /dev/null
> +++ b/tests/test-floppy-size.sh
> @@ -0,0 +1,61 @@
> +#!/usr/bin/env bash
> +# nbdkit
> +# Copyright Red Hat
> +#
> +# Redistribution and use in source and binary forms, with or without
> +# modification, are permitted provided that the following conditions are
> +# met:
> +#
> +# * Redistributions of source code must retain the above copyright
> +# notice, this list of conditions and the following disclaimer.
> +#
> +# * Redistributions in binary form must reproduce the above copyright
> +# notice, this list of conditions and the following disclaimer in the
> +# documentation and/or other materials provided with the distribution.
> +#
> +# * Neither the name of Red Hat nor the names of its contributors may be
> +# used to endorse or promote products derived from this software without
> +# specific prior written permission.
> +#
> +# THIS SOFTWARE IS PROVIDED BY RED HAT AND CONTRIBUTORS ''AS IS''
AND
> +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
> +# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
> +# PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL RED HAT OR
> +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
> +# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
> +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
> +# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
> +# OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
> +# SUCH DAMAGE.
> +
> +# Test the floppy / FAT32 plugin with the size= parameter.
> +
> +source ./functions.sh
> +set -e
> +
> +requires_plugin floppy
> +requires guestfish --version
> +
> +sock=$(mktemp -u /tmp/nbdkit-test-sock.XXXXXX)
> +files="floppy-size.pid $sock"
> +rm -f $files
> +cleanup_fn rm -f $files
> +
> +# When testing this we need to use a directory which won't change
> +# during the test (so not the current directory).
> +start_nbdkit -P floppy-size.pid -U $sock \
> + --filter=cow \
> + floppy $srcdir/../plugins/floppy size=2G
> +
> +# Check the floppy content.
> +guestfish --rw --format=raw -a "nbd://?socket=$sock" -m /dev/sda1
<<'EOF'
> + ll /floppy.c
> + ll /nbdkit-floppy-plugin.pod
> +
> +# Because of size= parameter there should be enough free space
> +# to write a large file.
> + df-h
> + fill-pattern hello 100M /fill
> +EOF
Nice test! I figure you simply recall the nbdkit "cow" filter, and the
"fill-pattern" guestfs API, without having to look for them :)
I had to look up fill-pattern ...
Reviewed-by: Laszlo Ersek <lersek(a)redhat.com>
Thanks - upstream now as commit a7709a69ac084688c9e3b153930a2f3a1647ec8c
Rich.
--
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