Pino Toscano
2015-Oct-19 13:21 UTC
[Libguestfs] [PATCH] Add a regression test for RHBZ#1011907 / RHBZ#1165785
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 -- 2.1.0
Richard W.M. Jones
2015-Oct-20 13:34 UTC
Re: [Libguestfs] [PATCH] Add a regression test for RHBZ#1011907 / RHBZ#1165785
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.imgACK .. 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/
Possibly Parallel Threads
- [PATCH v5 5/7] tests/regressions: Remove executable stack test.
- [PATCH 1/3] tests: specify the image format when possible
- [PATCH 0/3] misc tests-only changes
- [PATCH] tests/regressions: Remove executable stack test.
- [PATCH 0/3] tests: Define common test functions.