summaryrefslogtreecommitdiff
path: root/testprogs
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2008-04-16 12:34:53 +0200
committerJelmer Vernooij <jelmer@samba.org>2008-04-16 12:34:53 +0200
commitf540669c48f96a65cd25edeb0c1e63bcc801dfed (patch)
tree52a06ab812e6e5cd695e1ffbe2f238c20fcde8db /testprogs
parent7c4a45de26010996192912694e5a0a5a3d990fdc (diff)
downloadsamba-f540669c48f96a65cd25edeb0c1e63bcc801dfed.tar.gz
Use library for subunit test functions.
(This used to be commit 690924dc7f43b69b9c4cfc1dd0c9c6e83d333518)
Diffstat (limited to 'testprogs')
-rwxr-xr-xtestprogs/blackbox/subunit.sh67
1 files changed, 67 insertions, 0 deletions
diff --git a/testprogs/blackbox/subunit.sh b/testprogs/blackbox/subunit.sh
new file mode 100755
index 00000000000..7a6b21e540e
--- /dev/null
+++ b/testprogs/blackbox/subunit.sh
@@ -0,0 +1,67 @@
+#
+# subunit.sh: shell functions to report test status via the subunit protocol.
+# Copyright (C) 2006 Robert Collins <robertc@robertcollins.net>
+# Copyright (C) 2008 Jelmer Vernooij <jelmer@samba.org>
+#
+# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+
+subunit_start_test () {
+ # emit the current protocol start-marker for test $1
+ echo "test: $1"
+}
+
+
+subunit_pass_test () {
+ # emit the current protocol test passed marker for test $1
+ echo "success: $1"
+}
+
+
+subunit_fail_test () {
+ # emit the current protocol fail-marker for test $1, and emit stdin as
+ # the error text.
+ # we use stdin because the failure message can be arbitrarily long, and this
+ # makes it convenient to write in scripts (using <<END syntax.
+ echo "failure: $1 ["
+ cat -
+ echo "]"
+}
+
+
+subunit_error_test () {
+ # emit the current protocol error-marker for test $1, and emit stdin as
+ # the error text.
+ # we use stdin because the failure message can be arbitrarily long, and this
+ # makes it convenient to write in scripts (using <<END syntax.
+ echo "error: $1 ["
+ cat -
+ echo "]"
+}
+
+testit () {
+ name="$1"
+ shift
+ cmdline="$*"
+ subunit_start_test "$name"
+ $cmdline
+ status=$?
+ if [ x$status = x0 ]; then
+ subunit_pass_test "$name"
+ else
+ subunit_fail_test "$name"
+ fi
+ return $status
+}