You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.4 KiB
59 lines
1.4 KiB
#! /bin/bash
|
|
|
|
#
|
|
# This script is called from the directory where the test cases are.
|
|
# Not all the test cases use this.
|
|
#
|
|
# Usage: $0 profile testname1 [ testname2 ... ]
|
|
#
|
|
# This script looks for *each* line in profile matching the
|
|
# pattern "testid testname" and runs the corresponding test with the
|
|
# args defined in the line.
|
|
|
|
[ $# -lt 2 ] && { echo >&2 "$0: too few arguments (at least two)" ; exit 1 ; }
|
|
profile=$1
|
|
shift
|
|
|
|
#source $SCRIPTS_DIR/setenv.sh
|
|
|
|
profile_path=$PROFILES_DIR/$profile
|
|
# Does profile exist?
|
|
[ ! -f "$profile_path" ] && { echo >&2 "$0: Could not find profile ($profile_path)" ; exit 1 ; }
|
|
|
|
# if INSTALL_DIR != top_srcdir assume the individual tests are built and installed.
|
|
if [[ -f Makefile ]]; then
|
|
# Compile the test cases to support stand alone runs.
|
|
make
|
|
fi
|
|
|
|
|
|
# Run the test case
|
|
for testname in $*
|
|
do
|
|
# Strip off comments and feed it to trivial parser.
|
|
sed 's/#.*//' < $profile_path | while read line ; do
|
|
set $line ""
|
|
# Check if the line is elligible
|
|
if [ "$1" = "$TEST_REL_DIR" -a "$2" = "$testname" ] ; then
|
|
cmd=$2
|
|
shift 2
|
|
params="$*"
|
|
|
|
if [ "$LOG_FILE" = "" ]; then
|
|
LOG_FILE="$LOG_DIR/$LOG_FORMAT-${cmd}${params// /}.log"
|
|
fi
|
|
[ ! -d $LOG_DIR ] && mkdir -p $LOG_DIR
|
|
|
|
(
|
|
echo "--- Running testcase $cmd $params ---"
|
|
date
|
|
echo "Logging to $LOG_FILE"
|
|
eval ./$cmd 2>&1 $params
|
|
echo
|
|
date
|
|
echo "The $cmd test appears to have completed."
|
|
) | tee -a $LOG_FILE
|
|
fi
|
|
done
|
|
done
|