summaryrefslogtreecommitdiff
path: root/cpp/examples
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2007-11-09 14:12:09 +0000
committerAlan Conway <aconway@apache.org>2007-11-09 14:12:09 +0000
commitb8086e90658a9f8e076add10b747722c2a02aa44 (patch)
tree712d8da818369e7098fc72dbc2eff124bfda01ae /cpp/examples
parentd958c2503a14112128beb24ed6de1bfc56df8582 (diff)
downloadqpid-python-b8086e90658a9f8e076add10b747722c2a02aa44.tar.gz
Functions for scripts that verify examples.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@593531 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/examples')
-rwxr-xr-xcpp/examples/verify_functions50
1 files changed, 50 insertions, 0 deletions
diff --git a/cpp/examples/verify_functions b/cpp/examples/verify_functions
new file mode 100755
index 0000000000..15bf34f048
--- /dev/null
+++ b/cpp/examples/verify_functions
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+new_tag() {
+ for t in $TAGS; do
+ if test "$t" = "$1"; then
+ echo "Duplicate tag $t" 1>&2 ; exit 1
+ fi
+ done
+ TAGS="$TAGS $tag"
+}
+
+# Usage: run tag program args ...
+# Runs 'program args ...' with output to tag.out and tag.err
+run() {
+ tag=$1; shift
+ test -n "$*" || { echo "No command for tag: $tag" 1>&2; exit 1; }
+ new_tag $tag
+ rm -f $tag.out $tag.err $tag.diff
+ "$@" > $tag.out 2> $tag.err || echo "exit status $?" >> $tag.err &
+}
+
+# Genereate error report
+errors() {
+ for tag in "$@"; do
+ DIFF=`diff $tag.out $tag.expect 2>&1` || {
+ echo "==== $tag.out != $tag.expect ===="
+ echo $DIFF
+ }
+ test -s $tag.err && {
+ echo "==== $tag.err ===="
+ cat $tag.err
+ }
+ done
+}
+
+# Wait for processes, verify output.
+# Verifies tag.expect == tag.out and ! tag.err for each tag,
+# creates errors.txt if there are any discrepancies.
+#
+verify() {
+ wait
+ rm -f errors.txt
+ ERRORS=`errors $TAGS`
+ if test -n "$ERRORS"; then
+ echo "$ERRORS" 1>&2
+ return 1
+ fi
+ return 0
+}
+