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 :)
Reviewed-by: Laszlo Ersek <lersek(a)redhat.com>