diff options
Diffstat (limited to 'cpp/src/tests/run_test')
-rwxr-xr-x | cpp/src/tests/run_test | 45 |
1 files changed, 34 insertions, 11 deletions
diff --git a/cpp/src/tests/run_test b/cpp/src/tests/run_test index 4d0da15d4c..4b227621bc 100755 --- a/cpp/src/tests/run_test +++ b/cpp/src/tests/run_test @@ -1,11 +1,30 @@ #!/bin/sh + +# Licensed to the Apache Software Foundation (ASF) under one +# or more contributor license agreements. See the NOTICE file +# distributed with this work for additional information +# regarding copyright ownership. The ASF licenses this file +# to you under the Apache License, Version 2.0 (the +# "License"); you may not use this file except in compliance +# with the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, +# software distributed under the License is distributed on an +# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +# KIND, either express or implied. See the License for the +# specific language governing permissions and limitations +# under the License. +# + # # Set up environment and run a test executable or script. # # Output nothing if test passes, show the output if it fails and # leave output in <test>.log for examination. # -# If qpidd.port exists run test with QPID_PORT=`cat qpidd.port` +# If qpidd.port exists and is not empty run test with QPID_PORT=`cat qpidd.port` # # If $VALGRIND if is set run under valgrind. If there are valgrind # erros show valgrind output, also leave it in <test>.valgrind for @@ -13,13 +32,14 @@ # srcdir=`dirname $0` -. $srcdir/vg_check +source ./test_env.sh +source $srcdir/vg_check # Export variables from makefile. -export VALGRIND srcdir +export srcdir # Set QPID_PORT if qpidd.port exists. -test -f qpidd.port && QPID_PORT=`cat qpidd.port` +test -s qpidd.port && QPID_PORT=`cat qpidd.port` export QPID_PORT # Avoid silly libtool error messages if these are not defined @@ -32,27 +52,30 @@ export LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES VG_LOG="`basename $1`.vglog" rm -f $VG_LOG* -VALGRIND_OPTS=" ---gen-suppressions=all +# Use VALGRIND_OPTS="--gen-suppressions=all" to generated suppressions +VALGRIND_OPTS="$VALGRIND_OPTS --leak-check=full --demangle=yes --suppressions=$srcdir/.valgrind.supp --num-callers=25 --log-file=$VG_LOG -- " -# FIXME aconway 2008-07-16: removed --trace-children=yes, problems with cluster tests forking -# qpidd libtool script. Investigate & restore --trace-children if possible. - ERROR=0 if grep -l "^# Generated by .*libtool" "$1" >/dev/null 2>&1; then # This is a libtool "executable". Valgrind it if VALGRIND specified. test -n "$VALGRIND" && VALGRIND="$VALGRIND $VALGRIND_OPTS" # Hide output unless there's an error. - libtool --mode=execute $VALGRIND "$@" 2>&1 || ERROR=1 + $LIBTOOL --mode=execute $VALGRIND "$@" 2>&1 || ERROR=1 test -n "$VALGRIND" && { vg_check $VG_LOG* || ERROR=1 ; } -else +elif file $1 | grep -q text; then # This is a non-libtool shell script, just execute it. exec "$@" +else + # This is a real executable, valgrind it. + test -n "$VALGRIND" && VALGRIND="$VALGRIND $VALGRIND_OPTS" + # Hide output unless there's an error. + $VALGRIND "$@" 2>&1 || ERROR=1 + test -n "$VALGRIND" && { vg_check $VG_LOG* || ERROR=1 ; } fi exit $ERROR |