Richard W.M. Jones
2014-Sep-16 14:05 UTC
[Libguestfs] [PATCH 0/3] tests: Introduce test harness for running tests.
These are my thoughts on adding a test harness to run tests instead of using automake. The aim of this exercise is to allow us to run the full test suite on an installed copy of libguestfs. Another aim is to allow us to work around all the limitations and problems of automake. The first patch makes an observation that since the ./run script sets up $PATH to contain all the directories containing binaries, we can change all the test scripts to use (eg) 'guestfish' instead of '../fish/guestfish'. This allows the test scripts to be reused to test the installed binary, simply by not invoking the ./run script. Note this change is completely compatible with the current test system. The second patch is just preparation. The third patch adds (or rather, generates) a shell script in the top level directory called 'test-harness'. This script is what will run the tests (replacing automake). The test-harness script can be used both to run the tests on the built tree, using: ./run test-harness [subdirectory] or on an installed tree. The plan would be to install all the test scripts and data files required into @libdir@/guestfs/tests, and then you could run the test suite by doing: cd /usr/lib/guestfs/tests ./test-harness ./test-harness --fast ./test-harness --slow --valgrind The test-harness script is wired into the existing Makefile.am's by having the generator also generate 'tests.mk' fragments which are included in the existing Makefile.am's. They contain rules for 'check', 'check-valgrind' etc which were previously written by hand. The aim here is to have commands like: make check make -C inspector check-valgrind just work as they do currently. Some unfinished business in the current patch set: - Some tests need data files (tests/data and tests/guests) but these are probably too large to ship around with the test suite, and have to be generated because we don't want the test suite to require the appliance. Exactly how this will work is not fully decided. - Only the inspector/ subdirectory has been converted. All the other tests and directories would have to be converted. Although this is quite a lot of compatibility, it's still going to be a long and painful process. Rich.
Richard W.M. Jones
2014-Sep-16 14:05 UTC
[Libguestfs] [PATCH 1/3] tests: Don't use relative paths to binaries in tests.
All tests run under the ./run binary. For a long time the ./run
binary has set the $PATH environment variable to contain all of the
directories with binaries in them.
Therefore there is no reason to use ../fish/guestfish instead of just
plain guestfish (and the same applies to other built binaries).
---
align/test-virt-alignment-scan-guests.sh | 2 +-
align/test-virt-alignment-scan.sh | 2 +-
builder/test-virt-builder-list.sh | 6 ++--
builder/test-virt-builder-planner.sh | 6 ++--
builder/test-virt-builder.sh | 6 ++--
builder/test-virt-index-validate.sh | 6 ++--
builder/website/test-guest.sh | 6 ++--
builder/website/validate.sh | 6 ++--
cat/test-virt-cat.sh | 4 +--
cat/test-virt-filesystems.sh | 4 +--
cat/test-virt-log.sh | 2 +-
cat/test-virt-ls.sh | 8 ++---
customize/test-virt-customize.sh | 2 +-
df/test-virt-df-guests.sh | 2 +-
df/test-virt-df.sh | 2 +-
diff/test-virt-diff.sh | 8 ++---
edit/test-virt-edit.sh | 14 ++++----
fish/test-a.sh | 14 ++++----
fish/test-add-domain.sh | 14 ++++----
fish/test-add-uri.sh | 30 ++++++++--------
fish/test-alloc.sh | 4 +--
fish/test-copy.sh | 4 +--
fish/test-d.sh | 10 +++---
fish/test-edit.sh | 2 +-
fish/test-escapes.sh | 2 +-
fish/test-events.sh | 2 +-
fish/test-file-attrs.sh | 2 +-
fish/test-find0.sh | 2 +-
fish/test-glob.sh | 2 +-
fish/test-inspect.sh | 2 +-
fish/test-invalid-params.sh | 6 ++--
fish/test-mount-local.sh | 2 +-
fish/test-prep.sh | 2 +-
fish/test-read-file.sh | 2 +-
fish/test-remote-events.sh | 10 +++---
fish/test-remote.sh | 16 ++++-----
fish/test-reopen.sh | 2 +-
fish/test-run.sh | 2 +-
fish/test-stringlist.sh | 10 +++---
fish/test-tilde.sh | 12 +++----
fish/test-upload-to-dir.sh | 2 +-
format/test-virt-format.sh | 6 ++--
fuse/test-fuse-umount-race.sh | 6 ++--
fuse/test-fuse.sh | 13 +++----
inspector/test-virt-inspector.sh | 4 +--
make-fs/test-virt-make-fs.sh | 4 +--
p2v/test-virt-p2v.sh | 4 +--
rescue/test-virt-rescue-suggest.sh | 2 +-
resize/test-virt-resize.sh | 14 ++++----
sparsify/test-virt-sparsify-in-place.sh | 6 ++--
sparsify/test-virt-sparsify.sh | 6 ++--
sysprep/test-virt-sysprep-passwords.sh | 6 ++--
sysprep/test-virt-sysprep-script.sh | 8 ++---
sysprep/test-virt-sysprep.sh | 6 ++--
tests/9p/test-9p.sh | 4 +--
tests/btrfs/test-btrfs-devices.sh | 6 ++--
tests/create/test-disk-create.sh | 4 +--
tests/disks/test-qemu-drive-libvirt.sh | 3 +-
tests/disks/test-qemu-drive.sh | 20 +++++------
tests/guests/guest-aux/make-debian-img.sh | 2 +-
tests/guests/guest-aux/make-ubuntu-img.sh | 2 +-
tests/guests/guest-aux/make-windows-img.sh | 4 +--
tests/luks/test-luks-list.sh | 4 +--
tests/luks/test-luks.sh | 4 +--
tests/lvm/test-lvm-filtering.sh | 2 +-
tests/md/test-inspect-fstab-md.sh | 8 ++---
tests/md/test-inspect-fstab.sh | 17 +++++----
tests/md/test-list-filesystems.sh | 2 +-
tests/md/test-list-md-devices.sh | 4 +--
tests/md/test-mdadm.sh | 40 +++++++++++-----------
tests/mountable/test-mountable-inspect.sh | 11 +++---
tests/network/test-network.sh | 4 +--
tests/ntfsclone/test-ntfsclone.sh | 8 ++---
tests/protocol/test-both-ends-cancel.sh | 2 +-
.../test-cancellation-download-librarycancels.sh | 2 +-
.../test-cancellation-upload-daemoncancels.sh | 2 +-
tests/protocol/test-qemudie-killsub.sh | 4 +--
tests/protocol/test-qemudie-midcommand.sh | 4 +--
tests/protocol/test-qemudie-synch.sh | 4 +--
tests/qemu/qemu-force-tcg.sh | 4 +--
tests/qemu/qemu-liveness.sh | 4 +--
tests/qemu/qemu-snapshot-isolation.sh | 12 +++----
tests/regressions/rhbz1001875.sh | 2 +-
tests/regressions/rhbz1044014.sh | 4 +--
tests/regressions/rhbz1054761.sh | 4 +--
tests/regressions/rhbz1091803.sh | 2 +-
tests/regressions/rhbz503169c13.sh | 2 +-
tests/regressions/rhbz557655.sh | 4 +--
tests/regressions/rhbz563450.sh | 2 +-
tests/regressions/rhbz563450b.sh | 2 +-
tests/regressions/rhbz576879.sh | 2 +-
tests/regressions/rhbz578407.sh | 14 ++++----
tests/regressions/rhbz580246.sh | 2 +-
tests/regressions/rhbz602997.sh | 6 ++--
tests/regressions/rhbz690819.sh | 6 ++--
tests/regressions/rhbz727178.sh | 9 +++--
tests/regressions/rhbz789960.sh | 2 +-
tests/regressions/rhbz811649.sh | 4 +--
tests/regressions/rhbz895904.sh | 2 +-
tests/regressions/rhbz909624.sh | 2 +-
tests/regressions/rhbz957772.sh | 2 +-
tests/regressions/rhbz975797.sh | 10 +++---
tests/relative-paths/test-relative-paths.sh | 4 +--
tests/rsync/test-rsync.sh | 8 ++---
v2v/test-v2v-i-disk.sh | 4 +--
v2v/test-v2v-i-ova.sh | 4 +--
v2v/test-v2v-machine-readable.sh | 2 +-
v2v/test-v2v-networks-and-bridges.sh | 4 +--
v2v/test-v2v-no-copy.sh | 6 ++--
v2v/test-v2v-o-glance.sh | 4 +--
v2v/test-v2v-o-libvirt.sh | 4 +--
v2v/test-v2v-o-null.sh | 4 +--
v2v/test-v2v-o-rhev.sh | 4 +--
v2v/test-v2v-o-vdsm-options.sh | 4 +--
v2v/test-v2v-of-option.sh | 6 ++--
v2v/test-v2v-on-option.sh | 4 +--
v2v/test-v2v-print-source.sh | 2 +-
v2v/test-v2v-real-conversions.sh | 2 +-
v2v/test-v2v-windows-conversion.sh | 6 ++--
119 files changed, 323 insertions(+), 346 deletions(-)
diff --git a/align/test-virt-alignment-scan-guests.sh
b/align/test-virt-alignment-scan-guests.sh
index 3647c29..99e2585 100755
--- a/align/test-virt-alignment-scan-guests.sh
+++ b/align/test-virt-alignment-scan-guests.sh
@@ -26,7 +26,7 @@ fi
guestsdir="$(cd ../tests/guests && pwd)"
libvirt_uri="test://$guestsdir/guests-all-good.xml"
-$VG ./virt-alignment-scan -c "$libvirt_uri"
+$VG virt-alignment-scan -c "$libvirt_uri"
r=$?
# 0, 2 and 3 are reasonable non-error exit codes. Others are errors.
diff --git a/align/test-virt-alignment-scan.sh
b/align/test-virt-alignment-scan.sh
index 2b1ec37..293a9ef 100755
--- a/align/test-virt-alignment-scan.sh
+++ b/align/test-virt-alignment-scan.sh
@@ -18,7 +18,7 @@
export LANG=C
-$VG ./virt-alignment-scan -a ../tests/guests/fedora.img
+$VG virt-alignment-scan -a ../tests/guests/fedora.img
r=$?
# 0, 2 and 3 are reasonable non-error exit codes. Others are errors.
diff --git a/builder/test-virt-builder-list.sh
b/builder/test-virt-builder-list.sh
index 76d7913..49daae7 100755
--- a/builder/test-virt-builder-list.sh
+++ b/builder/test-virt-builder-list.sh
@@ -26,7 +26,7 @@ abs_builddir=$(pwd)
export XDG_CONFIG_HOME export
XDG_CONFIG_DIRS="$abs_builddir/test-config"
-short_list=$($VG ./virt-builder --no-check-signature --no-cache --list)
+short_list=$($VG virt-builder --no-check-signature --no-cache --list)
if [ "$short_list" != "phony-debian x86_64 Phony
Debian
phony-fedora x86_64 Phony Fedora
@@ -40,7 +40,7 @@ phony-windows x86_64 Phony Windows" ];
then
exit 1
fi
-long_list=$(./virt-builder --no-check-signature --no-cache --list --long)
+long_list=$(virt-builder --no-check-signature --no-cache --list --long)
if [ "$long_list" != "Source URI:
file://$abs_builddir/test-index
@@ -111,7 +111,7 @@ Phony Windows look-alike used for testing." ]; then
exit 1
fi
-json_list=$(./virt-builder --no-check-signature --no-cache --list --list-format
json)
+json_list=$(virt-builder --no-check-signature --no-cache --list --list-format
json)
if [ "$json_list" != "{
\"version\": 1,
diff --git a/builder/test-virt-builder-planner.sh
b/builder/test-virt-builder-planner.sh
index 6b839bb..f974c27 100755
--- a/builder/test-virt-builder-planner.sh
+++ b/builder/test-virt-builder-planner.sh
@@ -29,7 +29,7 @@ if [ ! -f fedora.xz -o ! -f fedora.qcow2 -o ! -f
fedora.qcow2.xz ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because backend is UML"
exit 77
fi
@@ -43,8 +43,8 @@ for input in phony-fedora phony-fedora-qcow2
phony-fedora-qcow2-uncompressed pho
if [ "$size" != "none" ]; then args="$args
--size $size"; fi
if [ "$format" != "none" ]; then
args="$args --format $format"; fi
- echo $VG ./virt-builder $input $args
- $VG ./virt-builder $input $args
+ echo $VG virt-builder $input $args
+ $VG virt-builder $input $args
done
done
done
diff --git a/builder/test-virt-builder.sh b/builder/test-virt-builder.sh
index f927a96..f357d12 100755
--- a/builder/test-virt-builder.sh
+++ b/builder/test-virt-builder.sh
@@ -37,7 +37,7 @@ fi
output=phony-fedora.img
format=qcow2
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
format=raw
# XXX We specifically want virt-builder to work with the UML
@@ -55,7 +55,7 @@ rm -f $output
# Note we cannot test --install, --run since the phony Fedora doesn't
# have a real OS inside just some configuration files. Just about
# every other option is fair game.
-$VG ./virt-builder phony-fedora \
+$VG virt-builder phony-fedora \
-v --no-cache --no-check-signature $no_network \
-o $output --size 2G --format $format \
--arch x86_64 \
@@ -74,7 +74,7 @@ $VG ./virt-builder phony-fedora \
--firstboot-install "minicom,inkscape"
# Check that some modifications were made.
-$VG ../fish/guestfish --ro -i -a $output > test.out <<EOF
+$VG guestfish --ro -i -a $output > test.out <<EOF
# Uploaded files
is-file /etc/foo/bar/baz/Makefile
cat /etc/foo/bar/baz/foo
diff --git a/builder/test-virt-index-validate.sh
b/builder/test-virt-index-validate.sh
index 37e7339..c66929d 100755
--- a/builder/test-virt-index-validate.sh
+++ b/builder/test-virt-index-validate.sh
@@ -19,6 +19,6 @@
export LANG=C
set -e
-! $VG ./virt-index-validate test-virt-index-validate-bad-1
-$VG ./virt-index-validate test-virt-index-validate-good-1
-$VG ./virt-index-validate test-virt-index-validate-good-2
+! $VG virt-index-validate test-virt-index-validate-bad-1
+$VG virt-index-validate test-virt-index-validate-good-1
+$VG virt-index-validate test-virt-index-validate-good-2
diff --git a/builder/website/test-guest.sh b/builder/website/test-guest.sh
index 9372425..7854aeb 100755
--- a/builder/website/test-guest.sh
+++ b/builder/website/test-guest.sh
@@ -27,14 +27,14 @@
export LANG=C
set -e
-if [ ! -x builder/virt-builder ]; then
+if ! virt-builder --help >/dev/null 2>&1 || [ ! -f
builder/virt-builder.pod ]; then
echo "$0: running the test from the wrong directory, or libguestfs has
not been built"
exit 1
fi
if [ $# -lt 1 ]; then
echo "$0: missing os-version"
- echo "try: ./run builder/virt-builder -l"
+ echo "try: ./run virt-builder -l"
exit 1
fi
@@ -42,7 +42,7 @@ osversion="$1"
shift
output="$osversion.img"
-builder/virt-builder "$osversion" \
+virt-builder "$osversion" \
--no-cache -v \
--size 10G \
--root-password password:123456 \
diff --git a/builder/website/validate.sh b/builder/website/validate.sh
index f2e24cf..2a7ba32 100755
--- a/builder/website/validate.sh
+++ b/builder/website/validate.sh
@@ -24,8 +24,8 @@ fn=test-filename-for-index-validate
rm -f $fn
touch $fn
-$VG ../virt-index-validate $srcdir/index
-$VG ../virt-index-validate $srcdir/index.asc
-$VG ../virt-index-validate $fn
+$VG virt-index-validate $srcdir/index
+$VG virt-index-validate $srcdir/index.asc
+$VG virt-index-validate $fn
rm $fn
diff --git a/cat/test-virt-cat.sh b/cat/test-virt-cat.sh
index 8c8e5d7..fbf09ea 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 ../tests/guests/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 ../tests/guests/fedora.img /etc/test2)" !=
"" ]; then
echo "$0: error: mismatch in file test2"
exit 1
fi
diff --git a/cat/test-virt-filesystems.sh b/cat/test-virt-filesystems.sh
index 8ed29e4..2999950 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 ../tests/guests/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 ../tests/guests/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 5f04c10..af6bb95 100755
--- a/cat/test-virt-log.sh
+++ b/cat/test-virt-log.sh
@@ -21,5 +21,5 @@ set -e
# Read out the log files from the image using virt-log.
for f in ../tests/guests/{fedora,debian,ubuntu}.img; do
- if [ -s "$f" ]; then $VG ./virt-log -a "$f"; fi
+ if [ -s "$f" ]; then $VG virt-log -a "$f"; fi
done
diff --git a/cat/test-virt-ls.sh b/cat/test-virt-ls.sh
index 55fc114..5bb4b8a 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 ../tests/guests/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 ../tests/guests/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 ../tests/guests/fedora.img /
+$VG virt-ls -R ../tests/guests/fedora.img /
diff --git a/customize/test-virt-customize.sh b/customize/test-virt-customize.sh
index 623e6a2..979e6f0 100755
--- a/customize/test-virt-customize.sh
+++ b/customize/test-virt-customize.sh
@@ -26,7 +26,7 @@ for f in ../tests/guests/{debian,fedora,ubuntu}.img; do
# Ignore zero-sized windows.img if ntfs-3g is not installed.
if [ -s "$f" ]; then
# Add --no-network so UML works.
- $VG ./virt-customize -n -a $f \
+ $VG virt-customize -n -a $f \
--no-network \
--write /etc/motd:HELLO \
--chmod 0600:/etc/motd \
diff --git a/df/test-virt-df-guests.sh b/df/test-virt-df-guests.sh
index 126b880..b485cd7 100755
--- a/df/test-virt-df-guests.sh
+++ b/df/test-virt-df-guests.sh
@@ -29,4 +29,4 @@ fi
guestsdir="$(cd ../tests/guests && pwd)"
libvirt_uri="test://$guestsdir/guests.xml"
-$VG ./virt-df -c "$libvirt_uri"
+$VG virt-df -c "$libvirt_uri"
diff --git a/df/test-virt-df.sh b/df/test-virt-df.sh
index 6be90f8..6a69cea 100755
--- a/df/test-virt-df.sh
+++ b/df/test-virt-df.sh
@@ -20,7 +20,7 @@ export LANG=C
set -e
# Run virt-df.
-output=$($VG ./virt-df ../tests/guests/fedora.img)
+output=$($VG virt-df ../tests/guests/fedora.img)
# Check title is the first line.
if [[ ! $output =~ ^Filesystem.* ]]; then
diff --git a/diff/test-virt-diff.sh b/diff/test-virt-diff.sh
index 3a3a1aa..fa13411 100755
--- a/diff/test-virt-diff.sh
+++ b/diff/test-virt-diff.sh
@@ -24,7 +24,7 @@ if [ ! -f ../tests/guests/fedora.img ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because backend is UML"
exit 77
fi
@@ -32,16 +32,16 @@ fi
rm -f fedora.qcow2
# Modify a copy of the image.
-../fish/guestfish -- \
+guestfish -- \
disk-create fedora.qcow2 qcow2 -1 \
backingfile:../tests/guests/fedora.img backingformat:raw
-../fish/guestfish -a fedora.qcow2 -i <<EOF
+guestfish -a fedora.qcow2 -i <<EOF
touch /diff
write-append /etc/motd "Testing virt-diff\n"
EOF
-output="$($VG ./virt-diff -a ../tests/guests/fedora.img -A
fedora.qcow2)"
+output="$($VG virt-diff -a ../tests/guests/fedora.img -A
fedora.qcow2)"
expected="\
+ - 0644 0 /diff
diff --git a/edit/test-virt-edit.sh b/edit/test-virt-edit.sh
index 99c2e7c..33c0603 100755
--- a/edit/test-virt-edit.sh
+++ b/edit/test-virt-edit.sh
@@ -19,7 +19,7 @@
export LANG=C
set -e
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: skipping test because uml backend does not support
qcow2"
exit 77
fi
@@ -28,15 +28,15 @@ rm -f test.qcow2
# Make a copy of the Fedora image so we can write to it then
# discard it.
-../fish/guestfish -- \
+guestfish -- \
disk-create test.qcow2 qcow2 -1 \
backingfile:../tests/guests/fedora.img backingformat:raw
# Edit interactively. We have to simulate this by setting $EDITOR.
# The command will be: echo newline >> /tmp/file
export EDITOR='echo newline >>'
-./virt-edit -a test.qcow2 /etc/test3
-if [ "$(../cat/virt-cat -a test.qcow2 /etc/test3)" != "a
+virt-edit -a test.qcow2 /etc/test3
+if [ "$(virt-cat -a test.qcow2 /etc/test3)" != "a
b
c
d
@@ -50,8 +50,8 @@ unset EDITOR
# Edit non-interactively, only if we have 'perl' binary.
if perl --version >/dev/null 2>&1; then
- ./virt-edit -a test.qcow2 /etc/test3 -e 's/^[a-f]/$lineno/'
- if [ "$(../cat/virt-cat -a test.qcow2 /etc/test3)" != "1
+ virt-edit -a test.qcow2 /etc/test3 -e 's/^[a-f]/$lineno/'
+ if [ "$(virt-cat -a test.qcow2 /etc/test3)" != "1
2
3
4
@@ -65,7 +65,7 @@ fi
# Verify the mode of /etc/test3 is still 0600 and the UID:GID is 10:11.
# See tests/guests/guest-aux/make-fedora-img.pl and RHBZ#788641.
-if [ "$(../fish/guestfish -i -a test.qcow2 --ro lstat /etc/test3 | grep -E
'^(mode|uid|gid):' | sort)" != "gid: 11
+if [ "$(guestfish -i -a test.qcow2 --ro lstat /etc/test3 | grep -E
'^(mode|uid|gid):' | sort)" != "gid: 11
mode: 33152
uid: 10" ]; then
echo "$0: error: editing /etc/test3 did not preserve permissions or
ownership"
diff --git a/fish/test-a.sh b/fish/test-a.sh
index 44188ed..0fcc7d1 100755
--- a/fish/test-a.sh
+++ b/fish/test-a.sh
@@ -23,28 +23,28 @@ set -e
rm -f test-a.out
rm -f test-a.img
-$VG ./guestfish sparse test-a.img 100M
+$VG guestfish sparse test-a.img 100M
-$VG ./guestfish -x -a test-a.img </dev/null >test-a.out 2>&1
+$VG guestfish -x -a test-a.img </dev/null >test-a.out 2>&1
! grep -sq 'add_drive.*format' test-a.out
rm test-a.img
-$VG ./guestfish disk-create test-a.img qcow2 100M
+$VG guestfish disk-create test-a.img qcow2 100M
-$VG ./guestfish -x --format=qcow2 -a test-a.img </dev/null >test-a.out
2>&1
+$VG guestfish -x --format=qcow2 -a test-a.img </dev/null >test-a.out
2>&1
grep -sq 'add_drive.*format:qcow2' test-a.out
-$VG ./guestfish -x --ro --format=qcow2 -a test-a.img </dev/null
>test-a.out 2>&1
+$VG guestfish -x --ro --format=qcow2 -a test-a.img </dev/null >test-a.out
2>&1
grep -sq 'add_drive.*readonly:true.*format:qcow2' test-a.out
-$VG ./guestfish -x --format -a test-a.img </dev/null >test-a.out
2>&1
+$VG guestfish -x --format -a test-a.img </dev/null >test-a.out
2>&1
! grep -sq 'add_drive.*format' test-a.out
-$VG ./guestfish -x -a test-a.img --format=raw -a /dev/null </dev/null
>test-a.out 2>&1
+$VG guestfish -x -a test-a.img --format=raw -a /dev/null </dev/null
>test-a.out 2>&1
! grep -sq 'add_drive.*test-a.img.*format' test-a.out
diff --git a/fish/test-add-domain.sh b/fish/test-add-domain.sh
index a6b0e10..608d2de 100755
--- a/fish/test-add-domain.sh
+++ b/fish/test-add-domain.sh
@@ -25,10 +25,10 @@ rm -f test-add-domain.xml test-add-domain.out
cwd="$(pwd)"
-$VG ./guestfish sparse test-add-domain-1.img 1M
-$VG ./guestfish sparse test-add-domain-2.img 1M
-$VG ./guestfish disk-create test-add-domain-3.img qcow2 1M
-$VG ./guestfish sparse test-add-domain-4.img 1M
+$VG guestfish sparse test-add-domain-1.img 1M
+$VG guestfish sparse test-add-domain-2.img 1M
+$VG guestfish disk-create test-add-domain-3.img qcow2 1M
+$VG guestfish sparse test-add-domain-4.img 1M
# Libvirt test XML, see libvirt.git/examples/xml/test/testnode.xml
cat > test-add-domain.xml <<EOF
@@ -66,7 +66,7 @@ cat > test-add-domain.xml <<EOF
</node>
EOF
-$VG ./guestfish >test-add-domain.out <<EOF
+$VG guestfish >test-add-domain.out <<EOF
domain guest libvirturi:test://$cwd/test-add-domain.xml readonly:true
debug-drives
EOF
@@ -76,7 +76,7 @@ grep -sq "test-add-domain-2.img readonly format=raw"
test-add-domain.out
grep -sq "test-add-domain-3.img readonly format=qcow2"
test-add-domain.out
# Test readonlydisk = "ignore".
-$VG ./guestfish >test-add-domain.out <<EOF
+$VG guestfish >test-add-domain.out <<EOF
-domain guest libvirturi:test://$cwd/test-add-domain.xml readonly:true
readonlydisk:ignore
debug-drives
EOF
@@ -88,7 +88,7 @@ grep -sq "test-add-domain-3.img" test-add-domain.out
# Test atomicity.
rm test-add-domain-3.img
-$VG ./guestfish >test-add-domain.out <<EOF
+$VG guestfish >test-add-domain.out <<EOF
-domain guest libvirturi:test://$cwd/test-add-domain.xml readonly:true
debug-drives
EOF
diff --git a/fish/test-add-uri.sh b/fish/test-add-uri.sh
index 1a5b067..2f83754 100755
--- a/fish/test-add-uri.sh
+++ b/fish/test-add-uri.sh
@@ -24,7 +24,7 @@ set -x
rm -f test-add-uri.out
rm -f test-add-uri.img
-$VG ./guestfish sparse test-add-uri.img 10M
+$VG guestfish sparse test-add-uri.img 10M
function fail ()
{
@@ -34,51 +34,51 @@ function fail ()
}
# file:// URI should be handled exactly like a regular file.
-$VG ./guestfish -x -a file://$(pwd)/test-add-uri.img </dev/null
>test-add-uri.out 2>&1
+$VG guestfish -x -a file://$(pwd)/test-add-uri.img </dev/null
>test-add-uri.out 2>&1
grep -sq 'add_drive ".*/test-add-uri.img"' test-add-uri.out
|| fail
# curl
-$VG ./guestfish -x -a ftp://user@example.com/disk.img </dev/null
>test-add-uri.out 2>&1
+$VG guestfish -x -a ftp://user@example.com/disk.img </dev/null
>test-add-uri.out 2>&1
grep -sq 'add_drive "/disk.img" "protocol:ftp"
"server:tcp:example.com" "username:user"'
test-add-uri.out || fail
# gluster
-$VG ./guestfish -x -a gluster://example.com/disk </dev/null
>test-add-uri.out 2>&1
+$VG guestfish -x -a gluster://example.com/disk </dev/null
>test-add-uri.out 2>&1
grep -sq 'add_drive "disk" "protocol:gluster"
"server:tcp:example.com"' test-add-uri.out || fail
# NBD
-$VG ./guestfish -x -a nbd://example.com </dev/null >test-add-uri.out
2>&1
+$VG guestfish -x -a nbd://example.com </dev/null >test-add-uri.out
2>&1
grep -sq 'add_drive "" "protocol:nbd"
"server:tcp:example.com"' test-add-uri.out || fail
-$VG ./guestfish -x -a nbd://example.com:3000 </dev/null >test-add-uri.out
2>&1
+$VG guestfish -x -a nbd://example.com:3000 </dev/null >test-add-uri.out
2>&1
grep -sq 'add_drive "" "protocol:nbd"
"server:tcp:example.com:3000"' test-add-uri.out || fail
-$VG ./guestfish -x -a 'nbd://?socket=/sk' </dev/null
>test-add-uri.out 2>&1
+$VG guestfish -x -a 'nbd://?socket=/sk' </dev/null
>test-add-uri.out 2>&1
grep -sq 'add_drive "" "protocol:nbd"
"server:unix:/sk"' test-add-uri.out || fail
-$VG ./guestfish -x -a 'nbd:///export?socket=/sk' </dev/null
>test-add-uri.out 2>&1
+$VG guestfish -x -a 'nbd:///export?socket=/sk' </dev/null
>test-add-uri.out 2>&1
grep -sq 'add_drive "/export" "protocol:nbd"
"server:unix:/sk"' test-add-uri.out || fail
# rbd
-$VG ./guestfish -x -a rbd://example.com:6789/pool/disk </dev/null
>test-add-uri.out 2>&1
+$VG guestfish -x -a rbd://example.com:6789/pool/disk </dev/null
>test-add-uri.out 2>&1
grep -sq 'add_drive "pool/disk" "protocol:rbd"
"server:tcp:example.com:6789"' test-add-uri.out || fail
-$VG ./guestfish -x -a rbd:///pool/disk </dev/null >test-add-uri.out
2>&1
+$VG guestfish -x -a rbd:///pool/disk </dev/null >test-add-uri.out
2>&1
grep -sq 'add_drive "pool/disk" "protocol:rbd"'
test-add-uri.out || fail
# sheepdog
-$VG ./guestfish -x -a sheepdog:///volume/image </dev/null
>test-add-uri.out 2>&1
+$VG guestfish -x -a sheepdog:///volume/image </dev/null >test-add-uri.out
2>&1
grep -sq 'add_drive "volume/image"
"protocol:sheepdog"' test-add-uri.out || fail
-$VG ./guestfish -x -a sheepdog://example.com:3000/volume/image </dev/null
>test-add-uri.out 2>&1
+$VG guestfish -x -a sheepdog://example.com:3000/volume/image </dev/null
>test-add-uri.out 2>&1
grep -sq 'add_drive "volume/image" "protocol:sheepdog"
"server:tcp:example.com:3000"' test-add-uri.out || fail
# ssh
-$VG ./guestfish -x -a ssh://example.com/disk.img </dev/null
>test-add-uri.out 2>&1
+$VG guestfish -x -a ssh://example.com/disk.img </dev/null
>test-add-uri.out 2>&1
grep -sq 'add_drive "/disk.img" "protocol:ssh"
"server:tcp:example.com"' test-add-uri.out || fail
-$VG ./guestfish -x -a ssh://user@example.com/disk.img </dev/null
>test-add-uri.out 2>&1
+$VG guestfish -x -a ssh://user@example.com/disk.img </dev/null
>test-add-uri.out 2>&1
grep -sq 'add_drive "/disk.img" "protocol:ssh"
"server:tcp:example.com" "username:user"'
test-add-uri.out || fail
-$VG ./guestfish -x -a ssh://user@example.com:2000/disk.img </dev/null
>test-add-uri.out 2>&1
+$VG guestfish -x -a ssh://user@example.com:2000/disk.img </dev/null
>test-add-uri.out 2>&1
grep -sq 'add_drive "/disk.img" "protocol:ssh"
"server:tcp:example.com:2000" "username:user"'
test-add-uri.out || fail
rm test-add-uri.out
diff --git a/fish/test-alloc.sh b/fish/test-alloc.sh
index 3f46f8b..98f8f4e 100755
--- a/fish/test-alloc.sh
+++ b/fish/test-alloc.sh
@@ -22,7 +22,7 @@ set -e
rm -f test-alloc.img
-$VG ./guestfish alloc test-alloc.img 200000
+$VG guestfish alloc test-alloc.img 200000
if [ "$(stat -c '%s' test-alloc.img)" -ne 200000 ]; then
echo "$0: alloc command failed to create file of the correct
size"
exit 1
@@ -33,7 +33,7 @@ if [ "$(stat -c '%b' test-alloc.img)" -eq 0
]; then
exit 1
fi
-$VG ./guestfish sparse test-alloc.img 100000
+$VG guestfish sparse test-alloc.img 100000
if [ "$(stat -c '%s' test-alloc.img)" -ne 100000 ]; then
echo "$0: sparse command failed to create file of the correct
size"
exit 1
diff --git a/fish/test-copy.sh b/fish/test-copy.sh
index ecf5a4f..f72de9b 100755
--- a/fish/test-copy.sh
+++ b/fish/test-copy.sh
@@ -36,7 +36,7 @@ cp $srcdir/../tests/data/known* test-copy-original
cp -P ../tests/data/abssymlink* test-copy-original
output=$(
-$VG ./guestfish -N test-copy.img=fs -m /dev/sda1 <<EOF
+$VG guestfish -N test-copy.img=fs -m /dev/sda1 <<EOF
mkdir /data
# This creates a directory /data/data/
copy-in test-copy-original /data
@@ -63,7 +63,7 @@ fi
mkdir test-copy-copy
-$VG ./guestfish --ro -a test-copy.img -m /dev/sda1 <<EOF
+$VG guestfish --ro -a test-copy.img -m /dev/sda1 <<EOF
copy-out /data/test-copy-original test-copy-copy
EOF
diff --git a/fish/test-d.sh b/fish/test-d.sh
index 1e16bdc..4c41ce0 100755
--- a/fish/test-d.sh
+++ b/fish/test-d.sh
@@ -25,10 +25,10 @@ rm -f test-d.xml test-d.out
cwd="$(pwd)"
-$VG ./guestfish sparse test-d-1.img 1M
-$VG ./guestfish sparse test-d-2.img 1M
-$VG ./guestfish disk-create test-d-3.img qcow2 1M
-$VG ./guestfish sparse test-d-4.img 1M
+$VG guestfish sparse test-d-1.img 1M
+$VG guestfish sparse test-d-2.img 1M
+$VG guestfish disk-create test-d-3.img qcow2 1M
+$VG guestfish sparse test-d-4.img 1M
# Libvirt test XML, see libvirt.git/examples/xml/test/testnode.xml
cat > test-d.xml <<EOF
@@ -66,7 +66,7 @@ cat > test-d.xml <<EOF
</node>
EOF
-$VG ./guestfish -c "test://$cwd/test-d.xml" --ro -d guest \
+$VG guestfish -c "test://$cwd/test-d.xml" --ro -d guest \
debug-drives </dev/null >test-d.out
grep -sq "test-d-1.img readonly" test-d.out
! grep -sq "test-d-1.img.*format" test-d.out
diff --git a/fish/test-edit.sh b/fish/test-edit.sh
index 9d7ab9d..9242617 100755
--- a/fish/test-edit.sh
+++ b/fish/test-edit.sh
@@ -34,7 +34,7 @@ rm -f test-edit.img
export EDITOR="echo second line of text >>"
output=$(
-$VG ./guestfish -N test-edit.img=fs -m /dev/sda1 <<EOF
+$VG guestfish -N test-edit.img=fs -m /dev/sda1 <<EOF
write /file.txt "this is a test\n"
chmod 0600 /file.txt
chown 10 11 /file.txt
diff --git a/fish/test-escapes.sh b/fish/test-escapes.sh
index 9a9fe7c..18c6e03 100755
--- a/fish/test-escapes.sh
+++ b/fish/test-escapes.sh
@@ -22,7 +22,7 @@ set -e
rm -f test.output test.error test.error.old
-$VG ./guestfish <<'EOF' 2>test.error | od -b > test.output
+$VG guestfish <<'EOF' 2>test.error | od -b > test.output
echo ""
echo " "
echo " "
diff --git a/fish/test-events.sh b/fish/test-events.sh
index 18e503f..3f65164 100755
--- a/fish/test-events.sh
+++ b/fish/test-events.sh
@@ -22,7 +22,7 @@ set -e
rm -f test.out
-$VG ./guestfish -a /dev/null <<'EOF' | grep -v get_verbose | grep
-v get_trace | grep -v 'library .*0x' | grep -v 'library
command' | grep -v 'get_path' > test.out
+$VG guestfish -a /dev/null <<'EOF' | grep -v get_verbose | grep
-v get_trace | grep -v 'library .*0x' | grep -v 'library
command' | grep -v 'get_path' > test.out
trace true
event ev1 * "echo $EVENT $@"
diff --git a/fish/test-file-attrs.sh b/fish/test-file-attrs.sh
index 78bd817..55d602c 100755
--- a/fish/test-file-attrs.sh
+++ b/fish/test-file-attrs.sh
@@ -23,7 +23,7 @@ export LANG=C
rm -f test.out
-$VG ./guestfish > test.out <<EOF
+$VG guestfish > test.out <<EOF
scratch 50MB
run
part-disk /dev/sda mbr
diff --git a/fish/test-find0.sh b/fish/test-find0.sh
index 9ca6a31..07daab3 100755
--- a/fish/test-find0.sh
+++ b/fish/test-find0.sh
@@ -22,7 +22,7 @@ set -e
rm -f test.out
-$VG ./guestfish <<'EOF'
+$VG guestfish <<'EOF'
add-ro ../tests/data/test.iso
run
mount-ro /dev/sda /
diff --git a/fish/test-glob.sh b/fish/test-glob.sh
index 0f41893..c520319 100755
--- a/fish/test-glob.sh
+++ b/fish/test-glob.sh
@@ -22,7 +22,7 @@ set -e
rm -f test-glob.img test-glob.out
-$VG ./guestfish -N test-glob.img=disk:1G > test-glob.out <<EOF
+$VG guestfish -N test-glob.img=disk:1G > test-glob.out <<EOF
pvcreate /dev/sda
# Because glob doesn't do device name translation, we cannot test
diff --git a/fish/test-inspect.sh b/fish/test-inspect.sh
index 8f8abe6..126740d 100755
--- a/fish/test-inspect.sh
+++ b/fish/test-inspect.sh
@@ -18,4 +18,4 @@
set -e
-$VG ./guestfish -a ../tests/guests/fedora.img -i exit
+$VG guestfish -a ../tests/guests/fedora.img -i exit
diff --git a/fish/test-invalid-params.sh b/fish/test-invalid-params.sh
index 60da094..7d02c65 100755
--- a/fish/test-invalid-params.sh
+++ b/fish/test-invalid-params.sh
@@ -23,7 +23,7 @@ set -e
# Memory size
output=$(
-$VG ./guestfish <<EOF
+$VG guestfish <<EOF
set-memsize 400
-set-memsize 0
-set-memsize 100
@@ -42,7 +42,7 @@ fi
# smp
output=$(
-$VG ./guestfish <<EOF
+$VG guestfish <<EOF
set-smp 2
-set-smp 0
-set-smp 300
@@ -58,7 +58,7 @@ fi
# Backend
output=$(
-$VG ./guestfish <<EOF
+$VG guestfish <<EOF
set-backend direct
-set-backend backend-which-does-not-exist
get-backend
diff --git a/fish/test-mount-local.sh b/fish/test-mount-local.sh
index de308d3..845f707 100755
--- a/fish/test-mount-local.sh
+++ b/fish/test-mount-local.sh
@@ -61,7 +61,7 @@ rm -rf test-mount-local-mp
mkdir test-mount-local-mp
-if ! ./guestfish -N test-mount-local.img=fs -m /dev/sda1
2>test-mount-local.errors <<EOF; then
+if ! guestfish -N test-mount-local.img=fs -m /dev/sda1
2>test-mount-local.errors <<EOF; then
mount-local test-mount-local-mp
! $0 --run-test &
mount-local-run
diff --git a/fish/test-prep.sh b/fish/test-prep.sh
index e52fca8..e2b972a 100755
--- a/fish/test-prep.sh
+++ b/fish/test-prep.sh
@@ -22,7 +22,7 @@ rm -f prep*.img
# It would be nice if we could keep this automatically in sync
# with the prepared disk types. XXX
-$VG ./guestfish \
+$VG guestfish \
-N prep1.img=disk \
-N prep2.img=part \
-N prep3.img=fs \
diff --git a/fish/test-read-file.sh b/fish/test-read-file.sh
index f1e28f1..8f35efb 100755
--- a/fish/test-read-file.sh
+++ b/fish/test-read-file.sh
@@ -22,7 +22,7 @@ set -e
rm -f test.out
-$VG ./guestfish <<'EOF' > test.out
+$VG guestfish <<'EOF' > test.out
add-ro ../tests/data/test.iso
run
mount-ro /dev/sda /
diff --git a/fish/test-remote-events.sh b/fish/test-remote-events.sh
index a3a13b1..c05f072 100755
--- a/fish/test-remote-events.sh
+++ b/fish/test-remote-events.sh
@@ -20,20 +20,20 @@
set -e
-eval "$(./guestfish --listen)"
+eval "$(guestfish --listen)"
-$VG ./guestfish --remote event close_event close "echo closed"
+$VG guestfish --remote event close_event close "echo closed"
-output="$($VG ./guestfish --remote list-events)"
+output="$($VG guestfish --remote list-events)"
if [ "$output" != '"close_event" (0): close: echo
closed' ]; then
echo "$0: list-events failed:"
echo "$output"
- ./guestfish --remote exit
+ guestfish --remote exit
exit 1
fi
# Test close event (RHBZ#802389).
-output="$($VG ./guestfish --remote quit)"
+output="$($VG guestfish --remote quit)"
if [ "$output" != "closed" ]; then
echo "$0: close event failed:"
diff --git a/fish/test-remote.sh b/fish/test-remote.sh
index 442d927..28df682 100755
--- a/fish/test-remote.sh
+++ b/fish/test-remote.sh
@@ -22,24 +22,24 @@ set -e
rm -f test-remote.img
-eval `./guestfish --listen`
+eval `guestfish --listen`
-$VG ./guestfish --remote alloc test-remote.img 10M
-$VG ./guestfish --remote run
-$VG ./guestfish --remote part-disk /dev/sda mbr
-$VG ./guestfish --remote mkfs ext2 /dev/sda1
-$VG ./guestfish --remote mount /dev/sda1 /
+$VG guestfish --remote alloc test-remote.img 10M
+$VG guestfish --remote run
+$VG guestfish --remote part-disk /dev/sda mbr
+$VG guestfish --remote mkfs ext2 /dev/sda1
+$VG guestfish --remote mount /dev/sda1 /
# Failure of the above commands will cause the guestfish listener to exit.
# Incorrect return from echo_daemon will not, so need to ensure the listener
# exits in any case, while still reporting an error.
error=0
-echo=$($VG ./guestfish --remote echo_daemon "This is a test")
+echo=$($VG guestfish --remote echo_daemon "This is a test")
if [ "$echo" != "This is a test" ]; then
error=1;
fi
-$VG ./guestfish --remote exit
+$VG guestfish --remote exit
rm test-remote.img
diff --git a/fish/test-reopen.sh b/fish/test-reopen.sh
index a6b5289..d8966d4 100755
--- a/fish/test-reopen.sh
+++ b/fish/test-reopen.sh
@@ -23,7 +23,7 @@ set -e
rm -f test-reopen.img
-$VG ./guestfish <<'EOF'
+$VG guestfish <<'EOF'
reopen
reopen
reopen
diff --git a/fish/test-run.sh b/fish/test-run.sh
index ec6e0d3..a66ad9c 100755
--- a/fish/test-run.sh
+++ b/fish/test-run.sh
@@ -18,4 +18,4 @@
set -e
-$VG ./guestfish -a ../tests/guests/fedora.img run
+$VG guestfish -a ../tests/guests/fedora.img run
diff --git a/fish/test-stringlist.sh b/fish/test-stringlist.sh
index 416c092..ab23cb9 100755
--- a/fish/test-stringlist.sh
+++ b/fish/test-stringlist.sh
@@ -22,7 +22,7 @@ set -e
rm -f test-stringlist.img
-eval `./guestfish --listen`
+eval `guestfish --listen`
error=0
@@ -32,15 +32,15 @@ function check_echo {
local echo
- echo=$($VG ./guestfish --remote echo_daemon "$test")
+ echo=$($VG guestfish --remote echo_daemon "$test")
if [ "$echo" != "$expected" ]; then
echo "Expected \"$expected\", got
\"$echo\""
error=1
fi
}
-$VG ./guestfish --remote alloc test-stringlist.img 10M
-$VG ./guestfish --remote run
+$VG guestfish --remote alloc test-stringlist.img 10M
+$VG guestfish --remote run
check_echo "' '" " "
check_echo "\'" "'"
@@ -53,7 +53,7 @@ check_echo "'foo' 'bar'"
"foo bar"
check_echo "'foo' " "foo"
check_echo " 'foo'" "foo"
-$VG ./guestfish --remote exit
+$VG guestfish --remote exit
rm test-stringlist.img
diff --git a/fish/test-tilde.sh b/fish/test-tilde.sh
index a2bf1fa..ca4af73 100755
--- a/fish/test-tilde.sh
+++ b/fish/test-tilde.sh
@@ -27,12 +27,12 @@ set -e
HOME=$(pwd)
export HOME
-if [ `echo 'echo ~' | $VG ./guestfish` != "$HOME" ]; then
+if [ `echo 'echo ~' | $VG guestfish` != "$HOME" ]; then
echo "$0: failed: did not expand ~ correctly"
exit 1
fi
-if [ `echo 'echo ~/foo' | $VG ./guestfish` != "$HOME/foo" ];
then
+if [ `echo 'echo ~/foo' | $VG guestfish` != "$HOME/foo" ];
then
echo "$0: failed: did not expand ~/foo correctly"
exit 1
fi
@@ -41,12 +41,12 @@ fi
# should have a home directory.
root="$(echo ~root)"
-if [ `echo 'echo ~root' | $VG ./guestfish` != "$root" ]; then
+if [ `echo 'echo ~root' | $VG guestfish` != "$root" ]; then
echo "$0: failed: did not expand ~root correctly"
exit 1
fi
-if [ `echo 'echo ~root/foo' | $VG ./guestfish` != "$root/foo"
]; then
+if [ `echo 'echo ~root/foo' | $VG guestfish` != "$root/foo"
]; then
echo "$0: failed: did not expand ~root/foo correctly"
exit 1
fi
@@ -55,12 +55,12 @@ fi
unset HOME
home="$(echo ~)"
-if [ `echo 'echo ~' | $VG ./guestfish` != "$home" ]; then
+if [ `echo 'echo ~' | $VG guestfish` != "$home" ]; then
echo "$0: failed: did not expand ~ correctly when \$HOME unset"
exit 1
fi
-if [ `echo 'echo ~/foo' | $VG ./guestfish` != "$home/foo" ];
then
+if [ `echo 'echo ~/foo' | $VG guestfish` != "$home/foo" ];
then
echo "$0: failed: did not expand ~/foo correctly when \$HOME
unset"
exit 1
fi
diff --git a/fish/test-upload-to-dir.sh b/fish/test-upload-to-dir.sh
index 6e3f009..0bacd75 100755
--- a/fish/test-upload-to-dir.sh
+++ b/fish/test-upload-to-dir.sh
@@ -24,7 +24,7 @@ set -e
rm -f test-upload-to-dir.img test-upload-to-dir.out
-if $VG ./guestfish -N test-upload-to-dir.img=fs -m /dev/sda1 upload
../tests/data/test.iso / 2>test-upload-to-dir.out
+if $VG guestfish -N test-upload-to-dir.img=fs -m /dev/sda1 upload
../tests/data/test.iso / 2>test-upload-to-dir.out
then
echo "$0: expecting guestfish to return an error"
exit 1
diff --git a/format/test-virt-format.sh b/format/test-virt-format.sh
index 71cc802..2383c71 100755
--- a/format/test-virt-format.sh
+++ b/format/test-virt-format.sh
@@ -27,11 +27,11 @@ fi
rm -f test-virt-format.img
-$VG ../fish/guestfish -N test-virt-format.img=bootrootlv exit
+$VG guestfish -N test-virt-format.img=bootrootlv exit
-$VG ./virt-format --filesystem=ext3 -a test-virt-format.img
+$VG virt-format --filesystem=ext3 -a test-virt-format.img
-if [ "$($VG ../cat/virt-filesystems -a test-virt-format.img)" !=
"/dev/sda1" ]; then
+if [ "$($VG virt-filesystems -a test-virt-format.img)" !=
"/dev/sda1" ]; then
echo "$0: unexpected output after using virt-format"
exit 1
fi
diff --git a/fuse/test-fuse-umount-race.sh b/fuse/test-fuse-umount-race.sh
index 008e980..e789122 100755
--- a/fuse/test-fuse-umount-race.sh
+++ b/fuse/test-fuse-umount-race.sh
@@ -38,7 +38,7 @@ if [ ! -f ../tests/guests/fedora.img ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because uml backend does not support
qcow2"
exit 77
fi
@@ -47,7 +47,7 @@ rm -f test.qcow2 test-copy.qcow2 test.pid
rm -rf mp
# Make a copy of the Fedora image so we can write to it then discard it.
-../fish/guestfish -- \
+guestfish -- \
disk-create test.qcow2 qcow2 -1 \
backingfile:../tests/guests/fedora.img backingformat:raw
@@ -77,7 +77,7 @@ fi
# It should now be safe to copy and read the disk image.
cp test.qcow2 test-copy.qcow2
-if [ "$(../fish/guestfish -a test-copy.qcow2 --ro -i is-file
/test-umount)" != "true" ]; then
+if [ "$(guestfish -a test-copy.qcow2 --ro -i is-file /test-umount)"
!= "true" ]; then
echo "$0: test failed"
exit 1
fi
diff --git a/fuse/test-fuse.sh b/fuse/test-fuse.sh
index f46c29c..13d1bd3 100755
--- a/fuse/test-fuse.sh
+++ b/fuse/test-fuse.sh
@@ -46,14 +46,11 @@ nr_stages=$(grep "^stage " $0 | wc -l)
# and move to that directory for the initial phase of the script.
top_builddir=$(cd "$top_builddir" > /dev/null; pwd)
-# Paths to the other programs and files. NB: Must be absolute paths.
-guestfish="$top_builddir/fish/guestfish"
-guestmount="$top_builddir/fuse/guestmount"
-guestunmount="$top_builddir/fuse/guestunmount"
+# Paths to the other files. NB: Must be absolute paths.
image="$top_builddir/fuse/test-fuse.img"
mp="$top_builddir/fuse/test-fuse-mp"
-if [ ! -x "$guestfish" -o ! -x "$guestmount" -o ! -x
"$guestunmount" ]
+if ! guestfish --help >/dev/null 2>&1 || ! guestmount --help
>/dev/null 2>&1 || ! guestunmount --help >/dev/null 2>&1
then
echo "$0: error: guestfish, guestmount or guestunmount are not
available"
exit 1
@@ -82,7 +79,7 @@ function cleanup ()
if [ -x /sbin/fuser ]; then /sbin/fuser "$mp"; fi
if [ -n "$mounted" ]; then
- $guestunmount "$mp"
+ guestunmount "$mp"
fi
rm -f "$image"
@@ -99,7 +96,7 @@ function stage ()
}
stage Create filesystem with some initial content
-$guestfish <<EOF
+guestfish <<EOF
sparse "$image" 10M
run
part-disk /dev/sda mbr
@@ -116,7 +113,7 @@ $guestfish <<EOF
EOF
stage Mounting the filesystem
-$guestmount \
+guestmount \
-a "$image" -m /dev/sda1:/:acl,user_xattr \
-o uid="$(id -u)" -o gid="$(id -g)" "$mp"
# To debug guestmount, add this to the end of the preceding command:
diff --git a/inspector/test-virt-inspector.sh b/inspector/test-virt-inspector.sh
index b400e20..6fab253 100755
--- a/inspector/test-virt-inspector.sh
+++ b/inspector/test-virt-inspector.sh
@@ -33,7 +33,7 @@ for f in ../tests/guests/{debian,fedora,ubuntu,windows}.img;
do
# Ignore zero-sized windows.img if ntfs-3g is not installed.
if [ -s "$f" ]; then
b=$(basename "$f" .xml)
- $VG ./virt-inspector -a "$f" > "actual-$b.xml"
+ $VG virt-inspector -a "$f" > "actual-$b.xml"
# This 'diff' command will fail (because of -e option) if there
# are any differences.
diff -ur $diff_ignore "expected-$b.xml"
"actual-$b.xml"
@@ -42,6 +42,6 @@ done
# We could also test this image, but mdadm is problematic for
# many users.
-# $VG ./virt-inspector \
+# $VG virt-inspector \
# -a ../tests/guests/fedora-md1.img \
# -a ../tests/guests/fedora-md2.img
diff --git a/make-fs/test-virt-make-fs.sh b/make-fs/test-virt-make-fs.sh
index a05ef9f..2ed3ce9 100755
--- a/make-fs/test-virt-make-fs.sh
+++ b/make-fs/test-virt-make-fs.sh
@@ -40,7 +40,7 @@ if [ -n "$SKIP_TEST_VIRT_MAKE_FS_BTRFS" ]; then
fi
# UML backend doesn't support qcow2.
-if [ "$(../fish/guestfish get-backend)" != "uml" ]; then
+if [ "$(guestfish get-backend)" != "uml" ]; then
qcow2_supported=yes
fi
@@ -94,6 +94,6 @@ dd if=/dev/zero of=test.file bs=1024 count=$tarsize
tar -c -f test.tar test.file
rm test.file
-$VG ./virt-make-fs $params -- test.tar output.img
+$VG virt-make-fs $params -- test.tar output.img
rm test.tar output.img
diff --git a/p2v/test-virt-p2v.sh b/p2v/test-virt-p2v.sh
index 2f66c7c..f4d28d1 100755
--- a/p2v/test-virt-p2v.sh
+++ b/p2v/test-virt-p2v.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_VIRT_P2V_SH" ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support
network"
exit 77
fi
@@ -61,7 +61,7 @@ export PATH=$d:$PATH
# The Linux kernel command line.
cmdline="p2v.server=localhost p2v.name=windows p2v.debug p2v.disks=$f
p2v.o=local p2v.os=$d p2v.network=em1:wired,other"
-./virt-p2v --cmdline="$cmdline"
+virt-p2v --cmdline="$cmdline"
# Test the libvirt XML metadata and a disk was created.
test -f $d/windows.xml
diff --git a/rescue/test-virt-rescue-suggest.sh
b/rescue/test-virt-rescue-suggest.sh
index c3f5d91..f79e4f8 100755
--- a/rescue/test-virt-rescue-suggest.sh
+++ b/rescue/test-virt-rescue-suggest.sh
@@ -28,7 +28,7 @@ fi
rm -f virt-rescue-suggest.out
-$VG ./virt-rescue --suggest "$guest" |
+$VG virt-rescue --suggest "$guest" |
grep '^mount ' |
sed -r 's,/dev/[abce-ln-z]+d,/dev/sd,' > virt-rescue-suggest.out
diff --git a/resize/test-virt-resize.sh b/resize/test-virt-resize.sh
index 29c1e4c..9a1c24f 100755
--- a/resize/test-virt-resize.sh
+++ b/resize/test-virt-resize.sh
@@ -19,7 +19,7 @@
export LANG=C
set -e
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: skipping test because uml backend does not support
qcow2"
exit 77
fi
@@ -29,13 +29,13 @@ fi
# This exercises a number of interesting codepaths including resizing
# LV content, handling GPT, and using qcow2 as a target.
-$VG ../fish/guestfish \
+$VG guestfish \
-N test-virt-resize-1.img=bootrootlv:/dev/VG/LV:ext2:ext4:400M:32M:gpt
</dev/null
-$VG ../fish/guestfish \
+$VG guestfish \
disk-create test-virt-resize-2.img qcow2 500M preallocation:metadata
-$VG ./virt-resize -d --debug-gc \
+$VG virt-resize -d --debug-gc \
--expand /dev/sda2 \
--lv-expand /dev/VG/LV \
--format raw --output-format qcow2 \
@@ -45,7 +45,7 @@ $VG ./virt-resize -d --debug-gc \
# image created above contains no data, we will nevertheless use
# similar operations to ones that might be used by a real admin.
-../fish/guestfish -a test-virt-resize-1.img <<EOF
+guestfish -a test-virt-resize-1.img <<EOF
run
resize2fs-size /dev/VG/LV 190M
lvresize /dev/VG/LV 190
@@ -53,8 +53,8 @@ pvresize-size /dev/sda2 200M
fsck ext4 /dev/VG/LV
EOF
-rm -f test-virt-resize-2.img; ../fish/guestfish sparse test-virt-resize-2.img
300M
-$VG ./virt-resize -d --debug-gc \
+rm -f test-virt-resize-2.img; guestfish sparse test-virt-resize-2.img 300M
+$VG virt-resize -d --debug-gc \
--shrink /dev/sda2 \
--format raw --output-format raw \
test-virt-resize-1.img test-virt-resize-2.img
diff --git a/sparsify/test-virt-sparsify-in-place.sh
b/sparsify/test-virt-sparsify-in-place.sh
index e454e79..d085032 100755
--- a/sparsify/test-virt-sparsify-in-place.sh
+++ b/sparsify/test-virt-sparsify-in-place.sh
@@ -24,7 +24,7 @@ if [ -n "$SKIP_TEST_VIRT_SPARSIFY_IN_PLACE_SH" ];
then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: skipping test because uml backend does not support
discard"
exit 77
fi
@@ -34,7 +34,7 @@ rm -f test-virt-sparsify-in-place.img
# Create a filesystem, fill it with data, then delete the data. Then
# prove that sparsifying it reduces the size of the final filesystem.
-$VG ../fish/guestfish \
+$VG guestfish \
-N
test-virt-sparsify-in-place.img=bootrootlv:/dev/VG/LV:ext4:ext4:400M:32M:gpt
<<EOF
mount /dev/VG/LV /
mkdir /boot
@@ -49,7 +49,7 @@ EOF
size_before=$(du -s test-virt-sparsify-in-place.img | awk '{print $1}')
-$VG ./virt-sparsify --debug-gc --in-place test-virt-sparsify-in-place.img || {
+$VG virt-sparsify --debug-gc --in-place test-virt-sparsify-in-place.img || {
if [ "$?" -eq 3 ]; then
rm test-virt-sparsify-in-place.img
echo "$0: discard not supported in virt-sparsify"
diff --git a/sparsify/test-virt-sparsify.sh b/sparsify/test-virt-sparsify.sh
index fae5bee..0404424 100755
--- a/sparsify/test-virt-sparsify.sh
+++ b/sparsify/test-virt-sparsify.sh
@@ -19,7 +19,7 @@
export LANG=C
set -e
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: skipping test because uml backend does not support
qcow2"
exit 77
fi
@@ -29,7 +29,7 @@ rm -f test-virt-sparsify-1.img test-virt-sparsify-2.img
# Create a filesystem, fill it with data, then delete the data. Then
# prove that sparsifying it reduces the size of the final filesystem.
-$VG ../fish/guestfish \
+$VG guestfish \
-N test-virt-sparsify-1.img=bootrootlv:/dev/VG/LV:ext2:ext4:400M:32M:gpt
<<EOF
mount /dev/VG/LV /
mkdir /boot
@@ -42,7 +42,7 @@ rm /boot/big
umount-all
EOF
-$VG ./virt-sparsify --debug-gc test-virt-sparsify-1.img --convert qcow2
test-virt-sparsify-2.img
+$VG virt-sparsify --debug-gc test-virt-sparsify-1.img --convert qcow2
test-virt-sparsify-2.img
size_before=$(du -s test-virt-sparsify-1.img | awk '{print $1}')
size_after=$(du -s test-virt-sparsify-2.img | awk '{print $1}')
diff --git a/sysprep/test-virt-sysprep-passwords.sh
b/sysprep/test-virt-sysprep-passwords.sh
index d56758a..b5189c8 100755
--- a/sysprep/test-virt-sysprep-passwords.sh
+++ b/sysprep/test-virt-sysprep-passwords.sh
@@ -35,11 +35,11 @@ fi
# so we fake that now.
rm -f passwords.qcow2 password
-../fish/guestfish -- \
+guestfish -- \
disk-create passwords.qcow2 qcow2 -1 \
backingfile:../tests/guests/fedora.img backingformat:raw
-../fish/guestfish -a passwords.qcow2 -i <<'EOF'
+guestfish -a passwords.qcow2 -i <<'EOF'
write-append /etc/shadow "test01::15677:0:99999:7:::\n"
write-append /etc/shadow "test02::15677:0:99999:7:::\n"
write-append /etc/shadow "test03::15677:0:99999:7:::\n"
@@ -57,7 +57,7 @@ echo 123456 > password
# Run virt-sysprep password operation.
-./virt-sysprep \
+virt-sysprep \
-a passwords.qcow2 \
--enable customize \
--password test01:password:123456 \
diff --git a/sysprep/test-virt-sysprep-script.sh
b/sysprep/test-virt-sysprep-script.sh
index 8193af0..10ba1d1 100755
--- a/sysprep/test-virt-sysprep-script.sh
+++ b/sysprep/test-virt-sysprep-script.sh
@@ -32,7 +32,7 @@ fi
# Check that multiple scripts can run.
rm -f stamp-script1.sh stamp-script2.sh stamp-script4.sh
-if ! ./virt-sysprep -q -n -a ../tests/guests/fedora.img --enable script \
+if ! virt-sysprep -q -n -a ../tests/guests/fedora.img --enable script \
--script $abs_srcdir/script1.sh --script $abs_srcdir/script2.sh; then
echo "$0: virt-sysprep wasn't expected to exit with error."
exit 1
@@ -43,19 +43,19 @@ if [ ! -f stamp-script1.sh -o ! -f stamp-script2.sh ]; then
fi
# Check that if a script fails, virt-sysprep exits with an error.
-if ./virt-sysprep -q -n -a ../tests/guests/fedora.img --enable script \
+if virt-sysprep -q -n -a ../tests/guests/fedora.img --enable script \
--script $abs_srcdir/script3.sh; then
echo "$0: virt-sysprep didn't exit with an error."
exit 1
fi
# Check that virt-sysprep uses a new temporary directory every time.
-if ! ./virt-sysprep -q -n -a ../tests/guests/fedora.img --enable script \
+if ! virt-sysprep -q -n -a ../tests/guests/fedora.img --enable script \
--script $abs_srcdir/script4.sh; then
echo "$0: virt-sysprep (script4.sh, try #1) wasn't expected to
exit with error."
exit 1
fi
-if ! ./virt-sysprep -q -n -a ../tests/guests/fedora.img --enable script \
+if ! virt-sysprep -q -n -a ../tests/guests/fedora.img --enable script \
--script $abs_srcdir/script4.sh; then
echo "$0: virt-sysprep (script4.sh, try #2) wasn't expected to
exit with error."
exit 1
diff --git a/sysprep/test-virt-sysprep.sh b/sysprep/test-virt-sysprep.sh
index 5d1b714..7ec96d0 100755
--- a/sysprep/test-virt-sysprep.sh
+++ b/sysprep/test-virt-sysprep.sh
@@ -21,7 +21,7 @@ set -e
# Get a comma-separated list of the enabled-by-default operations.
operations=$(
- ./virt-sysprep --list-operations |
+ virt-sysprep --list-operations |
fgrep '*' |
awk '{printf ("%s,",$1)}' |
sed 's/,$//'
@@ -36,13 +36,13 @@ for f in ../tests/guests/{debian,fedora,ubuntu,windows}.img;
do
# Ignore zero-sized windows.img if ntfs-3g is not installed.
if [ -s "$f" ]; then
echo "Running virt-sysprep on $f ..."
- $VG ./virt-sysprep -q -n --enable "$operations" -a $f
+ $VG virt-sysprep -q -n --enable "$operations" -a $f
echo
fi
done
# We could also test this image, but mdadm is problematic for
# many users.
-# $VG ./virt-sysprep -q -n \
+# $VG virt-sysprep -q -n \
# -a ../tests/guests/fedora-md1.img \
# -a ../tests/guests/fedora-md2.img
diff --git a/tests/9p/test-9p.sh b/tests/9p/test-9p.sh
index 6206609..9e396a4 100755
--- a/tests/9p/test-9p.sh
+++ b/tests/9p/test-9p.sh
@@ -26,7 +26,7 @@ if [ -n "$SKIP_TEST_9P_SH" ]; then
exit 77
fi
-backend="$(../../fish/guestfish get-backend)"
+backend="$(guestfish get-backend)"
if [[ "$backend" != "direct" ]]; then
echo "$0: test skipped because backend ($backend) is not
'direct'."
exit 77
@@ -45,7 +45,7 @@ fi
rm -f test-9p.img test-9p.out
-../../fish/guestfish <<EOF
+guestfish <<EOF
# This dummy disk is not actually used, but libguestfs requires one.
sparse test-9p.img 1M
diff --git a/tests/btrfs/test-btrfs-devices.sh
b/tests/btrfs/test-btrfs-devices.sh
index 7ef7008..3935c60 100755
--- a/tests/btrfs/test-btrfs-devices.sh
+++ b/tests/btrfs/test-btrfs-devices.sh
@@ -24,8 +24,6 @@
set -e
-guestfish=../../fish/guestfish
-
# Allow the test to be skipped since btrfs is often broken.
if [ -n "$SKIP_TEST_BTRFS_DEVICES_SH" ]; then
echo "$0: skipping test because environment variable is set."
@@ -33,14 +31,14 @@ if [ -n "$SKIP_TEST_BTRFS_DEVICES_SH" ]; then
fi
# If btrfs is not available, bail.
-if ! $guestfish -a /dev/null run : available btrfs; then
+if ! guestfish -a /dev/null run : available btrfs; then
echo "$0: skipping test because btrfs is not available"
exit 77
fi
rm -f test-btrfs-devices-{1,2,3,4}.img
-$guestfish <<EOF
+guestfish <<EOF
# Add four empty disks
sparse test-btrfs-devices-1.img 1G
sparse test-btrfs-devices-2.img 1G
diff --git a/tests/create/test-disk-create.sh b/tests/create/test-disk-create.sh
index 967ceba..93dc706 100755
--- a/tests/create/test-disk-create.sh
+++ b/tests/create/test-disk-create.sh
@@ -25,7 +25,7 @@ rm -f disk*.img file:*.img
# XXX We should also test failure paths.
-../../fish/guestfish <<EOF
+guestfish <<EOF
disk-create disk1.img raw 256K
disk-create disk2.img raw 256K preallocation:sparse
disk-create disk3.img raw 256K preallocation:full
@@ -45,7 +45,7 @@ rm -f disk*.img file:*.img
disk-create disk,,0.img qcow2 256K
EOF
-output="$(../../fish/guestfish <<EOF
+output="$(guestfish <<EOF
disk-format disk1.img
disk-format disk2.img
disk-format disk3.img
diff --git a/tests/disks/test-qemu-drive-libvirt.sh
b/tests/disks/test-qemu-drive-libvirt.sh
index 1ba014b..9930865 100755
--- a/tests/disks/test-qemu-drive-libvirt.sh
+++ b/tests/disks/test-qemu-drive-libvirt.sh
@@ -41,8 +41,7 @@ if ! ../../src/libvirt-is-version 1 1 3; then
exit 77
fi
-guestfish="\
- ../../fish/guestfish -c
test://$abs_builddir/test-qemu-drive-libvirt.xml"
+guestfish="guestfish -c
test://$abs_builddir/test-qemu-drive-libvirt.xml"
export LIBGUESTFS_BACKEND=direct
export LIBGUESTFS_HV="${abs_srcdir}/debug-qemu.sh"
diff --git a/tests/disks/test-qemu-drive.sh b/tests/disks/test-qemu-drive.sh
index 91677bd..b530e7d 100755
--- a/tests/disks/test-qemu-drive.sh
+++ b/tests/disks/test-qemu-drive.sh
@@ -21,8 +21,6 @@ export LANG=C
set -e
-guestfish=../../fish/guestfish
-
export LIBGUESTFS_BACKEND=direct
export LIBGUESTFS_HV="${abs_srcdir}/debug-qemu.sh"
export DEBUG_QEMU_FILE="${abs_builddir}/test-qemu-drive.out"
@@ -46,7 +44,7 @@ rm -f "$DEBUG_QEMU_FILE"
# Ceph (RBD).
-$guestfish <<EOF ||:
+guestfish <<EOF ||:
add "abc-def/ghi-jkl" "format:raw"
"protocol:rbd" \
"server:1.2.3.4:1234 1.2.3.5:1235 1.2.3.6:1236"
run
@@ -55,7 +53,7 @@ check_output
grep -sq -- '-drive
file=rbd:abc-def/ghi-jkl:mon_host=1.2.3.4\\:1234\\;1.2.3.5\\:1235\\;1.2.3.6\\:1236:auth_supported=none,'
"$DEBUG_QEMU_FILE" || fail
rm "$DEBUG_QEMU_FILE"
-$guestfish <<EOF ||:
+guestfish <<EOF ||:
add "abc-def/ghi-jkl" "format:raw"
"protocol:rbd"
run
EOF
@@ -65,7 +63,7 @@ rm "$DEBUG_QEMU_FILE"
# HTTP.
-$guestfish <<EOF ||:
+guestfish <<EOF ||:
add "/disk.img" "format:raw" "protocol:http"
"server:www.example.com"
run
EOF
@@ -75,7 +73,7 @@ rm "$DEBUG_QEMU_FILE"
# Gluster.
-$guestfish <<EOF ||:
+guestfish <<EOF ||:
add "volname/image" "format:raw"
"protocol:gluster" "server:www.example.com:24007"
run
EOF
@@ -85,7 +83,7 @@ rm "$DEBUG_QEMU_FILE"
# iSCSI.
-$guestfish <<EOF ||:
+guestfish <<EOF ||:
add "target-iqn-name/lun" "format:raw"
"protocol:iscsi" "server:www.example.com:3000"
run
EOF
@@ -95,7 +93,7 @@ rm "$DEBUG_QEMU_FILE"
# NBD.
-$guestfish <<EOF ||:
+guestfish <<EOF ||:
add "" "format:raw" "protocol:nbd"
"server:1.2.3.4:1234"
run
EOF
@@ -103,7 +101,7 @@ check_output
grep -sq -- '-drive file=nbd:1.2.3.4:1234,'
"$DEBUG_QEMU_FILE" || fail
rm "$DEBUG_QEMU_FILE"
-$guestfish <<EOF ||:
+guestfish <<EOF ||:
add "" "format:raw" "protocol:nbd"
"server:unix:/socket"
run
EOF
@@ -113,7 +111,7 @@ rm "$DEBUG_QEMU_FILE"
# Sheepdog.
-$guestfish <<EOF ||:
+guestfish <<EOF ||:
add "volume" "format:raw" "protocol:sheepdog"
run
EOF
@@ -123,7 +121,7 @@ rm "$DEBUG_QEMU_FILE"
# SSH.
-$guestfish <<EOF ||:
+guestfish <<EOF ||:
add "/disk.img" "format:raw" "protocol:ssh"
"server:example.com" \
"username:rich"
run
diff --git a/tests/guests/guest-aux/make-debian-img.sh
b/tests/guests/guest-aux/make-debian-img.sh
index c3db56e..95228ab 100755
--- a/tests/guests/guest-aux/make-debian-img.sh
+++ b/tests/guests/guest-aux/make-debian-img.sh
@@ -31,7 +31,7 @@ LABEL=BOOT /boot ext2 default 0 0
EOF
# Create a disk image.
-../../fish/guestfish <<EOF
+guestfish <<EOF
sparse debian.img.tmp.$$ 512M
run
diff --git a/tests/guests/guest-aux/make-ubuntu-img.sh
b/tests/guests/guest-aux/make-ubuntu-img.sh
index 445141f..183985b 100755
--- a/tests/guests/guest-aux/make-ubuntu-img.sh
+++ b/tests/guests/guest-aux/make-ubuntu-img.sh
@@ -39,7 +39,7 @@ DISTRIB_DESCRIPTION="Ubuntu 10.10 (Phony Pharaoh)"
EOF
# Create a disk image.
-../../fish/guestfish <<EOF
+guestfish <<EOF
sparse ubuntu.img.tmp.$$ 512M
run
diff --git a/tests/guests/guest-aux/make-windows-img.sh
b/tests/guests/guest-aux/make-windows-img.sh
index 860ec06..9d477fa 100755
--- a/tests/guests/guest-aux/make-windows-img.sh
+++ b/tests/guests/guest-aux/make-windows-img.sh
@@ -25,7 +25,7 @@ set -e
# ntfs-3g/ntfsprogs then we cannot create a Windows phony image.
# Nothing actually uses windows.img in the standard build so we can
# just 'touch' it and emit a warning.
-if ! ../../fish/guestfish -a /dev/null run : available "ntfs3g
ntfsprogs"; then
+if ! guestfish -a /dev/null run : available "ntfs3g ntfsprogs"; then
echo "***"
echo "Warning: cannot create windows.img because there is no NTFS"
echo "support in this build of libguestfs. Just touching the
output"
@@ -36,7 +36,7 @@ if ! ../../fish/guestfish -a /dev/null run : available
"ntfs3g ntfsprogs"; then
fi
# Create a disk image.
-../../fish/guestfish <<EOF
+guestfish <<EOF
sparse windows.img.tmp.$$ 512M
run
diff --git a/tests/luks/test-luks-list.sh b/tests/luks/test-luks-list.sh
index bb8389c..be22e8b 100755
--- a/tests/luks/test-luks-list.sh
+++ b/tests/luks/test-luks-list.sh
@@ -26,14 +26,14 @@ set -e
}
# If luks is not available, bail.
-if ! ../../fish/guestfish -a /dev/null run : available luks; then
+if ! guestfish -a /dev/null run : available luks; then
echo "$0: skipping test because luks is not available"
exit 77
fi
rm -f test-luks-list.img test-luks-list.out
-../../fish/guestfish --keys-from-stdin > test-luks-list.out
<<'EOF'
+guestfish --keys-from-stdin > test-luks-list.out <<'EOF'
sparse test-luks-list.img 1G
run
part-init /dev/sda mbr
diff --git a/tests/luks/test-luks.sh b/tests/luks/test-luks.sh
index 5d8e8b2..2f65750 100755
--- a/tests/luks/test-luks.sh
+++ b/tests/luks/test-luks.sh
@@ -26,14 +26,14 @@ set -e
}
# If luks is not available, bail.
-if ! ../../fish/guestfish -a /dev/null run : available luks; then
+if ! guestfish -a /dev/null run : available luks; then
echo "$0: skipping test because luks is not available"
exit 77
fi
rm -f test-luks.img
-../../fish/guestfish --keys-from-stdin <<EOF
+guestfish --keys-from-stdin <<EOF
sparse test-luks.img 1G
run
part-disk /dev/sda mbr
diff --git a/tests/lvm/test-lvm-filtering.sh b/tests/lvm/test-lvm-filtering.sh
index 3744021..f00d712 100755
--- a/tests/lvm/test-lvm-filtering.sh
+++ b/tests/lvm/test-lvm-filtering.sh
@@ -27,7 +27,7 @@ fi
rm -f test-lvm-filtering-1.img test-lvm-filtering-2.img
-actual=$(../../fish/guestfish <<'EOF'
+actual=$(guestfish <<'EOF'
sparse test-lvm-filtering-1.img 1G
sparse test-lvm-filtering-2.img 1G
diff --git a/tests/md/test-inspect-fstab-md.sh
b/tests/md/test-inspect-fstab-md.sh
index ac2e0a9..43e1d3a 100755
--- a/tests/md/test-inspect-fstab-md.sh
+++ b/tests/md/test-inspect-fstab-md.sh
@@ -26,15 +26,13 @@ if [ -n "$SKIP_TEST_INSPECT_FSTAB_MD_SH" ]; then
exit 77
fi
-guestfish=../../fish/guestfish
-
rm -f inspect-fstab-md-{1,2}.img inspect-fstab-md.fstab inspect-fstab-md.output
# First, test the regular fedora image, which specifies /boot as /dev/md0
cp ../guests/fedora-md1.img inspect-fstab-md-1.img
cp ../guests/fedora-md2.img inspect-fstab-md-2.img
-$guestfish -i inspect-fstab-md-[12].img <<'EOF' | sort >
inspect-fstab-md.output
+guestfish -i inspect-fstab-md-[12].img <<'EOF' | sort >
inspect-fstab-md.output
exists /boot/grub/grub.conf
EOF
@@ -49,13 +47,13 @@ cat <<'EOF' > inspect-fstab-md.fstab
/dev/md/boot /boot ext2 default 0 0
EOF
-$guestfish -a inspect-fstab-md-1.img -a inspect-fstab-md-2.img
<<'EOF'
+guestfish -a inspect-fstab-md-1.img -a inspect-fstab-md-2.img
<<'EOF'
run
mount /dev/VG/Root /
upload inspect-fstab-md.fstab /etc/fstab
EOF
-$guestfish -i inspect-fstab-md-[12].img <<'EOF' | sort >
inspect-fstab-md.output
+guestfish -i inspect-fstab-md-[12].img <<'EOF' | sort >
inspect-fstab-md.output
exists /boot/grub/grub.conf
EOF
diff --git a/tests/md/test-inspect-fstab.sh b/tests/md/test-inspect-fstab.sh
index 04ee9d1..f31ec2e 100755
--- a/tests/md/test-inspect-fstab.sh
+++ b/tests/md/test-inspect-fstab.sh
@@ -22,10 +22,9 @@
set -e
export LANG=C
-guestfish=../../fish/guestfish
canonical="sed -r s,/dev/[abce-ln-z]+d,/dev/sd,g"
-if [ "$($guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: skipping test because uml backend does not support
qcow2"
exit 77
fi
@@ -34,7 +33,7 @@ rm -f inspect-fstab-1.qcow2 inspect-fstab.fstab
inspect-fstab.output
# Start with the regular (good) fedora image, modify /etc/fstab
# and then inspect it.
-$guestfish -- \
+guestfish -- \
disk-create inspect-fstab-1.qcow2 qcow2 -1 \
backingfile:../guests/fedora.img backingformat:raw
@@ -56,14 +55,14 @@ cat <<'EOF' > inspect-fstab.fstab
/dev/disk/by-id/ata-QEMU_HARDDISK_QM00001-part3 /id3 ext2 default 0 0
EOF
-$guestfish -a inspect-fstab-1.qcow2 <<'EOF'
+guestfish -a inspect-fstab-1.qcow2 <<'EOF'
run
mount /dev/VG/Root /
upload inspect-fstab.fstab /etc/fstab
EOF
# This will give a warning, but should not fail.
-$guestfish -a inspect-fstab-1.qcow2 -i <<'EOF' | sort |
$canonical > inspect-fstab.output
+guestfish -a inspect-fstab-1.qcow2 -i <<'EOF' | sort | $canonical
> inspect-fstab.output
inspect-get-mountpoints /dev/VG/Root
EOF
@@ -88,13 +87,13 @@ cat <<'EOF' > inspect-fstab.fstab
/dev/xvdg1 /boot ext2 default 0 0
EOF
-$guestfish -a inspect-fstab-1.qcow2 <<'EOF'
+guestfish -a inspect-fstab-1.qcow2 <<'EOF'
run
mount /dev/VG/Root /
upload inspect-fstab.fstab /etc/fstab
EOF
-$guestfish <<'EOF' | $canonical > inspect-fstab.output
+guestfish <<'EOF' | $canonical > inspect-fstab.output
add inspect-fstab-1.qcow2 readonly:true name:xvdg
run
inspect-os
@@ -119,13 +118,13 @@ cat <<'EOF' > inspect-fstab.fstab
/dev/cciss/c1d3 /var ext2 default 0 0
EOF
-$guestfish -a inspect-fstab-1.qcow2 <<'EOF'
+guestfish -a inspect-fstab-1.qcow2 <<'EOF'
run
mount /dev/VG/Root /
upload inspect-fstab.fstab /etc/fstab
EOF
-$guestfish <<'EOF' | $canonical > inspect-fstab.output
+guestfish <<'EOF' | $canonical > inspect-fstab.output
add inspect-fstab-1.qcow2 readonly:true name:cciss/c1d3
run
inspect-os
diff --git a/tests/md/test-list-filesystems.sh
b/tests/md/test-list-filesystems.sh
index 9f54182..2bfa6f3 100755
--- a/tests/md/test-list-filesystems.sh
+++ b/tests/md/test-list-filesystems.sh
@@ -37,7 +37,7 @@ rm -f list-fs.output
# md127 : 20M ext4
# vg0 : 16M LV (lv0)
# lv0 : 16M vfat
-../../fish/guestfish <<EOF | sed -r s,/dev/[abce-ln-z]+d,/dev/sd,g >
list-fs.output
+guestfish <<EOF | sed -r s,/dev/[abce-ln-z]+d,/dev/sd,g >
list-fs.output
# Add 2 empty disks
scratch 50M
scratch 50M
diff --git a/tests/md/test-list-md-devices.sh b/tests/md/test-list-md-devices.sh
index 511f6be..5a9cbe8 100755
--- a/tests/md/test-list-md-devices.sh
+++ b/tests/md/test-list-md-devices.sh
@@ -26,7 +26,7 @@ if [ -n "$SKIP_TEST_LIST_MD_DEVICES_SH" ]; then
fi
output=$(
-../../fish/guestfish <<EOF
+guestfish <<EOF
# Add 2 empty disks
sparse list-md-devices-1.img 100M
sparse list-md-devices-2.img 100M
@@ -49,7 +49,7 @@ fi
# Ensure list-md-devices now returns the newly created md device
output=$(
-../../fish/guestfish -a list-md-devices-1.img -a list-md-devices-2.img
<<EOF
+guestfish -a list-md-devices-1.img -a list-md-devices-2.img <<EOF
run
list-md-devices
EOF
diff --git a/tests/md/test-mdadm.sh b/tests/md/test-mdadm.sh
index 0e1de05..05b2432 100755
--- a/tests/md/test-mdadm.sh
+++ b/tests/md/test-mdadm.sh
@@ -27,7 +27,7 @@ fi
rm -f mdadm-{1,2,3,4}.img
-../../fish/guestfish <<EOF
+guestfish <<EOF
# Add four empty disks
sparse mdadm-1.img 100M
sparse mdadm-2.img 100M
@@ -97,15 +97,15 @@ write /r5t3/baz "testing"
EOF
-eval `../../fish/guestfish --listen`
-../../fish/guestfish --remote add-ro mdadm-1.img
-../../fish/guestfish --remote add-ro mdadm-2.img
-../../fish/guestfish --remote add-ro mdadm-3.img
-../../fish/guestfish --remote add-ro mdadm-4.img
-../../fish/guestfish --remote run
+eval `guestfish --listen`
+guestfish --remote add-ro mdadm-1.img
+guestfish --remote add-ro mdadm-2.img
+guestfish --remote add-ro mdadm-3.img
+guestfish --remote add-ro mdadm-4.img
+guestfish --remote run
-for md in `../../fish/guestfish --remote list-md-devices`; do
- ../../fish/guestfish --remote md-detail "$md" > md-detail.out
+for md in `guestfish --remote list-md-devices`; do
+ guestfish --remote md-detail "$md" > md-detail.out
sed 's/:\s*/=/' md-detail.out > md-detail.out.sh
. md-detail.out.sh
@@ -148,24 +148,24 @@ for md in `../../fish/guestfish --remote list-md-devices`;
do
if [ "$error" -eq 1 ]; then
echo "$0: Unexpected output from md-detail for device $md"
cat md-detail.out
- ../../fish/guestfish --remote exit
+ guestfish --remote exit
exit 1
fi
done
-../../fish/guestfish --remote exit
+guestfish --remote exit
-eval `../../fish/guestfish --listen`
-../../fish/guestfish --remote add-ro mdadm-1.img
-../../fish/guestfish --remote add-ro mdadm-2.img
-../../fish/guestfish --remote add-ro mdadm-3.img
-../../fish/guestfish --remote add-ro mdadm-4.img
-../../fish/guestfish --remote run
+eval `guestfish --listen`
+guestfish --remote add-ro mdadm-1.img
+guestfish --remote add-ro mdadm-2.img
+guestfish --remote add-ro mdadm-3.img
+guestfish --remote add-ro mdadm-4.img
+guestfish --remote run
-for md in `../../fish/guestfish --remote list-md-devices`; do
- ../../fish/guestfish --remote md-stop "$md"
+for md in `guestfish --remote list-md-devices`; do
+ guestfish --remote md-stop "$md"
done
-../../fish/guestfish --remote exit
+guestfish --remote exit
rm md-detail.out mdadm-1.img mdadm-2.img mdadm-3.img mdadm-4.img
diff --git a/tests/mountable/test-mountable-inspect.sh
b/tests/mountable/test-mountable-inspect.sh
index b248b01..3b81fd0 100755
--- a/tests/mountable/test-mountable-inspect.sh
+++ b/tests/mountable/test-mountable-inspect.sh
@@ -19,7 +19,6 @@
set -e
export LANG=C
-guestfish=../../fish/guestfish
canonical="sed s,/dev/vd,/dev/sd,g"
# Allow the test to be skipped since btrfs is often broken.
@@ -28,13 +27,13 @@ if [ -n "$SKIP_TEST_MOUNTABLE_INSPECT_SH" ]; then
exit 77
fi
-if [ "$($guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: skipping test because uml backend does not support
qcow2"
exit 77
fi
# Bail if btrfs is not available.
-if ! $guestfish -a /dev/null run : available btrfs; then
+if ! guestfish -a /dev/null run : available btrfs; then
echo "$0: skipping test because btrfs is not available"
exit 77
fi
@@ -43,13 +42,13 @@ rm -f root.tmp test.qcow2 test.output
# Start with the regular (good) fedora image, modify /etc/fstab
# and then inspect it.
-$guestfish -- \
+guestfish -- \
disk-create test.qcow2 qcow2 -1 \
backingfile:../guests/fedora-btrfs.img backingformat:raw
# Test that basic inspection works and the expected filesystems are
# found
-$guestfish -a test.qcow2 -i <<'EOF' | sort | $canonical >
test.output
+guestfish -a test.qcow2 -i <<'EOF' | sort | $canonical >
test.output
inspect-get-roots | head -1 > root.tmp
<! echo inspect-get-mountpoints "`cat root.tmp`"
EOF
@@ -63,7 +62,7 @@ if [ "$(cat test.output)" != "/:
btrfsvol:/dev/sda2/root
fi
# Additional sanity check: did we get the release name right?
-$guestfish -a test.qcow2 -i <<'EOF' > test.output
+guestfish -a test.qcow2 -i <<'EOF' > test.output
inspect-get-roots | head -1 > root.tmp
<! echo inspect-get-product-name "`cat root.tmp`"
EOF
diff --git a/tests/network/test-network.sh b/tests/network/test-network.sh
index be260a8..f24ef2e 100755
--- a/tests/network/test-network.sh
+++ b/tests/network/test-network.sh
@@ -28,10 +28,10 @@ if [ -n "$SKIP_TEST_RHBZ690819_SH" ]; then
exit 77
fi
-backend="$(../../fish/guestfish get-backend)"
+backend="$(guestfish get-backend)"
if [[ "$backend" =~ ^uml ]]; then
echo "$0: test skipped because backend ($backend) is
'uml'."
exit 77
fi
-../../fish/guestfish --network -a /dev/null run
+guestfish --network -a /dev/null run
diff --git a/tests/ntfsclone/test-ntfsclone.sh
b/tests/ntfsclone/test-ntfsclone.sh
index 985ea72..30c21bf 100755
--- a/tests/ntfsclone/test-ntfsclone.sh
+++ b/tests/ntfsclone/test-ntfsclone.sh
@@ -27,10 +27,8 @@ fi
rm -f test-ntfsclone.img ntfsclone-backup1 ntfsclone-backup2
-guestfish=../../fish/guestfish
-
# Skip if ntfs-3g is not supported by the appliance.
-if ! $guestfish add /dev/null : run : available "ntfs3g"; then
+if ! guestfish add /dev/null : run : available "ntfs3g"; then
echo "$0: skipped because ntfs-3g is not supported by the
appliance"
exit 77
fi
@@ -41,14 +39,14 @@ if [ ! -s ../guests/windows.img ]; then
fi
# Export the filesystems to the backup file.
-$guestfish --ro -a ../guests/windows.img <<EOF
+guestfish --ro -a ../guests/windows.img <<EOF
run
ntfsclone-out /dev/sda1 ntfsclone-backup1 preservetimestamps:true force:true
ntfsclone-out /dev/sda2 ntfsclone-backup2 metadataonly:true ignorefscheck:true
EOF
# Restore to another disk image.
-output=$($guestfish -N test-ntfsclone.img=part:300M <<EOF
+output=$(guestfish -N test-ntfsclone.img=part:300M <<EOF
ntfsclone-in ntfsclone-backup1 /dev/sda1
vfs-type /dev/sda1
EOF
diff --git a/tests/protocol/test-both-ends-cancel.sh
b/tests/protocol/test-both-ends-cancel.sh
index 7c489ca..6301186 100755
--- a/tests/protocol/test-both-ends-cancel.sh
+++ b/tests/protocol/test-both-ends-cancel.sh
@@ -22,7 +22,7 @@
set -e
-../../fish/guestfish <<EOF
+guestfish <<EOF
scratch 100M
run
-tar-in /tmp/nosuchfile /blah
diff --git a/tests/protocol/test-cancellation-download-librarycancels.sh
b/tests/protocol/test-cancellation-download-librarycancels.sh
index 9b255ad..ddaa87d 100755
--- a/tests/protocol/test-cancellation-download-librarycancels.sh
+++ b/tests/protocol/test-cancellation-download-librarycancels.sh
@@ -31,7 +31,7 @@ tmpfile=`mktemp`
size=$(awk 'BEGIN{ srand(); print int(16*1024*rand()) }')
echo "$0: test size $size (bytes)"
-../../fish/guestfish <<EOF
+guestfish <<EOF
# We want the file to be fully allocated.
alloc $tmpfile 10M
run
diff --git a/tests/protocol/test-cancellation-upload-daemoncancels.sh
b/tests/protocol/test-cancellation-upload-daemoncancels.sh
index a5364c7..f6de479 100755
--- a/tests/protocol/test-cancellation-upload-daemoncancels.sh
+++ b/tests/protocol/test-cancellation-upload-daemoncancels.sh
@@ -22,7 +22,7 @@
set -e
-../../fish/guestfish \
+guestfish \
-N test-cancellation-upload-daemoncancels.img=fs:ext2:10M \
-m /dev/sda1 <<'EOF'
# Upload image, daemon should cancel because the image is too large
diff --git a/tests/protocol/test-qemudie-killsub.sh
b/tests/protocol/test-qemudie-killsub.sh
index 928cbef..45e8b2d 100755
--- a/tests/protocol/test-qemudie-killsub.sh
+++ b/tests/protocol/test-qemudie-killsub.sh
@@ -20,12 +20,12 @@
set -e
-if [ "$(../../fish/guestfish get-backend)" != "direct" ];
then
+if [ "$(guestfish get-backend)" != "direct" ]; then
echo "$0: test skipped because default backend is not
'direct'"
exit 77
fi
-../../fish/guestfish <<'EOF'
+guestfish <<'EOF'
scratch 100M
run
# Kill the subprocess.
diff --git a/tests/protocol/test-qemudie-midcommand.sh
b/tests/protocol/test-qemudie-midcommand.sh
index ac41fb2..058df2c 100755
--- a/tests/protocol/test-qemudie-midcommand.sh
+++ b/tests/protocol/test-qemudie-midcommand.sh
@@ -20,14 +20,14 @@
set -e
-if [ "$(../../fish/guestfish get-backend)" != "direct" ];
then
+if [ "$(guestfish get-backend)" != "direct" ]; then
echo "$0: test skipped because default backend is not
'direct'"
exit 77
fi
rm -f qemudie-midcommand.pid
-../../fish/guestfish <<'EOF'
+guestfish <<'EOF'
scratch 100M
run
# Kill the subprocess after a short wait.
diff --git a/tests/protocol/test-qemudie-synch.sh
b/tests/protocol/test-qemudie-synch.sh
index e9431a3..a7066ed 100755
--- a/tests/protocol/test-qemudie-synch.sh
+++ b/tests/protocol/test-qemudie-synch.sh
@@ -20,14 +20,14 @@
set -e
-if [ "$(../../fish/guestfish get-backend)" != "direct" ];
then
+if [ "$(guestfish get-backend)" != "direct" ]; then
echo "$0: test skipped because default backend is not
'direct'"
exit 77
fi
rm -f qemudie-synch.pid
-../../fish/guestfish <<'EOF'
+guestfish <<'EOF'
scratch 100M
run
# Kill subprocess.
diff --git a/tests/qemu/qemu-force-tcg.sh b/tests/qemu/qemu-force-tcg.sh
index 90d7683..79b32b7 100755
--- a/tests/qemu/qemu-force-tcg.sh
+++ b/tests/qemu/qemu-force-tcg.sh
@@ -24,7 +24,7 @@ if [ -n "$SKIP_QEMU_FORCE_TCG_SH" ]; then
fi
# Only applicable to the direct and libvirt backends:
-if [ "$(../../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: skipping test because it is only applicable when qemu is
being used."
exit 77
fi
@@ -33,7 +33,7 @@ set -e
rm -f qemu-force-tcg.out
-../../fish/guestfish -a /dev/null <<EOF
+guestfish -a /dev/null <<EOF
set-backend-setting force_tcg 1
run
debug sh "cat
/sys/devices/system/clocksource/clocksource0/current_clocksource" | cat
> qemu-force-tcg.out
diff --git a/tests/qemu/qemu-liveness.sh b/tests/qemu/qemu-liveness.sh
index fe8396a..4db71bd 100755
--- a/tests/qemu/qemu-liveness.sh
+++ b/tests/qemu/qemu-liveness.sh
@@ -24,10 +24,10 @@ set -e
rm -f liveness1.img
-../../fish/guestfish sparse liveness1.img 100M
+guestfish sparse liveness1.img 100M
liveness1_md5sum="$(md5sum liveness1.img | awk '{print $1}')"
-../../fish/guestfish <<'EOF'
+guestfish <<'EOF'
add liveness1.img format:raw
run
diff --git a/tests/qemu/qemu-snapshot-isolation.sh
b/tests/qemu/qemu-snapshot-isolation.sh
index 82b3892..daa210f 100755
--- a/tests/qemu/qemu-snapshot-isolation.sh
+++ b/tests/qemu/qemu-snapshot-isolation.sh
@@ -22,23 +22,21 @@
set -e
-guestfish=../../fish/guestfish
-
# UML backend doesn't support qcow2 format.
supports_qcow2=yes
-if [ "$($guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
supports_qcow2=no
fi
rm -f isolation1.img isolation2.img isolation3.img
-../../fish/guestfish sparse isolation1.img 100M
+guestfish sparse isolation1.img 100M
isolation1_md5sum="$(md5sum isolation1.img | awk '{print
$1}')"
-../../fish/guestfish sparse isolation2.img 100M
+guestfish sparse isolation2.img 100M
isolation2_md5sum="$(md5sum isolation2.img | awk '{print
$1}')"
if [ "$supports_qcow2" = "yes" ]; then
- ../../fish/guestfish \
+ guestfish \
disk-create isolation3.img qcow2 100M preallocation:metadata
isolation3_md5sum="$(md5sum isolation3.img | awk '{print
$1}')"
add3="add-drive-opts isolation3.img format:qcow2 readonly:true"
@@ -53,7 +51,7 @@ fi
# The vitally important calls are 'add-drive-ro' and
# 'add-drive-opts ... readonly:true'.
-../../fish/guestfish <<EOF
+guestfish <<EOF
add-drive-ro isolation1.img
add-drive-opts isolation2.img format:raw readonly:true
$add3
diff --git a/tests/regressions/rhbz1001875.sh b/tests/regressions/rhbz1001875.sh
index 1d16873..885fd8c 100755
--- a/tests/regressions/rhbz1001875.sh
+++ b/tests/regressions/rhbz1001875.sh
@@ -30,7 +30,7 @@ fi
rm -f rhbz1001875.img rhbz1001875-[123].tar
-../../fish/guestfish -N rhbz1001875.img=fs -m /dev/sda1 <<EOF
+guestfish -N rhbz1001875.img=fs -m /dev/sda1 <<EOF
touch /hello
touch /world
touch /helloworld
diff --git a/tests/regressions/rhbz1044014.sh b/tests/regressions/rhbz1044014.sh
index ce1be76..8e0df2a 100755
--- a/tests/regressions/rhbz1044014.sh
+++ b/tests/regressions/rhbz1044014.sh
@@ -28,7 +28,7 @@ if [ -n "$SKIP_TEST_RHBZ1044014_SH" ]; then
fi
# Check we are running against the libvirt backend.
-backend="$(../../fish/guestfish get-backend)"
+backend="$(guestfish get-backend)"
if [[ ! ( "$backend" =~ ^libvirt ) ]]; then
echo "$0: test skipped because backend ($backend) is not
libvirt."
exit 77
@@ -49,7 +49,7 @@ export
LIBGUESTFS_BACKEND="libvirt:test://$(pwd)/$srcdir/rhbz1044014.xml"
rm -f rhbz1044014.out
-../../fish/guestfish -- -run < $srcdir/rhbz1044014.in > rhbz1044014.out
2>&1 || {
+guestfish -- -run < $srcdir/rhbz1044014.in > rhbz1044014.out 2>&1
|| {
r=$?
if [ $r -ne 0 ]; then
cat rhbz1044014.out
diff --git a/tests/regressions/rhbz1054761.sh b/tests/regressions/rhbz1054761.sh
index f7f49df..344479d 100755
--- a/tests/regressions/rhbz1054761.sh
+++ b/tests/regressions/rhbz1054761.sh
@@ -30,14 +30,14 @@ fi
rm -f rhbz1054761-[ab].img
-../../fish/guestfish -N rhbz1054761-a.img=disk -N rhbz1054761-b.img=disk
<<EOF
+guestfish -N rhbz1054761-a.img=disk -N rhbz1054761-b.img=disk <<EOF
pvcreate /dev/sda
pvcreate /dev/sdb
vgcreate VG "/dev/sda /dev/sdb"
EOF
output="$(
- ../../fish/guestfish -a rhbz1054761-a.img run : pvs |
+ guestfish -a rhbz1054761-a.img run : pvs |
sed -r 's,^/dev/[abce-ln-z]+d,/dev/sd,'
)"
if [ "$output" != "/dev/sda" ]; then
diff --git a/tests/regressions/rhbz1091803.sh b/tests/regressions/rhbz1091803.sh
index e9be95d..6851a1c 100755
--- a/tests/regressions/rhbz1091803.sh
+++ b/tests/regressions/rhbz1091803.sh
@@ -28,7 +28,7 @@ if [ -n "$SKIP_TEST_RHBZ1091803_SH" ]; then
exit 77
fi
-../../fish/guestfish <<EOF
+guestfish <<EOF
scratch 100M
run
mkfs ext2 /dev/sda
diff --git a/tests/regressions/rhbz503169c13.sh
b/tests/regressions/rhbz503169c13.sh
index 44ff2d9..b0ee77b 100755
--- a/tests/regressions/rhbz503169c13.sh
+++ b/tests/regressions/rhbz503169c13.sh
@@ -26,7 +26,7 @@
set -e
-../../fish/guestfish -N rhbz503169c13.img=fs -m /dev/sda1 <<EOF
+guestfish -N rhbz503169c13.img=fs -m /dev/sda1 <<EOF
mkdir /dev
-command /ignore-this-error
unmount-all
diff --git a/tests/regressions/rhbz557655.sh b/tests/regressions/rhbz557655.sh
index 87eb279..fd723bf 100755
--- a/tests/regressions/rhbz557655.sh
+++ b/tests/regressions/rhbz557655.sh
@@ -24,7 +24,7 @@ set -e
rm -f rhbz557655.out rhbz557655.err
export LANG=C
-../../fish/guestfish >> rhbz557655.out 2>> rhbz557655.err
<<EOF
+guestfish >> rhbz557655.out 2>> rhbz557655.err <<EOF
# set-memsize is just a convenient non-daemon function that
# takes a single integer argument.
set-memsize 500
@@ -46,7 +46,7 @@ get-memsize
-set-memsize 123L
EOF
-../../fish/guestfish -N rhbz557655.img=fs -m /dev/sda1 >> rhbz557655.out
2>> rhbz557655.err <<EOF
+guestfish -N rhbz557655.img=fs -m /dev/sda1 >> rhbz557655.out 2>>
rhbz557655.err <<EOF
touch /test
# truncate-size takes an Int64 argument
diff --git a/tests/regressions/rhbz563450.sh b/tests/regressions/rhbz563450.sh
index 96fca8c..d7cf751 100755
--- a/tests/regressions/rhbz563450.sh
+++ b/tests/regressions/rhbz563450.sh
@@ -29,7 +29,7 @@ fi
rm -f test.out
-../../fish/guestfish --ro > test.out <<EOF
+guestfish --ro > test.out <<EOF
add-drive-ro ../guests/fedora.img
add-cdrom ../data/test.iso
add-drive-ro ../guests/debian.img
diff --git a/tests/regressions/rhbz563450b.sh b/tests/regressions/rhbz563450b.sh
index 7b890b1..26aaf6f 100755
--- a/tests/regressions/rhbz563450b.sh
+++ b/tests/regressions/rhbz563450b.sh
@@ -29,7 +29,7 @@ fi
rm -f test.out
-../../fish/guestfish --ro > test.out <<EOF
+guestfish --ro > test.out <<EOF
add-cdrom ../data/test.iso
run
diff --git a/tests/regressions/rhbz576879.sh b/tests/regressions/rhbz576879.sh
index 2e803af..fece6b4 100755
--- a/tests/regressions/rhbz576879.sh
+++ b/tests/regressions/rhbz576879.sh
@@ -22,7 +22,7 @@
set -e
-../../fish/guestfish <<EOF
+guestfish <<EOF
scratch 100M
run
-upload $srcdir/rhbz576879.sh /test.sh
diff --git a/tests/regressions/rhbz578407.sh b/tests/regressions/rhbz578407.sh
index 5fe2cc1..fb7ba93 100755
--- a/tests/regressions/rhbz578407.sh
+++ b/tests/regressions/rhbz578407.sh
@@ -23,21 +23,19 @@
set -e
-guestfish=../../fish/guestfish
-
# Start remote guestfish.
-eval `$guestfish --listen 2>/dev/null`
+eval `guestfish --listen 2>/dev/null`
# This should succeed.
-$guestfish --remote version > /dev/null
+guestfish --remote version > /dev/null
# This command will fail (because appliance not launched), but
# prefixing with '-' should make remote guestfish ignore the failure.
-$guestfish --remote -- -lvs
+guestfish --remote -- -lvs
# Remote guestfish should still be running.
-$guestfish --remote version > /dev/null
-$guestfish --remote exit
+guestfish --remote version > /dev/null
+guestfish --remote exit
# Try some other command line argument tests which are related the fix.
-$guestfish -- version : -lvs : version > /dev/null 2>&1
+guestfish -- version : -lvs : version > /dev/null 2>&1
diff --git a/tests/regressions/rhbz580246.sh b/tests/regressions/rhbz580246.sh
index 5ab8e19..218dd96 100755
--- a/tests/regressions/rhbz580246.sh
+++ b/tests/regressions/rhbz580246.sh
@@ -29,7 +29,7 @@ dd if=/dev/zero of=rhbz580246.img bs=1M count=2
tar cf rhbz580246.tar rhbz580246.img
output=$(
-../../fish/guestfish 2>&1 <<'EOF'
+guestfish 2>&1 <<'EOF'
add rhbz580246.img
run
mkfs ext2 /dev/sda
diff --git a/tests/regressions/rhbz602997.sh b/tests/regressions/rhbz602997.sh
index 2231fe7..d48693b 100755
--- a/tests/regressions/rhbz602997.sh
+++ b/tests/regressions/rhbz602997.sh
@@ -22,11 +22,9 @@
set -e
export LANG=C
-guestfish=../../fish/guestfish
-
rm -f test.output
-$guestfish > test.output <<EOF
+guestfish > test.output <<EOF
scratch 100M
run
part-init /dev/sda mbr
@@ -48,7 +46,7 @@ false" ]; then
exit 1
fi
-$guestfish > test.output <<EOF
+guestfish > test.output <<EOF
scratch 100M
run
part-init /dev/sda mbr
diff --git a/tests/regressions/rhbz690819.sh b/tests/regressions/rhbz690819.sh
index 5b29813..0af0b64 100755
--- a/tests/regressions/rhbz690819.sh
+++ b/tests/regressions/rhbz690819.sh
@@ -38,7 +38,7 @@ if [[ "$arch" =~ ^ppc ]]; then
exit 77
fi
-backend="$(../../fish/guestfish get-backend)"
+backend="$(guestfish get-backend)"
if [[ "$backend" =~ ^libvirt ]]; then
echo "$0: test skipped because backend ($backend) is
'libvirt'."
exit 77
@@ -51,9 +51,9 @@ fi
rm -f rhbz690819.img
-../../fish/guestfish sparse rhbz690819.img 100M
+guestfish sparse rhbz690819.img 100M
-../../fish/guestfish <<EOF
+guestfish <<EOF
add-drive-with-if rhbz690819.img ide
run
mkfs ext3 /dev/sda
diff --git a/tests/regressions/rhbz727178.sh b/tests/regressions/rhbz727178.sh
index 90b5994..639fc32 100755
--- a/tests/regressions/rhbz727178.sh
+++ b/tests/regressions/rhbz727178.sh
@@ -23,20 +23,19 @@
set -e
export LANG=C
-guestfish=../../fish/guestfish
output=rhbz727178.output
rm -f binaries.tmp $output
-eval `$guestfish -a /dev/null --listen`
+eval `guestfish -a /dev/null --listen`
-$guestfish --remote -- run
-$guestfish --remote -- debug binaries "" |
+guestfish --remote -- run
+guestfish --remote -- debug binaries "" |
grep -E '^/(bin|sbin|usr/bin|usr/sbin|usr/libexec)/' >
binaries.tmp
while read ex; do
echo ldd $ex
- $guestfish --remote -- -debug ldd $ex
+ guestfish --remote -- -debug ldd $ex
done < binaries.tmp > $output
if grep -E '\bnot found\b|undefined symbol' $output; then
diff --git a/tests/regressions/rhbz789960.sh b/tests/regressions/rhbz789960.sh
index ac66c4a..056b7ed 100755
--- a/tests/regressions/rhbz789960.sh
+++ b/tests/regressions/rhbz789960.sh
@@ -24,7 +24,7 @@ export LANG=C
rm -f test.out
-../../fish/guestfish -a ../guests/fedora.img --ro > test.out <<EOF
+guestfish -a ../guests/fedora.img --ro > test.out <<EOF
run
# Not a device at all, should fail.
diff --git a/tests/regressions/rhbz811649.sh b/tests/regressions/rhbz811649.sh
index cfc7298..d48d2bf 100755
--- a/tests/regressions/rhbz811649.sh
+++ b/tests/regressions/rhbz811649.sh
@@ -36,11 +36,11 @@ filenames[9]='raw:'
rm -f -- rhbz811649.img "${filenames[@]}"
-../../fish/guestfish sparse rhbz811649.img 10M
+guestfish sparse rhbz811649.img 10M
for f in "${filenames[@]}"; do
ln -- rhbz811649.img "$f"
- ../../fish/guestfish <<EOF
+ guestfish <<EOF
add "$f"
run
EOF
diff --git a/tests/regressions/rhbz895904.sh b/tests/regressions/rhbz895904.sh
index f239986..fb7dae9 100755
--- a/tests/regressions/rhbz895904.sh
+++ b/tests/regressions/rhbz895904.sh
@@ -25,7 +25,7 @@ export LANG=C
rm -f rhbz895904.img rhbz895904.out
-../../fish/guestfish -N rhbz895904.img=fs -m /dev/sda1 <<EOF | sort -k 3
> rhbz895904.out
+guestfish -N rhbz895904.img=fs -m /dev/sda1 <<EOF | sort -k 3 >
rhbz895904.out
mkdir /test
touch /test/file1
mkdir /test/subdir
diff --git a/tests/regressions/rhbz909624.sh b/tests/regressions/rhbz909624.sh
index a2e93e4..ad419b9 100755
--- a/tests/regressions/rhbz909624.sh
+++ b/tests/regressions/rhbz909624.sh
@@ -26,7 +26,7 @@
set -e
export LANG=C
-../../fish/guestfish <<EOF
+guestfish <<EOF
add-ro /dev/null
run
diff --git a/tests/regressions/rhbz957772.sh b/tests/regressions/rhbz957772.sh
index d06d47e..553cab8 100755
--- a/tests/regressions/rhbz957772.sh
+++ b/tests/regressions/rhbz957772.sh
@@ -23,7 +23,7 @@
set -e
export LANG=C
-../../fish/guestfish -N rhbz957772.img=fs -m /dev/sda1 <<EOF
+guestfish -N rhbz957772.img=fs -m /dev/sda1 <<EOF
mkdir "/test 1"
touch "/test 2"
tar-out "/test 1" /dev/null
diff --git a/tests/regressions/rhbz975797.sh b/tests/regressions/rhbz975797.sh
index cc66438..ebd23ea 100755
--- a/tests/regressions/rhbz975797.sh
+++ b/tests/regressions/rhbz975797.sh
@@ -38,7 +38,7 @@ if [[ "$arch" =~ ^ppc ]]; then
exit 77
fi
-backend="$(../../fish/guestfish get-backend)"
+backend="$(guestfish get-backend)"
if [[ "$backend" =~ ^libvirt ]]; then
echo "$0: test skipped because backend ($backend) is
'libvirt'."
exit 77
@@ -58,11 +58,11 @@ fi
# Use real disk images here since the code for adding /dev/null may
# take shortcuts.
-../../fish/guestfish sparse rhbz975797-1.img 1G
-../../fish/guestfish sparse rhbz975797-2.img 1G
-../../fish/guestfish sparse rhbz975797-3.img 1G
+guestfish sparse rhbz975797-1.img 1G
+guestfish sparse rhbz975797-2.img 1G
+guestfish sparse rhbz975797-3.img 1G
-$timeout ../../fish/guestfish <<EOF
+$timeout guestfish <<EOF
add-drive rhbz975797-1.img iface:virtio
add-drive rhbz975797-2.img iface:ide
add-drive rhbz975797-3.img
diff --git a/tests/relative-paths/test-relative-paths.sh
b/tests/relative-paths/test-relative-paths.sh
index 67d3181..4924cc3 100755
--- a/tests/relative-paths/test-relative-paths.sh
+++ b/tests/relative-paths/test-relative-paths.sh
@@ -25,7 +25,7 @@ fi
# UML doesn't support qcow2. Conceivably there might be a similar
# problem with UML COW images which would require a separate test.
-if [ "$(../../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: skipping test because uml backend does not support
qcow2"
exit 77
fi
@@ -115,7 +115,7 @@ popd
# codepaths in most backends, so we should test each separately.
for ro in readonly:true readonly:false; do
for prefix in "./" "" "$(pwd)/"; do
- $VG ../../fish/guestfish <<EOF
+ $VG guestfish <<EOF
add-drive ${prefix}overlay1 $ro format:qcow2
add-drive ${prefix}overlay2 $ro format:qcow2
add-drive ${prefix}overlay3 $ro format:qcow2
diff --git a/tests/rsync/test-rsync.sh b/tests/rsync/test-rsync.sh
index 6e792e4..793d59d 100755
--- a/tests/rsync/test-rsync.sh
+++ b/tests/rsync/test-rsync.sh
@@ -22,8 +22,6 @@
unset CDPATH
set -e
-guestfish=../../fish/guestfish
-
if [ -n "$SKIP_TEST_RSYNC_SH" ]; then
echo "$0: test skipped because environment variable is set."
exit 77
@@ -35,13 +33,13 @@ if ! rsync --help >/dev/null 2>&1; then
exit 77
fi
-if [ "$($guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: skipping test because networking is not available in the UML
backend"
exit 77
fi
# If rsync is not available, bail.
-if ! $guestfish -a /dev/null run : available rsync; then
+if ! guestfish -a /dev/null run : available rsync; then
echo "$0: skipping test because rsync is not available in the
appliance"
exit 77
fi
@@ -86,7 +84,7 @@ trap cleanup INT TERM QUIT EXIT
ip=169.254.2.2
user="$(id -un)"
-$guestfish --network -N test-rsync.img=fs -m /dev/sda1 <<EOF
+guestfish --network -N test-rsync.img=fs -m /dev/sda1 <<EOF
mkdir /dir1
rsync-in "rsync://$user@$ip:$port/src/" /dir1/ archive:true
mkdir /dir2
diff --git a/v2v/test-v2v-i-disk.sh b/v2v/test-v2v-i-disk.sh
index dbf6f94..b15e0d0 100755
--- a/v2v/test-v2v-i-disk.sh
+++ b/v2v/test-v2v-i-disk.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_I_DISK_SH" ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support
network"
exit 77
fi
@@ -48,7 +48,7 @@ d=test-v2v-i-disk.d
rm -rf $d
mkdir $d
-$VG ./virt-v2v --debug-gc \
+$VG virt-v2v --debug-gc \
-i disk $f \
-o local -os $d
diff --git a/v2v/test-v2v-i-ova.sh b/v2v/test-v2v-i-ova.sh
index 59fd77b..a0e35a3 100755
--- a/v2v/test-v2v-i-ova.sh
+++ b/v2v/test-v2v-i-ova.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_I_OVA_SH" ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support
network"
exit 77
fi
@@ -68,7 +68,7 @@ tar -cf $ova $ovf $mf $vmdk
rm -rf $ovf $mf $vmdk
popd
-$VG ./virt-v2v --debug-gc \
+$VG virt-v2v --debug-gc \
-i ova $d/$ova \
-o local -of raw -os $d
diff --git a/v2v/test-v2v-machine-readable.sh b/v2v/test-v2v-machine-readable.sh
index 5771d9e..3e94ae5 100755
--- a/v2v/test-v2v-machine-readable.sh
+++ b/v2v/test-v2v-machine-readable.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_MACHINE_READABLE_SH" ]; then
exit 77
fi
-$VG ./virt-v2v --debug-gc --machine-readable > test-v2v-machine-readable.out
+$VG virt-v2v --debug-gc --machine-readable > test-v2v-machine-readable.out
grep virt-v2v test-v2v-machine-readable.out
grep libguestfs-rewrite test-v2v-machine-readable.out
diff --git a/v2v/test-v2v-networks-and-bridges.sh
b/v2v/test-v2v-networks-and-bridges.sh
index d7b7749..5974dcb 100755
--- a/v2v/test-v2v-networks-and-bridges.sh
+++ b/v2v/test-v2v-networks-and-bridges.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_NETWORKS_AND_BRIDGES_SH" ];
then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support
network"
exit 77
fi
@@ -52,7 +52,7 @@ rm -rf $d
mkdir $d
# Use --no-copy because we only care about metadata for this test.
-$VG ./virt-v2v --debug-gc \
+$VG virt-v2v --debug-gc \
-i libvirt -ic "$libvirt_uri" windows \
-o local -os $d --no-copy \
--bridge "VM Network:bridge1" \
diff --git a/v2v/test-v2v-no-copy.sh b/v2v/test-v2v-no-copy.sh
index a7b97d0..35177c9 100755
--- a/v2v/test-v2v-no-copy.sh
+++ b/v2v/test-v2v-no-copy.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_NO_COPY_SH" ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support
network"
exit 77
fi
@@ -52,7 +52,7 @@ rm -rf $d
mkdir $d
# No copy with -o local.
-$VG ./virt-v2v --debug-gc --no-copy \
+$VG virt-v2v --debug-gc --no-copy \
-i libvirt -ic "$libvirt_uri" windows \
-o local -os $d
@@ -68,7 +68,7 @@ mkdir $d/12345678-1234-1234-1234-123456789abc/images
mkdir $d/12345678-1234-1234-1234-123456789abc/master
mkdir $d/12345678-1234-1234-1234-123456789abc/master/vms
-$VG ./virt-v2v --debug-gc --no-copy \
+$VG virt-v2v --debug-gc --no-copy \
-i libvirt -ic "$libvirt_uri" windows \
-o rhev -os $d
diff --git a/v2v/test-v2v-o-glance.sh b/v2v/test-v2v-o-glance.sh
index 4960f69..121177f 100755
--- a/v2v/test-v2v-o-glance.sh
+++ b/v2v/test-v2v-o-glance.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_O_GLANCE_SH" ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support
network"
exit 77
fi
@@ -51,7 +51,7 @@ fi
# glance binary.
ln -sf "$(which echo)" glance
-$VG ./virt-v2v --debug-gc \
+$VG virt-v2v --debug-gc \
-i libvirt -ic "$libvirt_uri" windows \
-o glance -on test
diff --git a/v2v/test-v2v-o-libvirt.sh b/v2v/test-v2v-o-libvirt.sh
index 60f53c0..77b38e0 100755
--- a/v2v/test-v2v-o-libvirt.sh
+++ b/v2v/test-v2v-o-libvirt.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_O_LIBVIRT_SH" ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support
network"
exit 77
fi
@@ -66,7 +66,7 @@ mkdir $d
virsh pool-destroy test-v2v-libvirt ||:
virsh pool-create-as test-v2v-libvirt dir - - - - $(pwd)/$d
-$VG ./virt-v2v --debug-gc \
+$VG virt-v2v --debug-gc \
-i libvirt -ic "$libvirt_uri" windows \
-o libvirt -os test-v2v-libvirt -on $guestname
diff --git a/v2v/test-v2v-o-null.sh b/v2v/test-v2v-o-null.sh
index 8b2c612..9ed581b 100755
--- a/v2v/test-v2v-o-null.sh
+++ b/v2v/test-v2v-o-null.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_O_NULL_SH" ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support
network"
exit 77
fi
@@ -47,6 +47,6 @@ if ! test -r $virt_tools_data_dir/rhsrvany.exe; then
exit 77
fi
-$VG ./virt-v2v --debug-gc \
+$VG virt-v2v --debug-gc \
-i libvirt -ic "$libvirt_uri" windows \
-o null
diff --git a/v2v/test-v2v-o-rhev.sh b/v2v/test-v2v-o-rhev.sh
index 6dcbb1a..6d21320 100755
--- a/v2v/test-v2v-o-rhev.sh
+++ b/v2v/test-v2v-o-rhev.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_O_RHEV_SH" ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support
network"
exit 77
fi
@@ -57,7 +57,7 @@ mkdir $d/12345678-1234-1234-1234-123456789abc/images
mkdir $d/12345678-1234-1234-1234-123456789abc/master
mkdir $d/12345678-1234-1234-1234-123456789abc/master/vms
-$VG ./virt-v2v --debug-gc \
+$VG virt-v2v --debug-gc \
-i libvirt -ic "$libvirt_uri" windows \
-o rhev -os $d
diff --git a/v2v/test-v2v-o-vdsm-options.sh b/v2v/test-v2v-o-vdsm-options.sh
index e5bf764..cf8fe06 100755
--- a/v2v/test-v2v-o-vdsm-options.sh
+++ b/v2v/test-v2v-o-vdsm-options.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_O_VDSM_OPTIONS_SH" ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support
network"
exit 77
fi
@@ -62,7 +62,7 @@ mkdir $d/12345678-1234-1234-1234-123456789abc/master/vms/VM
# The --vdsm-*-uuid options don't actually check that the
# parameter is a UUID, which is useful here.
-$VG ./virt-v2v --debug-gc \
+$VG virt-v2v --debug-gc \
-i libvirt -ic "$libvirt_uri" windows \
-o vdsm -os $d \
--vmtype desktop \
diff --git a/v2v/test-v2v-of-option.sh b/v2v/test-v2v-of-option.sh
index 07e7e63..27441cf 100755
--- a/v2v/test-v2v-of-option.sh
+++ b/v2v/test-v2v-of-option.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_OF_OPTION_SH" ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support network or
qcow2"
exit 77
fi
@@ -51,12 +51,12 @@ d=test-v2v-windows-conversion.d
rm -rf $d
mkdir $d
-$VG ./virt-v2v --debug-gc \
+$VG virt-v2v --debug-gc \
-i libvirt -ic "$libvirt_uri" windows \
-o local -os $d -of qcow2
# Test the disk is qcow2 format.
-if [ "$(../fish/guestfish disk-format $d/windows-sda)" != qcow2 ];
then
+if [ "$(guestfish disk-format $d/windows-sda)" != qcow2 ]; then
echo "$0: test failed: output is not qcow2"
exit 1
fi
diff --git a/v2v/test-v2v-on-option.sh b/v2v/test-v2v-on-option.sh
index 0591e91..e3edb67 100755
--- a/v2v/test-v2v-on-option.sh
+++ b/v2v/test-v2v-on-option.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_ON_OPTION_SH" ]; then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support
network"
exit 77
fi
@@ -51,7 +51,7 @@ d=test-v2v-windows-conversion.d
rm -rf $d
mkdir $d
-$VG ./virt-v2v --debug-gc \
+$VG virt-v2v --debug-gc \
-i libvirt -ic "$libvirt_uri" windows \
-o local -os $d -on this-is-not-windows
diff --git a/v2v/test-v2v-print-source.sh b/v2v/test-v2v-print-source.sh
index 9cd96d6..a3baca7 100755
--- a/v2v/test-v2v-print-source.sh
+++ b/v2v/test-v2v-print-source.sh
@@ -40,7 +40,7 @@ d=test-v2v-print-source.d
rm -rf $d
mkdir $d
-$VG ./virt-v2v --debug-gc \
+$VG virt-v2v --debug-gc \
-i libvirt -ic "$libvirt_uri" windows \
-o local -os $d \
--print-source > $d/output
diff --git a/v2v/test-v2v-real-conversions.sh b/v2v/test-v2v-real-conversions.sh
index 9c1c281..e4e4a67 100755
--- a/v2v/test-v2v-real-conversions.sh
+++ b/v2v/test-v2v-real-conversions.sh
@@ -58,7 +58,7 @@ for file in *.img; do
</domain>
EOF
- ./virt-v2v --debug-gc \
+ virt-v2v --debug-gc \
-i libvirtxml $d/$n-input.xml \
-o local -os $d
diff --git a/v2v/test-v2v-windows-conversion.sh
b/v2v/test-v2v-windows-conversion.sh
index 7525251..7e8e628 100755
--- a/v2v/test-v2v-windows-conversion.sh
+++ b/v2v/test-v2v-windows-conversion.sh
@@ -27,7 +27,7 @@ if [ -n "$SKIP_TEST_V2V_WINDOWS_CONVERSION_SH" ];
then
exit 77
fi
-if [ "$(../fish/guestfish get-backend)" = "uml" ]; then
+if [ "$(guestfish get-backend)" = "uml" ]; then
echo "$0: test skipped because UML backend does not support
network"
exit 77
fi
@@ -61,7 +61,7 @@ d=test-v2v-windows-conversion.d
rm -rf $d
mkdir $d
-$VG ./virt-v2v --debug-gc \
+$VG virt-v2v --debug-gc \
-i libvirt -ic "$libvirt_uri" windows \
-o local -os $d \
--root $root
@@ -71,7 +71,7 @@ test -f $d/windows.xml
test -f $d/windows-sda
# Test some aspects of the target disk image.
-../fish/guestfish --ro -a $d/windows-sda -i <<EOF
+guestfish --ro -a $d/windows-sda -i <<EOF
is-dir "/Program Files/Red Hat/Firstboot"
is-file "/Program Files/Red Hat/Firstboot/firstboot.bat"
is-dir "/Program Files/Red Hat/Firstboot/scripts"
--
2.0.4
Richard W.M. Jones
2014-Sep-16 14:05 UTC
[Libguestfs] [PATCH 2/3] generator: Change type of 'tests' to 'c_api_tests'.
Just a code refactoring, has no functional effect.
---
generator/main.ml | 2 +-
generator/tests_c_api.ml | 4 ++--
generator/types.ml | 12 ++++++------
generator/utils.mli | 2 +-
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/generator/main.ml b/generator/main.ml
index 63ddb9a..c0ad146 100644
--- a/generator/main.ml
+++ b/generator/main.ml
@@ -115,7 +115,7 @@ Run it from the top source directory using the command
output_to "daemon/names.c" generate_daemon_names;
output_to "daemon/optgroups.c" generate_daemon_optgroups_c;
output_to "daemon/optgroups.h" generate_daemon_optgroups_h;
- output_to "tests/c-api/tests.c" generate_tests;
+ output_to "tests/c-api/tests.c" generate_c_api_tests;
output_to "fish/cmds-gperf.gperf" generate_fish_cmds_gperf;
output_to "fish/cmds.c" generate_fish_cmds;
output_to "fish/completion.c" generate_fish_completion;
diff --git a/generator/tests_c_api.ml b/generator/tests_c_api.ml
index c0ebcb9..88aa07e 100644
--- a/generator/tests_c_api.ml
+++ b/generator/tests_c_api.ml
@@ -28,8 +28,8 @@ open Optgroups
open Actions
open Structs
-(* Generate the tests. *)
-let rec generate_tests () +(* Generate the C API tests. *)
+let rec generate_c_api_tests () generate_header CStyle GPLv2plus;
pr "\
diff --git a/generator/types.ml b/generator/types.ml
index 48ac32a..63aa235 100644
--- a/generator/types.ml
+++ b/generator/types.ml
@@ -208,8 +208,8 @@ type fish_output_t | FishOutputHexadecimal (* for int
return, print in hex *)
(* See guestfs(3)/EXTENDING LIBGUESTFS. *)
-type tests = (test_init * test_prereq * test * test_cleanup) list
-and test +type c_api_tests = (c_api_test_init * c_api_test_prereq * c_api_test
* c_api_test_cleanup) list
+and c_api_test (* Run the command sequence and just expect nothing to
fail. *)
| TestRun of seq
@@ -241,7 +241,7 @@ and test | TestLastFail of seq
(* Test prerequisites. *)
-and test_prereq +and c_api_test_prereq (* Test always runs. *)
| Always
@@ -254,7 +254,7 @@ and test_prereq | IfAvailable of string
(* Some initial scenarios for testing. *)
-and test_init +and c_api_test_init (* Do nothing, block devices could
contain random stuff including
* LVM PVs, and some filesystems might be mounted. This is usually
* a bad idea.
@@ -309,7 +309,7 @@ and test_init | InitScratchFS
(* Cleanup commands which are run whether the test succeeds or fails. *)
-and test_cleanup = cmd list
+and c_api_test_cleanup = cmd list
(* Sequence of commands for testing. *)
and seq = cmd list
@@ -328,7 +328,7 @@ type action = {
name : string; (* name, not including "guestfs_"
*)
style : style; (* args and return value *)
proc_nr : int option; (* proc number, None for non-daemon *)
- tests : tests; (* tests *)
+ tests : c_api_tests; (* C API tests *)
test_excuse : string; (* if there's no tests ... *)
shortdesc : string; (* single line description *)
longdesc : string; (* longer documentation *)
diff --git a/generator/utils.mli b/generator/utils.mli
index c96bde4..8dca20b 100644
--- a/generator/utils.mli
+++ b/generator/utils.mli
@@ -99,7 +99,7 @@ val name_of_argt : Types.argt -> string
val name_of_optargt : Types.optargt -> string
(** Extract optional argument name. *)
-val seq_of_test : Types.test -> Types.seq
+val seq_of_test : Types.c_api_test -> Types.seq
(** Extract test sequence from a test. *)
val c_quote : string -> string
--
2.0.4
Richard W.M. Jones
2014-Sep-16 14:05 UTC
[Libguestfs] [PATCH 3/3] tests: Introduce test harness for running tests.
We would like to have a more flexible way to run tests, including
running them on an installed copy of libguestfs, running them in
parallel, and being able to express dependencies and ordering between
tests and test files properly.
Therefore introduce a test harness (generator/test-harness) program
which can run tests either from the locally built copy, or from an
installed copy of the tests (in @libdir@/guestfs/tests).
The test harness is backwards compatible on the command line, ie.
'make check', 'make -C inspector check-valgrind' etc. will still
work.
But in addition, you can now run the tests on an installed copy of
libguestfs by doing:
cd /usr/lib/guestfs/tests
./test-harness
The test-harness script supports various options, see 'test-harness
--help'
for full details.
Other notable features:
- Checking SKIP_* environment variables in tests is no longer
necessary. The test harness deals with these.
- Every test runs in its own temporary directory. There is no need
to clean up output files. On the other hand, tests must use
$srcdir to refer to test data.
This is only implemented for a single directory at the moment
(ie. inspector/)
---
.gitignore | 3 +-
Makefile.am | 1 +
common-rules.mk | 3 +
generator/Makefile.am | 2 +
generator/main.ml | 9 +
generator/tests.ml | 560 ++++++++++++++++++++++++++
generator/types.ml | 9 +
inspector/Makefile.am | 17 +-
inspector/test-virt-inspector-local-guests.sh | 25 ++
inspector/test-virt-inspector.sh | 12 +-
inspector/test-xmllint.sh.in | 5 +
11 files changed, 623 insertions(+), 23 deletions(-)
create mode 100644 generator/tests.ml
create mode 100755 inspector/test-virt-inspector-local-guests.sh
diff --git a/.gitignore b/.gitignore
index 86158eb..342b06a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -26,6 +26,7 @@ cscope.out
.libs
Makefile
Makefile.in
+tests.mk
/.sc-*
/ABOUT-NLS
@@ -262,7 +263,6 @@ Makefile.in
/html/virt-tar-out.1.html
/html/virt-v2v.1.html
/html/virt-win-reg.1.html
-/inspector/actual-*.xml
/inspector/stamp-virt-inspector.pod
/inspector/test-xmllint.sh
/inspector/virt-inspector
@@ -474,6 +474,7 @@ Makefile.in
/sysprep/virt-sysprep.1
/test.err
/test.out
+/test-harness
/tests/c-api/test-add-drive-opts
/tests/c-api/test-add-libvirt-dom
/tests/c-api/test-backend-settings
diff --git a/Makefile.am b/Makefile.am
index 097ba80..11b7a2d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -201,6 +201,7 @@ EXTRA_DIST = \
logo/fish-5yrs.svg logo/fish-5yrs.png \
logo/virt-builder.svg \
m4/.gitignore \
+ test-harness \
tests/run-xml-to-junit.sh \
tests/run-xml-to-junit.xsl \
tmp/.gitignore \
diff --git a/common-rules.mk b/common-rules.mk
index 312107e..e9fc7c6 100644
--- a/common-rules.mk
+++ b/common-rules.mk
@@ -27,3 +27,6 @@ builddir ?= @builddir@
abs_builddir ?= @abs_builddir@
srcdir ?= @srcdir@
abs_srcdir ?= @abs_srcdir@
+
+# Tests directory.
+testsdir = $(libdir)/guestfs/tests
diff --git a/generator/Makefile.am b/generator/Makefile.am
index 3716c77..610b078 100644
--- a/generator/Makefile.am
+++ b/generator/Makefile.am
@@ -52,6 +52,7 @@ sources = \
ruby.ml \
structs.ml \
structs.mli \
+ tests.ml \
tests_c_api.ml \
types.ml \
utils.ml \
@@ -71,6 +72,7 @@ objects = \
pr.cmo \
docstrings.cmo \
checks.cmo \
+ tests.cmo \
c.cmo \
xdr.cmo \
daemon.cmo \
diff --git a/generator/main.ml b/generator/main.ml
index c0ad146..3aef124 100644
--- a/generator/main.ml
+++ b/generator/main.ml
@@ -30,6 +30,7 @@ open Types
open C
open Xdr
open Daemon
+open Tests
open Tests_c_api
open Fish
open Ocaml
@@ -48,6 +49,8 @@ open Bindtests
open Errnostring
open Customize
+let (//) = Filename.concat
+
let perror msg = function
| Unix_error (err, _, _) ->
eprintf "%s: %s\n" msg (error_message err)
@@ -214,6 +217,12 @@ Run it from the top source directory using the command
output_to "customize/customize-synopsis.pod"
generate_customize_synopsis_pod;
output_to "customize/customize-options.pod"
generate_customize_options_pod;
+ List.iter (
+ fun (dir, tests) ->
+ output_to (dir // "tests.mk") (generate_tests_mk dir tests)
+ ) tests;
+ output_to ~perm:0o555 "test-harness" generate_test_harness;
+
(* Generate the list of files generated -- last. *)
printf "generated %d lines of code\n" (get_lines_generated ());
let files = List.sort compare (get_files_generated ()) in
diff --git a/generator/tests.ml b/generator/tests.ml
new file mode 100644
index 0000000..838f282
--- /dev/null
+++ b/generator/tests.ml
@@ -0,0 +1,560 @@
+(* libguestfs
+ * Copyright (C) 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
+ *)
+
+(* Please read generator/README first. *)
+
+open Printf
+
+open Types
+open Utils
+open Pr
+open Docstrings
+
+(* Tests and their dependencies. *)
+let tests = [
+ "inspector", {
+ check = [
+ "test-virt-inspector.sh";
+ ];
+ check_fast = [
+ "test-xmllint.sh";
+ ];
+ check_slow = [];
+ check_local_guests = [
+ "test-virt-inspector-local-guests.sh";
+ ];
+ check_data = [
+ "example-debian-netinst-cd.xml";
+ "example-debian.xml";
+ "example-fedora-dvd.xml";
+ "example-fedora-netinst-cd.xml";
+ "example-fedora.xml";
+ "example-rhel-6-dvd.xml";
+ "example-rhel-6-netinst-cd.xml";
+ "example-rhel-6.xml";
+ "example-ubuntu-live-cd.xml";
+ "example-ubuntu.xml";
+ "example-windows-2003-x64-cd.xml";
+ "example-windows-2003-x86-cd.xml";
+ "example-windows.xml";
+ "example-windows-xp-cd.xml";
+ "expected-debian.img.xml";
+ "expected-fedora.img.xml";
+ "expected-ubuntu.img.xml";
+ "expected-windows.img.xml";
+ ]
+ };
+
+]
+
+(* Generate the tests.mk files in each subdirectory. *)
+let generate_tests_mk dir tests () + generate_header HashStyle GPLv2plus;
+
+ let all_test_files + tests.check @ tests.check_fast @ tests.check_slow @
tests.check_local_guests
+ in
+
+ pr "localtestsdir = $(alltestsdir)/%s\n" dir;
+
+ if tests.check_data <> [] then (
+ pr "\n";
+ pr "localtests_DATA =";
+ List.iter (fun n -> pr " \\\n\t%s" n) tests.check_data;
+ pr "\n";
+ );
+
+ pr "\n";
+ pr "localtests_SCRIPTS =";
+ List.iter (fun n -> pr " \\\n\t%s" n) all_test_files;
+ pr "\n";
+
+ (* Create rules so that 'make -C dir check' etc will do something. *)
+ if tests.check <> [] then (
+ pr "\n";
+ (* Note that we cannot create a simple 'check' target since
+ * automake will (silently) overrule it.
+ *)
+ pr "TESTS_ENVIRONMENT = $(top_builddir)/run\n";
+ pr "TESTS = $(top_builddir)/test-harness\n";
+ pr "\n";
+ pr "check-valgrind:\n";
+ pr "\t$(top_builddir)/run $(top_builddir)/test-harness
--valgrind\n";
+ pr "\n";
+ pr "check-direct:\n";
+ pr "\t$(top_builddir)/run $(top_builddir)/test-harness
--direct\n";
+ pr "\n";
+ pr "check-valgrind-direct:\n";
+ pr "\t$(top_builddir)/run $(top_builddir)/test-harness --valgrind
--direct\n";
+ pr "\n";
+ pr "check-uml:\n";
+ pr "\t$(top_builddir)/run $(top_builddir)/test-harness --uml\n";
+ pr "\n";
+ pr "check-valgrind-uml:\n";
+ pr "\t$(top_builddir)/run $(top_builddir)/test-harness --valgrind
--uml\n";
+ pr "\n";
+ pr "check-with-upstream-qemu:\n";
+ pr "\t$(top_builddir)/run $(top_builddir)/test-harness
--with-upstream-qemu\n";
+ pr "\n";
+ pr "check-with-upstream-libvirt:\n";
+ pr "\t$(top_builddir)/run $(top_builddir)/test-harness
--with-upstream-libvirt\n";
+ );
+
+ if tests.check_fast <> [] then (
+ pr "\n";
+ pr "check-fast:\n";
+ pr "\t$(top_builddir)/run $(top_builddir)/test-harness --fast\n"
+ );
+
+ if tests.check_slow <> [] then (
+ pr "\n";
+ pr "check-slow:\n";
+ pr "\t$(top_builddir)/run $(top_builddir)/test-harness --slow\n"
+ );
+
+ if tests.check_local_guests <> [] then (
+ pr "\n";
+ pr "check-local-guests:\n";
+ pr "\t$(top_builddir)/run $(top_builddir)/test-harness
--local-guests\n";
+ pr "\n";
+ pr "check-valgrind-local-guests:\n";
+ pr "\t$(top_builddir)/run $(top_builddir)/test-harness --valgrind
--local-guests\n"
+ );
+
+ pr "\n";
+ pr "EXTRA_DIST += tests.mk\n"
+
+let generate_test_harness () + pr "#!/bin/bash -\n";
+ generate_header HashStyle GPLv2plus;
+
+ pr "\
+unset CDPATH
+
+usage ()
+{
+ echo \"test-harness: Run the libguestfs test suite, or parts of
it.\"
+ echo
+ echo \"Usage:\"
+ echo \" $0 [--options] [directory]\"
+ echo
+ echo \"Normally tests in the current directory are run. If the
current\"
+ echo \"directory is the top level of the test suite then the whole
test\"
+ echo \"suite is run. If the current directory is a leaf directory,
then\"
+ echo \"only tests in that directory are run. If you specify a
directory\"
+ echo \"name on the command line, then we 'cd' into that
directory first.\"
+ echo
+ echo \"Options to select which tests to run:\"
+ echo \" --fast Run only test which don't need the
appliance\"
+ echo \" --slow Run only very long-running tests\"
+ echo \"(if neither --fast or --slow, then --fast + normal tests are
run)\"
+ echo \" --local-guests\"
+ echo \" Run tests that use locally installed guests
r/o\"
+ echo
+ echo \"Options to run the selected tests under different
conditions:\"
+ echo \" --debug Run tests with debugging enabled
(recommended)\"
+ echo \" --valgrind Run tests under valgrind\"
+ echo \" --direct Run tests using the direct backend\"
+ echo \" --uml[=UML] Run tests using the UML backend [default
~/d/linux-um/vmlinux]\"
+ echo \" --with-upstream-qemu[=QEMU]\"
+ echo \" Run tests using upstream qemu\"
+ echo \" [default
~/d/qemu/x86_64-softmmu/qemu-system-x86_64]\"
+ echo \" --with-upstream-libvirt[=LIBVIRTDIR]\"
+ echo \" Run tests using upstream libvirt [default
~/d/libvirt]\"
+ exit 0
+}
+
+TEMP=`getopt \\
+ -o '?' \\
+ -l
'help,debug,direct,fast,local-guests,slow,uml::,valgrind,with-upstream-libvirt::,with-upstream-qemu::'
\\
+ -- \"$@\"`
+if [ $? != 0 ]; then
+ echo \"$0: problem parsing the command line arguments\"
+ exit 1
+fi
+eval set -- \"$TEMP\"
+
+fast=0
+normal=0
+slow=0
+local_guests=0
+
+while true ; do
+ case \"$1\" in
+ --debug)
+ debug=1
+ shift
+ ;;
+ --direct)
+ direct=1
+ shift
+ ;;
+ --fast)
+ fast=1
+ shift
+ ;;
+ --local-guests)
+ local_guests=1
+ shift
+ ;;
+ --slow)
+ slow=1
+ shift
+ ;;
+ --uml)
+ if [ \"x$1\" != \"x\" ]; then
+ uml=$HOME/d/linux-um/vmlinux
+ else
+ uml=\"$1\"
+ fi
+ shift 2
+ ;;
+ --valgrind)
+ valgrind=1
+ shift
+ ;;
+ --with-upstream-libvirt)
+ if [ \"x$1\" != \"x\" ]; then
+ libvirt=$HOME/d/libvirt
+ else
+ libvirt=\"$1\"
+ fi
+ shift 2
+ ;;
+ --with-upstream-qemu)
+ if [ \"x$1\" != \"x\" ]; then
+ qemu=$HOME/d/qemu/x86_64-softmmu/qemu-system-x86_64
+ else
+ qemu=\"$1\"
+ fi
+ shift 2
+ ;;
+ --help)
+ usage
+ ;;
+ --)
+ shift
+ break
+ ;;
+ *)
+ echo \"$0: internal error ($1)\"
+ exit 1
+ ;;
+ esac
+done
+
+# Some combinations are not permitted.
+if [ $(( fast + slow + local_guests )) -gt 1 ]; then
+ echo \"$0: cannot use --fast, --slow and --local-guests options
together\"
+ exit 1
+fi
+
+# If none of the selection options are used, select fast + normal.
+if [ $(( fast + slow + local_guests )) -eq 0 ]; then
+ fast=1
+ normal=1
+fi
+
+# --direct and --uml cannot be combined.
+if [ -n \"$direct\" -a -n \"$uml\" ]; then
+ echo \"$0: cannot use --direct and --uml options together\"
+ exit 1
+fi
+
+# A single parameter on the command line means start the tests in
+# that directory.
+if [ \"$#\" -eq 1 ]; then
+ cd \"$1\"
+elif [ \"$#\" -gt 1 ]; then
+ echo \"$0: too many command line arguments\"
+ exit 1
+fi
+
+# Debugging.
+if [ -n \"$debug\" ]; then
+ export LIBGUESTFS_DEBUG=1
+ export LIBGUESTFS_TRACE=1
+fi
+
+# Direct.
+if [ -n \"$direct\" ]; then
+ export LIBGUESTFS_BACKEND=direct
+fi
+
+# UML
+if [ -n \"$uml\" ]; then
+ export LIBGUESTFS_BACKEND=uml
+ export LIBGUESTFS_HV=\"$uml\"
+fi
+
+# Valgrind - just check it exists here.
+if [ -n \"$valgrind\" ]; then
+ if ! valgrind --help >/dev/null 2>&1; then
+ echo \"$0: valgrind is not installed\"
+ exit 1
+ fi
+fi
+
+# Timeouts.
+timeout_period=4h
+timeout_kill=30s
+
+# Do we have Padraig's timeout utility (from coreutils)?
+if timeout --help >/dev/null 2>&1; then
+ # Must use the --foreground option (RHBZ#1025269).
+ if timeout --foreground 2 sleep 0 >/dev/null 2>&1; then
+ # Does this version of timeout have the -k option? (Not on RHEL 6)
+ if timeout -k 10s 10s true >/dev/null 2>&1; then
+ timeout=\"timeout --foreground -k $timeout_kill
$timeout_period\"
+ fi
+ fi
+fi
+
+# QEMU.
+if [ -n \"$qemu\" ]; then
+ export LIBGUESTFS_HV=\"$qemu\"
+fi
+
+# libvirt.
+if [ -n \"$libvirt\" ]; then
+ libvirt=\"$libvirt/run\"
+ if [ ! -x \"$libvirt\" ]; then
+ echo \"$0: --with-libvirt: script '$libvirt' not
found\"
+ exit 1
+ fi
+fi
+
+# Count total tests, skipped, timed out, errors.
+total=0
+skipped=0
+timedout=0
+errors=0
+
+# Wrapper function to run one ordinary test.
+run_one_test ()
+{
+ if [ -n \"$valgrind\" ]; then
+ export VG=\"valgrind --vgdb=no
--log-file=/tmp/valgrind-%%q{T}-%%p.log --leak-check=full --error-exitcode=119
--suppressions=$abs_top_srcdir/valgrind-suppressions\"
+ else
+ unset VG
+ fi
+
+ # The test runs inside a temporary directory which is deleted
+ # as soon as the test finishes, UNLESS it fails in which case we
+ # leave it around for you to examine.
+ tmpdir=\"$(mktemp -d)\"
+
+ echo \"test-harness:\" \"$@\"
+ pushd \"$tmpdir\" >/dev/null
+ start_t=\"$(date +'%%s')\"
+ $timeout $libvirt \"$@\" >output 2>&1
+ r=$?
+ end_t=\"$(date +'%%s')\"
+ popd >/dev/null
+
+ ((total++))
+
+ case $r in
+ 0)
+ echo \"test-harness:\" \"$@\" \"took $((
$end_t - $start_t )) second(s)\"
+ rm -r \"$tmpdir\"
+ ;;
+ 77)
+ ((skipped++))
+ cat $tmpdir/output
+ rm -r \"$tmpdir\"
+ ;;
+ 124)
+ ((timedout++))
+ cat $tmpdir/output
+ echo \"$0: command timed out after $timeout_period\"
+ rm -r \"$tmpdir\"
+ ;;
+ *)
+ ((errors++))
+ cat $tmpdir/output
+ echo \"$0: command failed with exit code $r\"
+ echo \"$0: test results left in $tmpdir\"
+ ;;
+ esac
+}
+
+# Wrapper function to run one 'local guests' test.
+run_local_guests_test ()
+{
+ run_one_test \"$1\" $( $top_builddir/pick-guests.pl 5 )
+}
+
+";
+
+ (* Define shell functions to run the tests in one subdirectory. *)
+ List.iter (
+ fun (dir, tests) ->
+ let dir_safe = replace_char dir '/' '_' in
+
+ (* Calculate a ../.. path to take us to the top build directory. *)
+ let dot_dot = ref ".." in
+ for i = 0 to String.length dir-1 do
+ if dir.[i] = '/' then dot_dot := !dot_dot ^ "/.."
+ done;
+ let dot_dot = !dot_dot in
+
+ pr "\
+run_%s ()
+{
+ echo \"test-harness: entering directory %s\"
+
+ top_builddir=\"$(cd %s; pwd)\"
+ # Was srcdir passed by automake?
+ if [ -n \"$srcdir\" -a \"$srcdir\" != \".\"
]; then
+ top_srcdir=\"(cd $top_builddir; cd $srcdir; pwd)\"
+ else
+ top_srcdir=\"$top_builddir\"
+ fi
+ builddir=\"$top_builddir/%s\"
+ srcdir=\"$top_srcdir/%s\"
+ abs_top_srcdir=\"$top_srcdir\"
+ abs_top_builddir=\"$top_builddir\"
+ abs_srcdir=\"$srcdir\"
+ abs_builddir=\"$builddir\"
+ export srcdir builddir top_srcdir top_builddir
+ export abs_srcdir abs_builddir abs_top_srcdir abs_top_builddir
+
+ # XXX Not set correctly yet.
+ datadir=\"$top_builddir/tests/guests\"
+ export datadir
+
+" dir dir_safe dot_dot dir dir;
+
+ let emit_tests run_wrapper + List.iter (
+ fun name ->
+ let skip_name = replace_char name '-' '_' in
+ let skip_name = replace_char skip_name '.' '_' in
+ let skip_name = "SKIP_" ^ String.uppercase skip_name in
+ pr " if [ -n \"$%s\" ]; then\n"
skip_name;
+ pr " ((skipped++))\n";
+ pr " echo \"test-harness: %s
skipped\"\n" name;
+ pr " else\n";
+ pr " %s \"%s\"\n" run_wrapper name;
+ pr " fi\n";
+ )
+ in
+
+ if tests.check_fast <> [] then (
+ pr " if [ \"$fast\" -eq 1 ]; then\n";
+ emit_tests "run_one_test" tests.check_fast;
+ pr " fi\n"
+ );
+ if tests.check <> [] then (
+ pr " if [ \"$normal\" -eq 1 ]; then\n";
+ emit_tests "run_one_test" tests.check;
+ pr " fi\n"
+ );
+ if tests.check_slow <> [] then (
+ pr " if [ \"$slow\" -eq 1 ]; then\n";
+ emit_tests "run_one_test" tests.check_slow;
+ pr " fi\n"
+ );
+ if tests.check_local_guests <> [] then (
+ pr " if [ \"$local_guests\" -eq 1 ]; then\n";
+ emit_tests "run_local_guests_test" tests.check_local_guests;
+ pr " fi\n"
+ );
+ pr "\n";
+ pr " echo \"test-harness: leaving directory
%s\"\n" dir;
+ pr "}\n";
+ pr "\n"
+ ) tests;
+
+ (* Define a shell function 'run_all_tests' which runs all of the
+ * above tests.
+ *)
+ pr "run_all_tests ()\n";
+ pr "{\n";
+ List.iter (
+ fun (dir, _) ->
+ let dir_safe = replace_char dir '/' '_' in
+ pr " pushd %s >/dev/null\n" dir;
+ pr " run_%s\n" dir_safe;
+ pr " popd >/dev/null\n";
+ ) tests;
+ pr "}\n";
+ pr "\n";
+
+ (* Define a shell function 'run_subdirectory_tests' which has to
+ * work out which subdir it is in, then run only the tests from that
+ * subdirectory.
+ *)
+ pr "run_subdirectory_tests ()\n";
+ pr "{\n";
+ pr " b=\"$(basename $(pwd))\"\n";
+ pr " if false; then : ;\n";
+ List.iter (
+ fun (dir, tests) ->
+ let dir_safe = replace_char dir '/' '_' in
+
+ (* Match just the last element of the path with the basename ... *)
+ let dir_base + try
+ let i = String.rindex dir '/' in
+ String.sub dir (i+1) (String.length dir - (i+1))
+ with Not_found -> dir in
+ (* ... and any file in the directory. *)
+ let any_file + if tests.check <> [] then List.hd tests.check
+ else if tests.check_fast <> [] then List.hd tests.check_fast
+ else if tests.check_slow <> [] then List.hd tests.check_slow
+ else if tests.check_local_guests <> [] then
+ List.hd tests.check_local_guests
+ else (
+ assert (tests.check_data <> []);
+ List.hd tests.check_data
+ ) in
+
+ pr " elif [ \"$b\" = \"%s\" -a -f
\"%s\" ]; then\n" dir_base any_file;
+ pr " run_%s\n" dir_safe;
+ ) tests;
+ pr " else\n";
+ pr " echo \"$0: current directory ($b) is not a libguestfs
test directory.\"\n";
+ pr " exit 1\n";
+ pr " fi\n";
+ pr "}\n";
+ pr "\n";
+
+ pr "\
+# Are we in the top-level directory of the test suite, or
+# in a subdirectory? Top-level means run the whole suite.
+if [ -x test-harness -a -d inspector ]; then
+ run_all_tests
+else
+ run_subdirectory_tests
+fi
+
+echo \"--------------------------------------------------\"
+echo \"Test summary\"
+echo \"--------------------------------------------------\"
+echo \"Total tests run . . . . . . $total\"
+echo \"Errors . . . . . . . . . . $errors\"
+echo \"Timed out . . . . . . . . . $timedout\"
+echo \"Skipped . . . . . . . . . . $skipped\"
+echo \"--------------------------------------------------\"
+if [ $errors -gt 0 -o $timedout -gt 0 ]; then
+ exit 1
+fi
+"
diff --git a/generator/types.ml b/generator/types.ml
index 63aa235..3f1f682 100644
--- a/generator/types.ml
+++ b/generator/types.ml
@@ -207,6 +207,15 @@ type fish_output_t | FishOutputOctal (* for int
return, print in octal *)
| FishOutputHexadecimal (* for int return, print in hex *)
+type test = {
+ check : string list;
+ (* "fast" here means the appliance is not needed *)
+ check_fast : string list;
+ check_slow : string list;
+ check_local_guests : string list;
+ check_data : string list;
+}
+
(* See guestfs(3)/EXTENDING LIBGUESTFS. *)
type c_api_tests = (c_api_test_init * c_api_test_prereq * c_api_test *
c_api_test_cleanup) list
and c_api_test diff --git a/inspector/Makefile.am b/inspector/Makefile.am
index 86e0cd7..2f51d79 100644
--- a/inspector/Makefile.am
+++ b/inspector/Makefile.am
@@ -17,6 +17,8 @@
include $(top_srcdir)/subdir-rules.mk
+generator_built = tests.mk
+
example_xml = \
example-debian.xml \
example-fedora.xml \
@@ -38,6 +40,7 @@ EXTRA_DIST = \
expected-fedora.img.xml \
expected-ubuntu.img.xml \
expected-windows.img.xml \
+ test-virt-inspector-local-guests.sh \
test-virt-inspector.sh \
test-xmllint.sh.in \
virt-inspector.pod
@@ -100,16 +103,4 @@ stamp-virt-inspector.pod: virt-inspector.pod
$<
touch $@
-TESTS_ENVIRONMENT = $(top_builddir)/run --test
-TESTS = test-virt-inspector.sh
-if HAVE_XMLLINT
-TESTS += test-xmllint.sh
-endif
-
-check-valgrind:
- $(MAKE) TESTS="test-virt-inspector.sh" VG="$(top_builddir)/run
@VG@" check
-
-check-valgrind-local-guests:
- for g in $(GUESTS); do \
- $(top_builddir)/run --test @VG@ ./virt-inspector -c
"$(libvirt_ro_uri)" -d "$$g" || exit $$?; \
- done
+-include tests.mk
diff --git a/inspector/test-virt-inspector-local-guests.sh
b/inspector/test-virt-inspector-local-guests.sh
new file mode 100755
index 0000000..9af378a
--- /dev/null
+++ b/inspector/test-virt-inspector-local-guests.sh
@@ -0,0 +1,25 @@
+#!/bin/bash -
+# libguestfs virt-inspector test script
+# Copyright (C) 2012-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
+set -x
+
+for g in "$@"; do
+ virt-inspector -c "$libvirt_ro_uri" -d "$g" || exit 1
+done
diff --git a/inspector/test-virt-inspector.sh b/inspector/test-virt-inspector.sh
index 6fab253..58f8d47 100755
--- a/inspector/test-virt-inspector.sh
+++ b/inspector/test-virt-inspector.sh
@@ -20,23 +20,17 @@ export LANG=C
set -e
set -x
-# Allow this test to be skipped.
-if [ -n "$SKIP_TEST_VIRT_INSPECTOR_SH" ]; then
- echo "$0: skipping test because SKIP_TEST_VIRT_INSPECTOR_SH is
set."
- exit 77
-fi
-
# ntfs-3g can't set UUIDs right now, so ignore just that <uuid>.
diff_ignore="-I
<uuid>[0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F][0-9A-F]</uuid>"
-for f in ../tests/guests/{debian,fedora,ubuntu,windows}.img; do
+for f in $datadir/{debian,fedora,ubuntu,windows}.img; do
# Ignore zero-sized windows.img if ntfs-3g is not installed.
if [ -s "$f" ]; then
b=$(basename "$f" .xml)
- $VG virt-inspector -a "$f" > "actual-$b.xml"
+ $VG virt-inspector -a "$f" > actual-$b.xml
# This 'diff' command will fail (because of -e option) if there
# are any differences.
- diff -ur $diff_ignore "expected-$b.xml"
"actual-$b.xml"
+ diff -ur $diff_ignore $srcdir/expected-$b.xml actual-$b.xml
fi
done
diff --git a/inspector/test-xmllint.sh.in b/inspector/test-xmllint.sh.in
index aef5ebc..f1195fd 100755
--- a/inspector/test-xmllint.sh.in
+++ b/inspector/test-xmllint.sh.in
@@ -19,6 +19,11 @@
export LANG=C
set -e
+if ! "@XMLLINT@" --version >/dev/null 2>&1; then
+ echo "$0: test skipped before xmllint is not installed"
+ exit 77
+fi
+
for f in $srcdir/example-*.xml; do
@XMLLINT@ --noout --relaxng $srcdir/virt-inspector.rng $f
done
--
2.0.4
Pino Toscano
2014-Sep-17 16:18 UTC
Re: [Libguestfs] [PATCH 1/3] tests: Don't use relative paths to binaries in tests.
On Tuesday 16 September 2014 15:05:56 Richard W.M. Jones wrote:> All tests run under the ./run binary. For a long time the ./run > binary has set the $PATH environment variable to contain all of the > directories with binaries in them. > > Therefore there is no reason to use ../fish/guestfish instead of just > plain guestfish (and the same applies to other built binaries).LGTM, makes sense. -- Pino Toscano
Reasonably Related Threads
- [PATCH 0/3] tests: Define common test functions.
- [PATCH 0/3] misc tests-only changes
- [PATCH v3 01/16] tests: Introduce test harness for running tests.
- [PATCH v2 00/14] tests: Introduce test harness for running tests.
- [PATCH v4 00/17] tests: Introduce test harness for running tests.