From: "Richard W.M. Jones" <rjones(a)redhat.com>
(cherry picked from commit 23d429ff845f29b345ff76efab669daf92b5ab42)
---
fish/Makefile.am | 2 ++
fish/test-add-uri.sh | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 85 insertions(+)
create mode 100755 fish/test-add-uri.sh
diff --git a/fish/Makefile.am b/fish/Makefile.am
index 0c8ad17..ceceb96 100644
--- a/fish/Makefile.am
+++ b/fish/Makefile.am
@@ -254,6 +254,7 @@ TESTS_ENVIRONMENT = $(top_builddir)/run --test
TESTS = \
test-a.sh \
test-add-domain.sh \
+ test-add-uri.sh \
test-d.sh \
test-escapes.sh \
test-events.sh \
@@ -283,6 +284,7 @@ check-valgrind:
EXTRA_DIST += \
test-a.sh \
test-add-domain.sh \
+ test-add-uri.sh \
test-copy.sh \
test-d.sh \
test-edit.sh \
diff --git a/fish/test-add-uri.sh b/fish/test-add-uri.sh
new file mode 100755
index 0000000..dfeccf7
--- /dev/null
+++ b/fish/test-add-uri.sh
@@ -0,0 +1,83 @@
+#!/bin/bash -
+# libguestfs
+# Copyright (C) 2013 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 -a URI.
+
+set -e
+set -x
+
+rm -f test-add-uri.out
+rm -f test-add-uri.img
+
+$VG ./guestfish sparse test-add-uri.img 10M
+
+function fail ()
+{
+ echo "Test failed. Actual trace output was:"
+ cat test-add-uri.out
+ exit 1
+}
+
+# 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
+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
+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
+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
+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
+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
+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
+grep -sq 'add_drive "/export" "protocol:nbd"
"server:unix:/sk"' test-add-uri.out || fail
+
+# rbd
+$VG ./guestfish -x -a rbd://example.com:3000/disk </dev/null >test-add-uri.out
2>&1
+grep -sq 'add_drive "/disk" "protocol:rbd"
"server:tcp:example.com:3000"' test-add-uri.out || fail
+
+# sheepdog
+$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
+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
+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
+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
+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
+rm test-add-uri.img
--
1.8.3.1