added tests
This commit is contained in:
103
dvm/tools/tester/trunk/main/test-system.sh
Normal file
103
dvm/tools/tester/trunk/main/test-system.sh
Normal file
@@ -0,0 +1,103 @@
|
||||
#!/bin/sh
|
||||
|
||||
unset CDPATH
|
||||
|
||||
SAVE_DIR=`pwd`
|
||||
MY_DIR=$(cd "$(dirname "$(which "$0")")" && pwd)
|
||||
|
||||
DVMSYS_DIR=
|
||||
if [ -f ./dvm ]; then
|
||||
DVMSYS_DIR_CMD="DVMSYS_DIR=$(grep 'dvmdir=' <./dvm | sed -s 's/export //g' | sed -s 's/dvmdir=//g')"
|
||||
eval $DVMSYS_DIR_CMD
|
||||
fi
|
||||
TEST_SUITE=test-suite
|
||||
RESULTS_DIR=
|
||||
APPEND_RESULTS=0
|
||||
|
||||
parse_params() {
|
||||
while [ -n "$1" ]; do
|
||||
if [ "$1" = "--dvm_sys" ]; then
|
||||
DVMSYS_DIR="$2"
|
||||
shift
|
||||
elif [ "$1" = "--test-suite" ]; then
|
||||
TEST_SUITE="$2"
|
||||
shift
|
||||
elif [ "$1" = "--append-results" ]; then
|
||||
APPEND_RESULTS=1
|
||||
RESULTS_DIR="$2"
|
||||
shift
|
||||
else
|
||||
echo "Unknown option '$1'"
|
||||
exit 1
|
||||
fi
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
parse_params $@ || exit 1
|
||||
|
||||
# Check settings
|
||||
cd "$SAVE_DIR"
|
||||
if [ ! -d "$DVMSYS_DIR" -o ! -d "$DVMSYS_DIR/user" -o ! -f "$DVMSYS_DIR/user/dvm" -o ! -d "$TEST_SUITE" ]; then
|
||||
MY_NAME=`basename "$0"`
|
||||
echo "Usage: $0 [<options>]"
|
||||
echo " --dvm_sys Directory of already installed DVM-system. Note that it is a directory, which contains directory 'user' directly. Usually it is .../dvm_current/dvm_sys. By default $MY_NAME searches for 'dvm' file in current directory and makes attempt to use its DVM-system"
|
||||
echo " --test-suite Directory with test suite, which is formed in special way. By default 'test-suite' directory is used."
|
||||
echo " --append-results Directory with partial results, which will be appended. By default new directory will be created."
|
||||
echo "Exiting"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Make them global paths
|
||||
DVMSYS_DIR=$(cd "$DVMSYS_DIR" && pwd)
|
||||
TEST_SUITE=$(cd "$TEST_SUITE" && pwd)
|
||||
|
||||
if [ $APPEND_RESULTS -eq 0 ]; then
|
||||
RESULTS_DIR="$SAVE_DIR/$(basename "$TEST_SUITE").results"
|
||||
else
|
||||
RESULTS_DIR=$(cd "$RESULTS_DIR" && pwd)
|
||||
fi
|
||||
export TMPDIR="$SAVE_DIR/$(basename "$TEST_SUITE").work"
|
||||
if [ -d "/home/scratch" ]; then
|
||||
TEMPL_NAME="/home/scratch/$(basename "$TMPDIR").XXX"
|
||||
TMPDIR=$(mktemp -d "$TEMPL_NAME")
|
||||
fi
|
||||
mkdir -p "$TMPDIR"
|
||||
|
||||
# Launch task processor
|
||||
TASK_FIFO="$(mktemp -u).task-fifo"
|
||||
mkfifo "$TASK_FIFO"
|
||||
if [ $APPEND_RESULTS -eq 0 ]; then
|
||||
if [ -e "$RESULTS_DIR" ]; then
|
||||
echo -n "$RESULTS_DIR already exists. Do you want to rewrite it (Y/n)? "
|
||||
ans=n
|
||||
read ans
|
||||
if [ "$ans" != "y" -a "$ans" != "Y" ]; then
|
||||
echo "Exiting"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
rm -rf "$RESULTS_DIR"
|
||||
fi
|
||||
mkdir -p "$RESULTS_DIR"
|
||||
cd "$SAVE_DIR"
|
||||
"$MY_DIR/task-processor.sh" "$RESULTS_DIR" <"$TASK_FIFO" &
|
||||
|
||||
# Sequentially feed task processor from our test-suite
|
||||
exec 4>"$TASK_FIFO"
|
||||
cd "$SAVE_DIR"
|
||||
"$MY_DIR/perform-tests.sh" "$DVMSYS_DIR" "$TEST_SUITE" 4
|
||||
exec 4>&-
|
||||
|
||||
# Wait for task processor to finish
|
||||
wait
|
||||
|
||||
# Cleanup stuff
|
||||
rm "$TASK_FIFO"
|
||||
|
||||
# Generate final report
|
||||
cd "$SAVE_DIR"
|
||||
"$MY_DIR/gen-report.sh" "$TEST_SUITE" "$RESULTS_DIR"
|
||||
|
||||
echo "Results can be seen in $RESULTS_DIR directory"
|
||||
rm -rf "$TMPDIR"
|
||||
Reference in New Issue
Block a user