Author: tross Date: Wed Nov 25 19:21:20 2009 New Revision: 884231 URL: http://svn.apache.org/viewvc?rev=884231&view=rev Log: QPID-2219 - Example tests hang when run in a vpath build Verify scripts updated to operate in vpath builds.
Modified: qpid/trunk/qpid/cpp/examples/Makefile.am qpid/trunk/qpid/cpp/examples/verify qpid/trunk/qpid/cpp/examples/verify_all Modified: qpid/trunk/qpid/cpp/examples/Makefile.am URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/Makefile.am?rev=884231&r1=884230&r2=884231&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/examples/Makefile.am (original) +++ qpid/trunk/qpid/cpp/examples/Makefile.am Wed Nov 25 19:21:20 2009 @@ -41,8 +41,9 @@ # For older versions of automake abs_top_srcdir = @abs_top_srcdir@ +abs_top_builddir = @abs_top_builddir@ # Verify the examples in the buid tree. check-local: - $(srcdir)/verify_all $(abs_top_srcdir)/.. $(top_builddir)/src/qpidd $(broker_args) $(exclude_examples_regexp) + $(srcdir)/verify_all $(abs_top_srcdir)/.. $(abs_top_builddir) $(broker_args) $(exclude_examples_regexp) Modified: qpid/trunk/qpid/cpp/examples/verify URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/verify?rev=884231&r1=884230&r2=884231&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/examples/verify (original) +++ qpid/trunk/qpid/cpp/examples/verify Wed Nov 25 19:21:20 2009 @@ -75,13 +75,28 @@ done } +function normalize() { + local path=${1//\/.\//\/}\/ + while [[ $path =~ ([^/][^/]*/\.\./) ]] + do + path=${path/${BASH_REMATCH[0]}/} + done + echo $path | sed 's/\/$//' +} + verify() { FAIL= - if [ -d $1 ]; then dir=$1; script=verify; - else dir=`dirname $1`; script=`basename $1`; fi - cd $dir || return 1 + arg=$(normalize $1) + srcdir=$(normalize $2) + builddir=$(normalize $3) + if [ -d $arg ]; then dir=$arg; script=verify; + else dir=`dirname $arg`; script=`basename $arg`; fi + + # if the example is in the "cpp" area, make sure we run from the build directory, not the source dir. + rundir=${dir/$srcdir\/cpp/$builddir/} + cd $rundir || return 1 rm -f *.out - { source ./$script && diff -ac $script.out $script.in ; } || fail + { source $dir/$script && diff -ac $script.out $dir/$script.in ; } || fail test -z "$FAIL" && rm -f *.out return $FAIL } @@ -100,8 +115,12 @@ trap "$QPIDD -q" EXIT fi +topsrcdir=$1 +topbuilddir=$2 +shift 2 + for example in "$@"; do - echo "== $example " - if ( verify $example; ) then echo "PASS"; else echo "FAIL"; RET=1; fi + echo "== $(normalize $example)" + if ( verify $example $topsrcdir $topbuilddir; ) then echo "PASS"; else echo "FAIL"; RET=1; fi done exit $RET Modified: qpid/trunk/qpid/cpp/examples/verify_all URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/examples/verify_all?rev=884231&r1=884230&r2=884231&view=diff ============================================================================== --- qpid/trunk/qpid/cpp/examples/verify_all (original) +++ qpid/trunk/qpid/cpp/examples/verify_all Wed Nov 25 19:21:20 2009 @@ -24,7 +24,8 @@ verify=`dirname $0`/verify topsrcdir=$1 -qpidd=$2 +topbuilddir=$2 +qpidd=$topbuilddir/src/qpidd broker_args=$3 exclude_regexp=$4 python=${QPID_PYTHON_DIR:-$topsrcdir/python} @@ -50,4 +51,4 @@ { cat $f | grep $exclude_regexp > /dev/null ; } || run_examples="$run_examples $f" done fi -$verify $run_examples +$verify $topsrcdir $topbuilddir $run_examples --------------------------------------------------------------------- Apache Qpid - AMQP Messaging Implementation Project: http://qpid.apache.org Use/Interact: mailto:commits-subscr...@qpid.apache.org