[Libguestfs] [PATCH v6 07/10] cat: Convert virt-cat and friends to use the test harness.

Richard W.M. Jones rjones at redhat.com
Thu Oct 23 15:16:35 UTC 2014


---
 .gitignore                                   |  1 +
 cat/Makefile.am                              | 23 ++--------
 cat/test-virt-cat.sh                         |  4 +-
 cat/test-virt-filesystems-local-guests.sh.in | 24 +++++++++++
 cat/test-virt-filesystems.sh                 |  4 +-
 cat/test-virt-log.sh                         |  2 +-
 cat/test-virt-ls.sh                          |  8 ++--
 cat/tests.mk                                 | 64 ++++++++++++++++++++++++++++
 configure.ac                                 |  2 +
 generator/tests.ml                           | 13 ++++++
 10 files changed, 117 insertions(+), 28 deletions(-)
 create mode 100755 cat/test-virt-filesystems-local-guests.sh.in
 create mode 100644 cat/tests.mk

diff --git a/.gitignore b/.gitignore
index c1747f0..169a42a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -70,6 +70,7 @@ Makefile.in
 /builder/virt-index-validate.1
 /builder/*.xz
 /cat/stamp-virt-*.pod
+/cat/test-virt-filesystems-local-guests.sh
 /cat/virt-cat
 /cat/virt-cat.1
 /cat/virt-filesystems
diff --git a/cat/Makefile.am b/cat/Makefile.am
index 14b8e81..a6016c4 100644
--- a/cat/Makefile.am
+++ b/cat/Makefile.am
@@ -17,10 +17,13 @@
 
 include $(top_srcdir)/subdir-rules.mk
 
+generator_built = tests.mk
+
 EXTRA_DIST = \
 	test-virt-cat.sh \
 	virt-cat.pod \
 	test-virt-filesystems.sh \
+	test-virt-filesystems-local-guests.sh \
 	virt-filesystems.pod \
 	test-virt-log.sh \
 	virt-log.pod \
@@ -185,22 +188,4 @@ stamp-virt-ls.pod: virt-ls.pod
 	  $<
 	touch $@
 
-# Tests.
-
-TESTS_ENVIRONMENT = $(top_builddir)/run --test
-
-if ENABLE_APPLIANCE
-TESTS = \
-	test-virt-cat.sh \
-	test-virt-filesystems.sh \
-	test-virt-log.sh \
-	test-virt-ls.sh
-endif ENABLE_APPLIANCE
-
-check-valgrind:
-	$(MAKE) VG="$(top_builddir)/run @VG@" check
-
-check-valgrind-local-guests:
-	for g in $(GUESTS); do \
-	  $(top_builddir)/run --test @VG@ ./virt-filesystems -c "$(libvirt_ro_uri)" -d "$$g" --all --long -h --uuid || exit $$?; \
-	done
+include $(srcdir)/tests.mk
diff --git a/cat/test-virt-cat.sh b/cat/test-virt-cat.sh
index fbf09ea..a1683e1 100755
--- a/cat/test-virt-cat.sh
+++ b/cat/test-virt-cat.sh
@@ -20,11 +20,11 @@ export LANG=C
 set -e
 
 # Read out the test files from the image using virt-cat.
-if [ "$($VG virt-cat ../tests/guests/fedora.img /etc/test1)" != "abcdefg" ]; then
+if [ "$($VG virt-cat $phonydir/fedora.img /etc/test1)" != "abcdefg" ]; then
     echo "$0: error: mismatch in file test1"
     exit 1
 fi
-if [ "$($VG virt-cat ../tests/guests/fedora.img /etc/test2)" != "" ]; then
+if [ "$($VG virt-cat $phonydir/fedora.img /etc/test2)" != "" ]; then
     echo "$0: error: mismatch in file test2"
     exit 1
 fi
diff --git a/cat/test-virt-filesystems-local-guests.sh.in b/cat/test-virt-filesystems-local-guests.sh.in
new file mode 100755
index 0000000..b64089b
--- /dev/null
+++ b/cat/test-virt-filesystems-local-guests.sh.in
@@ -0,0 +1,24 @@
+#!/bin/bash -
+# libguestfs
+# Copyright (C) 2009-2014 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.
+
+export LANG=C
+set -e
+
+for g in "$@"; do
+    $VG $builddir/virt-filesystems -c "@libvirt_ro_uri@" -d "$g" --all --long -h --uuid || exit 1
+done
diff --git a/cat/test-virt-filesystems.sh b/cat/test-virt-filesystems.sh
index 2999950..043a6fe 100755
--- a/cat/test-virt-filesystems.sh
+++ b/cat/test-virt-filesystems.sh
@@ -19,7 +19,7 @@
 export LANG=C
 set -e
 
-output="$($VG virt-filesystems -a ../tests/guests/fedora.img | sort)"
+output="$($VG virt-filesystems -a $phonydir/fedora.img | sort)"
 expected="/dev/VG/LV1
 /dev/VG/LV2
 /dev/VG/LV3
@@ -32,7 +32,7 @@ if [ "$output" != "$expected" ]; then
     exit 1
 fi
 
-output="$($VG virt-filesystems -a ../tests/guests/fedora.img --all --long --uuid -h --no-title | awk '{print $1}' | sort -u)"
+output="$($VG virt-filesystems -a $phonydir/fedora.img --all --long --uuid -h --no-title | awk '{print $1}' | sort -u)"
 expected="/dev/VG
 /dev/VG/LV1
 /dev/VG/LV2
diff --git a/cat/test-virt-log.sh b/cat/test-virt-log.sh
index bcbd6f9..db150e6 100755
--- a/cat/test-virt-log.sh
+++ b/cat/test-virt-log.sh
@@ -35,7 +35,7 @@ can_handle ()
 tmpfile=`mktemp`
 
 # Read out the log files from the image using virt-log.
-for f in ../tests/guests/{fedora,debian,ubuntu}.img; do
+for f in $phonydir/{fedora,debian,ubuntu}.img; do
     echo "Trying $f ..."
     if [ ! -s "$f" ]; then
         echo "SKIP: empty file"
diff --git a/cat/test-virt-ls.sh b/cat/test-virt-ls.sh
index 5bb4b8a..23465f4 100755
--- a/cat/test-virt-ls.sh
+++ b/cat/test-virt-ls.sh
@@ -20,7 +20,7 @@ export LANG=C
 set -e
 
 # Read out the test directory using virt-ls.
-if [ "$($VG virt-ls ../tests/guests/fedora.img /bin)" != "ls
+if [ "$($VG virt-ls $phonydir/fedora.img /bin)" != "ls
 test1
 test2
 test3
@@ -33,7 +33,7 @@ test7" ]; then
 fi
 
 # Try the -lR option.
-output="$($VG virt-ls -lR ../tests/guests/fedora.img /boot | awk '{print $1 $2 $4}')"
+output="$($VG virt-ls -lR $phonydir/fedora.img /boot | awk '{print $1 $2 $4}')"
 expected="d0755/boot
 d0755/boot/grub
 -0644/boot/grub/grub.conf
@@ -49,5 +49,5 @@ if [ "$output" != "$expected" ]; then
 fi
 
 # Try the -l and -R options.   XXX Should check the output.
-$VG virt-ls -l ../tests/guests/fedora.img /
-$VG virt-ls -R ../tests/guests/fedora.img /
+$VG virt-ls -l $phonydir/fedora.img /
+$VG virt-ls -R $phonydir/fedora.img /
diff --git a/cat/tests.mk b/cat/tests.mk
new file mode 100644
index 0000000..b47bcb0
--- /dev/null
+++ b/cat/tests.mk
@@ -0,0 +1,64 @@
+# libguestfs generated file
+# WARNING: THIS FILE IS GENERATED FROM:
+#   generator/ *.ml
+# ANY CHANGES YOU MAKE TO THIS FILE WILL BE LOST.
+#
+# Copyright (C) 2009-2014 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.
+
+localtestsdir = $(alltestsdir)/cat
+
+localtests_SCRIPTS = \
+	test-virt-cat.sh \
+	test-virt-filesystems-local-guests.sh \
+	test-virt-filesystems.sh \
+	test-virt-log.sh \
+	test-virt-ls.sh
+
+# Note that we cannot create a simple 'check:' target since
+# automake will (silently) overrule it, so we do this instead:
+
+TESTS_ENVIRONMENT = $(top_builddir)/run
+TESTS = $(top_builddir)/test-harness
+
+check-valgrind:
+	$(top_builddir)/run $(top_builddir)/test-harness --valgrind
+
+check-direct:
+	$(top_builddir)/run $(top_builddir)/test-harness --direct
+
+check-valgrind-direct:
+	$(top_builddir)/run $(top_builddir)/test-harness --valgrind --direct
+
+check-uml:
+	$(top_builddir)/run $(top_builddir)/test-harness --uml
+
+check-valgrind-uml:
+	$(top_builddir)/run $(top_builddir)/test-harness --valgrind --uml
+
+check-with-upstream-qemu:
+	$(top_builddir)/run $(top_builddir)/test-harness --upstream-qemu
+
+check-with-upstream-libvirt:
+	$(top_builddir)/run $(top_builddir)/test-harness --upstream-libvirt
+
+check-local-guests:
+	$(top_builddir)/run $(top_builddir)/test-harness --local-guests
+
+check-valgrind-local-guests:
+	$(top_builddir)/run $(top_builddir)/test-harness --valgrind --local-guests
+
+EXTRA_DIST += tests.mk
diff --git a/configure.ac b/configure.ac
index 7016ee6..eefd777 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1631,6 +1631,8 @@ mkdir -p \
 dnl http://www.mail-archive.com/automake@gnu.org/msg10204.html
 AC_CONFIG_FILES([appliance/libguestfs-make-fixed-appliance],
                 [chmod +x,-w appliance/libguestfs-make-fixed-appliance])
+AC_CONFIG_FILES([cat/test-virt-filesystems-local-guests.sh],
+                [chmod +x,-w cat/test-virt-filesystems-local-guests.sh])
 AC_CONFIG_FILES([inspector/test-virt-inspector-local-guests.sh],
                 [chmod +x,-w inspector/test-virt-inspector-local-guests.sh])
 AC_CONFIG_FILES([inspector/test-xmllint.sh],
diff --git a/generator/tests.ml b/generator/tests.ml
index d395c3d..1db3fbe 100644
--- a/generator/tests.ml
+++ b/generator/tests.ml
@@ -361,6 +361,19 @@ let tests = [
       ];
   };
 
+  "cat", {
+    defaults with
+      check = [
+	"test-virt-cat.sh";
+	"test-virt-filesystems.sh";
+	"test-virt-log.sh";
+	"test-virt-ls.sh";
+      ];
+      check_local_guests = [
+        "test-virt-filesystems-local-guests.sh";
+      ];
+  };
+
   "fish", {
     defaults with
       check_fast = [
-- 
2.0.4




More information about the Libguestfs mailing list