added tests
This commit is contained in:
100
dvm/tools/tester/trunk/automation/test-revision.sh
Normal file
100
dvm/tools/tester/trunk/automation/test-revision.sh
Normal file
@@ -0,0 +1,100 @@
|
||||
#!/bin/sh
|
||||
|
||||
unset CDPATH
|
||||
|
||||
MY_DIR=$(cd "$(dirname "$(which "$0")")" && pwd)
|
||||
|
||||
POPULATE_FLAG=0
|
||||
WORKING_DIR=`pwd`
|
||||
REV=
|
||||
|
||||
parse_params() {
|
||||
while [ -n "$1" ]; do
|
||||
if [ "$1" = "--working-dir" ]; then
|
||||
WORKING_DIR="$2"
|
||||
shift
|
||||
elif [ "$1" = "--populate" ]; then
|
||||
POPULATE_FLAG=1
|
||||
else
|
||||
REV=$1
|
||||
fi
|
||||
shift
|
||||
done
|
||||
}
|
||||
|
||||
parse_params $@
|
||||
|
||||
if [ -z "$REV" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -f "$WORKING_DIR/dvm-tester.config" ]; then
|
||||
. "$WORKING_DIR/dvm-tester.config"
|
||||
else
|
||||
exit 1
|
||||
fi
|
||||
|
||||
REPO_URL="$REPO_BASE_URL/dvm/releases/current-trunk"
|
||||
SVN_PARAMS="--username $REPO_USER --password $REPO_PASS --non-interactive"
|
||||
|
||||
update_test_suite() {
|
||||
if [ -e "$TEST_SUITE/.svn" ]; then
|
||||
( cd "$TEST_SUITE" && svn $SVN_PARAMS update )
|
||||
fi
|
||||
}
|
||||
|
||||
test_revision() {
|
||||
REV=$1
|
||||
echo "[$(date)] Testing revision $REV"
|
||||
SAVE_DIR=`pwd`
|
||||
WORK_DIR="$WORKING_DIR/dvm_r$REV"
|
||||
rm -rf "$WORK_DIR"
|
||||
svn co $SVN_PARAMS -r $REV "$REPO_URL" "$WORK_DIR" >/dev/null
|
||||
SVN_RES=$?
|
||||
while [ $SVN_RES -ne 0 ]; do
|
||||
sleep 1
|
||||
rm -rf "$WORK_DIR"
|
||||
svn co $SVN_PARAMS -r $REV "$REPO_URL" "$WORK_DIR" >/dev/null
|
||||
SVN_RES=$?
|
||||
done
|
||||
cd "$WORK_DIR"
|
||||
TMP_FILE=`mktemp`
|
||||
svn propget svn:externals >$TMP_FILE
|
||||
SVN_RES=$?
|
||||
while [ $SVN_RES -ne 0 ]; do
|
||||
svn propget svn:externals >$TMP_FILE
|
||||
SVN_RES=$?
|
||||
done
|
||||
CHILDREN=`cat $TMP_FILE | sed '/^$/d' | awk '{print $(NF)}'`
|
||||
rm $TMP_FILE
|
||||
for d in $CHILDREN; do
|
||||
cd "$WORK_DIR/$d"
|
||||
svn up $SVN_PARAMS -r $REV >/dev/null
|
||||
SVN_RES=$?
|
||||
while [ $SVN_RES -ne 0 ]; do
|
||||
sleep 1
|
||||
svn cleanup $SVN_PARAMS
|
||||
svn up $SVN_PARAMS -r $REV >/dev/null
|
||||
SVN_RES=$?
|
||||
done
|
||||
done
|
||||
rm -rf "$WORK_DIR.tmp"
|
||||
mv "$WORK_DIR" "$WORK_DIR.tmp"
|
||||
svn export "$WORK_DIR.tmp" "$WORK_DIR" >/dev/null
|
||||
SVN_RES=$?
|
||||
while [ $SVN_RES -ne 0 ]; do
|
||||
sleep 1
|
||||
rm -rf "$WORK_DIR"
|
||||
svn export "$WORK_DIR.tmp" "$WORK_DIR" >/dev/null
|
||||
SVN_RES=$?
|
||||
done
|
||||
rm -rf "$WORK_DIR.tmp"
|
||||
cd "$WORKING_DIR"
|
||||
POPULATE_FLAG=$POPULATE_FLAG "$MY_DIR/build-and-test.sh" "$WORK_DIR" $REV
|
||||
echo "[$(date)] Testing revision $REV done"
|
||||
# rm -rf "$WORK_DIR"
|
||||
cd "$SAVE_DIR"
|
||||
}
|
||||
|
||||
update_test_suite
|
||||
test_revision $REV
|
||||
Reference in New Issue
Block a user