diff options
author | Richard W.M. Jones <rjones@redhat.com> | 2012-03-31 10:28:49 +0100 |
---|---|---|
committer | Richard W.M. Jones <rjones@redhat.com> | 2012-03-31 10:28:49 +0100 |
commit | d00596dfbb386333c06744a20c514c0ccc8f2367 (patch) | |
tree | 5309fa0b626f3236a538fc6117079f8212d2871d /fish/test-mount-local.sh | |
parent | e430ce89085dcda3ee9a6074629d38aebbccc53e (diff) | |
download | libguestfs-d00596dfbb386333c06744a20c514c0ccc8f2367.tar.gz libguestfs-d00596dfbb386333c06744a20c514c0ccc8f2367.tar.xz libguestfs-d00596dfbb386333c06744a20c514c0ccc8f2367.zip |
fish: Add a regression test for mount-local, mount-local-run commands.
Diffstat (limited to 'fish/test-mount-local.sh')
-rwxr-xr-x | fish/test-mount-local.sh | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/fish/test-mount-local.sh b/fish/test-mount-local.sh new file mode 100755 index 00000000..a71db042 --- /dev/null +++ b/fish/test-mount-local.sh @@ -0,0 +1,79 @@ +#!/bin/bash - +# libguestfs +# Copyright (C) 2012 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. + +# Test guestfish mount-local / mount-local-run commands. + +# Skip if no FUSE. + +test -w /dev/fuse || { + echo "$0: Skipping this test" + echo " because /dev/fuse is missing or not writable by the current user." + exit 0 +} + +set -e + +if [ $# -gt 0 -a "$1" = "--run-test" ]; then + # Create some files and read them back. + echo 'hello' > mp/hello + chmod 0600 mp/hello + rm mp/hello + + echo 'hello' > mp/hello + ln -s mp/hello mp/goodbye + ln mp/hello mp/link + rm mp/goodbye mp/link + + dd if=/dev/zero of=mp/zero bs=10k count=10 + sync + rm mp/zero + + echo 'mount-local test successful' > mp/ok + + # Unmount the mountpoint. Might need to retry this. + count=10 + while ! fusermount -u mp && [ $count -gt 0 ]; do + sleep 1 + ((count--)) + done + + exit 0 +fi + +rm -f test1.img test.errors +rm -rf mp + +mkdir mp + +if ! ./guestfish -N fs -m /dev/sda1 2>test.errors <<EOF; then +mount-local mp +! $0 --run-test & +mount-local-run + +# /ok should have been created and left over by the test. +# If not, then the next command will fail. +cat /ok + +EOF + echo "$0: test failed." + cat test.errors + exit 1 +fi + +rm -f test1.img test.errors +rm -rf mp |