[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Libguestfs] [PATCH 4/4] fish: Add a regression test for the 'glob' command.



From: "Richard W.M. Jones" <rjones redhat com>

---
 fish/Makefile.am  |    2 +
 fish/test-glob.sh |  105 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 107 insertions(+)
 create mode 100755 fish/test-glob.sh

diff --git a/fish/Makefile.am b/fish/Makefile.am
index d809ba1..6b52820 100644
--- a/fish/Makefile.am
+++ b/fish/Makefile.am
@@ -248,6 +248,7 @@ TESTS += \
 	test-copy.sh \
 	test-edit.sh \
 	test-find0.sh \
+	test-glob.sh \
 	test-mount-local.sh \
 	test-read_file.sh \
 	test-remote.sh \
@@ -265,6 +266,7 @@ EXTRA_DIST += \
 	test-escapes.sh \
 	test-events.sh \
 	test-find0.sh \
+	test-glob.sh \
 	test-mount-local.sh \
 	test-read_file.sh \
 	test-remote.sh \
diff --git a/fish/test-glob.sh b/fish/test-glob.sh
new file mode 100755
index 0000000..0d54dbe
--- /dev/null
+++ b/fish/test-glob.sh
@@ -0,0 +1,105 @@
+#!/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 glob command.
+
+set -e
+
+rm -f test.img test.out
+
+./guestfish > test.out <<EOF
+
+sparse test.img 1G
+run
+
+pvcreate /dev/sda
+# Because glob doesn't do device name translation, we cannot test
+# matching on /dev/sd* paths, only on LVs.  So choose a volume group
+# name that cannot possibly be a device name.
+vgcreate abc /dev/sda
+lvcreate lv1 abc 64
+lvcreate lv2 abc 64
+lvcreate lv3 abc 64
+
+glob mkfs ext2 /dev/abc/*
+mount /dev/abc/lv1 /
+
+mkdir /foo
+touch /abc
+touch /foo/bar1
+touch /foo/bar2
+
+# Regular file globbing.
+echo files
+glob echo /f*
+glob echo /foo/*
+glob echo /foo/not*
+glob echo /foo/b??1
+glob echo /abc
+
+# Device globbing.
+echo devices
+glob echo /dev/a*
+glob echo /dev/a*/*
+glob echo /dev/a*/not*
+glob echo /dev/a*/lv?
+glob echo /dev/a*/lv
+glob echo /dev/a*/*3
+glob echo /dev/a*/* /dev/a*
+glob echo /dev/a*/* /dev/a*/*
+
+echo end
+EOF
+
+if [ "$(cat test.out)" != "files
+/foo/
+/foo/bar1
+/foo/bar2
+/foo/not*
+/foo/bar1
+/abc
+devices
+/dev/a*
+/dev/abc/lv1
+/dev/abc/lv2
+/dev/abc/lv3
+/dev/a*/not*
+/dev/abc/lv1
+/dev/abc/lv2
+/dev/abc/lv3
+/dev/a*/lv
+/dev/abc/lv3
+/dev/abc/lv1 /dev/a*
+/dev/abc/lv2 /dev/a*
+/dev/abc/lv3 /dev/a*
+/dev/abc/lv1 /dev/abc/lv1
+/dev/abc/lv1 /dev/abc/lv2
+/dev/abc/lv1 /dev/abc/lv3
+/dev/abc/lv2 /dev/abc/lv1
+/dev/abc/lv2 /dev/abc/lv2
+/dev/abc/lv2 /dev/abc/lv3
+/dev/abc/lv3 /dev/abc/lv1
+/dev/abc/lv3 /dev/abc/lv2
+/dev/abc/lv3 /dev/abc/lv3
+end" ]; then
+    echo "$0: error: unexpected output from glob command"
+    cat test.out
+    exit 1
+fi
+
+rm -f test.img test.out
-- 
1.7.10


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]