added tests
This commit is contained in:
104
dvm/tools/tester/trunk/automation/build-and-test.sh
Normal file
104
dvm/tools/tester/trunk/automation/build-and-test.sh
Normal file
@@ -0,0 +1,104 @@
|
||||
#!/bin/sh
|
||||
|
||||
SAVE_DIR=`pwd`
|
||||
MY_DIR=$(cd "$(dirname "$(which "$0")")" && pwd)
|
||||
|
||||
if [ "$1" = "--continue" ]; then
|
||||
CONTINUE_FLAG=1
|
||||
shift
|
||||
else
|
||||
CONTINUE_FLAG=0
|
||||
fi
|
||||
ORIG_DIR="$1"
|
||||
REV_NUMBER=$2
|
||||
|
||||
if [ -f "$SAVE_DIR/dvm-tester.config" ]; then
|
||||
. "$SAVE_DIR/dvm-tester.config"
|
||||
fi
|
||||
|
||||
if [ -z "$PLATFORMS" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -z "$TEST_SUITE" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FULL_REP_URL="$PUBL_BASE_URL/r${REV_NUMBER}${PUBL_SUFFIX}/"
|
||||
|
||||
TEST_SUITE=$(cd "$TEST_SUITE" && pwd)
|
||||
|
||||
# Actually, can be taken any temporary name
|
||||
RESULTS_DIR="$ORIG_DIR.results"
|
||||
export TMPDIR="$ORIG_DIR.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 [ $CONTINUE_FLAG -eq 0 ]; then
|
||||
rm -rf "$RESULTS_DIR"
|
||||
fi
|
||||
mkdir -p "$RESULTS_DIR"
|
||||
cd "$SAVE_DIR"
|
||||
"$MY_DIR/task-processor.sh" "$RESULTS_DIR" <"$TASK_FIFO" &
|
||||
|
||||
# Build DVM-systems for given platforms and sequentially feed task processor from our test-suite
|
||||
exec 4>"$TASK_FIFO"
|
||||
for platf in $PLATFORMS; do
|
||||
WORK_DIR="$ORIG_DIR.$platf"
|
||||
if [ $CONTINUE_FLAG -eq 0 ]; then
|
||||
rm -rf "$WORK_DIR"
|
||||
fi
|
||||
if [ ! -e "$WORK_DIR" ]; then
|
||||
cp -r "$ORIG_DIR" "$WORK_DIR"
|
||||
fi
|
||||
cd "$WORK_DIR/dvm_sys"
|
||||
if [ ! -f platforms/$platf ]; then
|
||||
if [ -f "$SAVE_DIR/$platf" ]; then
|
||||
cp "$SAVE_DIR/$platf" platforms/
|
||||
else
|
||||
echo "Can not find platform $platf"
|
||||
fi
|
||||
fi
|
||||
if [ -f platforms/$platf ]; then
|
||||
PLATFORM=$platf ./dvminstall >install.log 2>& 1
|
||||
INST_RES=$?
|
||||
if [ $INST_RES -ne 0 -o ! -f user/dvm ]; then
|
||||
:
|
||||
# TODO: Handle errors with building DVM-system
|
||||
else
|
||||
cd "$SAVE_DIR"
|
||||
"$MY_DIR/perform-tests.sh" "$WORK_DIR/dvm_sys" "$TEST_SUITE" 4
|
||||
fi
|
||||
fi
|
||||
done
|
||||
exec 4>&-
|
||||
|
||||
# Wait for task processor to finish
|
||||
wait
|
||||
|
||||
# Cleanup stuff
|
||||
rm "$TASK_FIFO"
|
||||
for platf in $PLATFORMS; do
|
||||
WORK_DIR="$ORIG_DIR.$platf"
|
||||
# rm -rf "$WORK_DIR"
|
||||
done
|
||||
|
||||
# Generate final report
|
||||
cd "$SAVE_DIR"
|
||||
"$MY_DIR/gen-report.sh" "$TEST_SUITE" "$RESULTS_DIR" "$FULL_REP_URL" $REV_NUMBER
|
||||
|
||||
# Publish the report and send summary e-mail
|
||||
if [ "$POPULATE_FLAG" = "1" ]; then
|
||||
cd "$SAVE_DIR"
|
||||
"$MY_DIR/populate-report.sh" "$RESULTS_DIR" "$REV_NUMBER"
|
||||
fi
|
||||
|
||||
# Cleanup stuff finally
|
||||
#rm -rf "$RESULTS_DIR"
|
||||
#rm -rf "$TMPDIR"
|
||||
Reference in New Issue
Block a user