On Mon, Oct 19, 2015 at 03:21:12PM +0200, Pino Toscano wrote:
Test case adapted from Hu Zhang's RHBZ#1242853, thanks. --- tests/regressions/Makefile.am | 2 + tests/regressions/rhbz1011907-1165785.sh | 66 ++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100755 tests/regressions/rhbz1011907-1165785.sh
diff --git a/tests/regressions/Makefile.am b/tests/regressions/Makefile.am index c4f60ae..026987b 100644 --- a/tests/regressions/Makefile.am +++ b/tests/regressions/Makefile.am @@ -37,6 +37,7 @@ EXTRA_DIST = \ rhbz957772.sh \ rhbz975797.sh \ rhbz1001875.sh \ + rhbz1011907-1165785.sh \ rhbz1044014.sh \ rhbz1044014.in \ rhbz1044014.xml \ @@ -69,6 +70,7 @@ TESTS = \ rhbz1054761.sh \ rhbz1055452 \ rhbz1091803.sh \ + rhbz1011907-1165785.sh \ rhbz1175196.sh \ rhbz1232192.sh \ test-big-heap \ diff --git a/tests/regressions/rhbz1011907-1165785.sh b/tests/regressions/rhbz1011907-1165785.sh new file mode 100755 index 0000000..f45ae3c --- /dev/null +++ b/tests/regressions/rhbz1011907-1165785.sh @@ -0,0 +1,66 @@ +#!/bin/bash - +# libguestfs +# Copyright (C) 2015 Red Hat Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program 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 General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +# Regression test for: +# https://bugzilla.redhat.com/show_bug.cgi?id=1011907 +# https://bugzilla.redhat.com/show_bug.cgi?id=1165785 +# i.e., mount-loop option, which means correct startup sequence and creation +# of base devices (like /dev/loop-control for loopback setup) + +set -e +export LANG=C + +if [ -n "$SKIP_TEST_RHBZ1011907_1165785_SH" ]; then + echo "$0: test skipped because environment variable is set." + exit 77 +fi + +rm -f rhbz1011907-1165785-loop.img rhbz1011907-1165785.img + +qemu-img create rhbz1011907-1165785-loop.img 100M +qemu-img create rhbz1011907-1165785.img 300M + +guestfish -a rhbz1011907-1165785-loop.img <<EOF +run +part-disk /dev/sda mbr +mkfs ext3 /dev/sda +mount /dev/sda / +touch /in-loop +EOF + +output=$( +guestfish -a rhbz1011907-1165785.img <<EOF +run +part-disk /dev/sda mbr +mkfs ext3 /dev/sda1 +mount /dev/sda1 / +upload rhbz1011907-1165785-loop.img /rhbz1011907-1165785-loop.img +mkmountpoint /loop +mount-loop /rhbz1011907-1165785-loop.img /loop/ +is-file /loop/in-loop +EOF +) + +if [ "$output" != \ +"true" ]; then + echo "$0: error: output of guestfish did not match expected output" + echo "$output" + exit 1 +fi + +rm rhbz1011907-1165785-loop.img rhbz1011907-1165785.img
ACK .. although it would be nicer if we could combine the two runs of guestfish into one somehow. I assume that's not possible. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-df lists disk usage of guests without needing to install any software inside the virtual machine. Supports Linux and Windows. http://people.redhat.com/~rjones/virt-df/