123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- ## these must be set by the test scripts
- [ "$TESTS" ] || ( echo "Missing TESTS" ; exit 2 )
- [ "$BRANCH" ] || ( echo "Missing BRANCH" ; exit 3 )
- [ "$ID" ] || ( echo "Missing ID" ; exit 4 )
- ## load global configuration
- . ./config.sh || ( echo "Cannot load config.sh" ; exit 1 )
- [ "$TESTFARM_CF_PREFIX" ] || ( echo "Missing TESTFARM_CF_PREFIX" ; exit 5 )
- [ "$TESTFARM_LOCALBRANCH" ] || ( echo "Missing TESTFARM_LOCALBRANCH" ; exit 6 )
- [ "$TESTFARM_OUTPUT_DIR" ] || ( echo "Missing TESTFARM_OUTPUT_DIR" ; exit 7 )
- [ "$TESTFARM_OPT_DIR" ] || ( echo "Missing TESTFARM_OPT_DIR" ; exit 8 )
- [ "$TESTFARM_BUILD_ROOT" ] || ( echo "Missing TESTFARM_BUILD_ROOT" ; exit 9 )
- BUILDDIR="$TESTFARM_BUILD_ROOT/$ID.git"
- function prepare_builddir() {
- mkdir -p $TESTFARM_BUILD_ROOT
- mkdir -p $TESTFARM_OUTPUT_DIR
- ## checkout
- rm -Rf $BUILDDIR
- if ! cp -R $TESTFARM_REPO_DIR $BUILDDIR ; then
- echo "Copying repo from $TESTFARM_REPO_DIR to $BUILDDIR failed"
- exit 23
- fi
- if ! cd $BUILDDIR ; then
- echo "Cannot change to $BUILDDIR"
- exit 24
- fi
- if ! (git checkout -f $BRANCH -b $TESTFARM_LOCALBRANCH 2>&1 ) | \
- (grep -v "Branch $TESTFARM_LOCALBRANCH set up to track remote branch" || true) |
- (grep -v "Switched to a new branch '$TESTFARM_LOCALBRANCH'" || true) ; then
- echo "Checkout failed"
- exit 25
- fi
- ## repare the build files
- if ! (./autogen.sh 2>&1 ) > $TESTFARM_OUTPUT_DIR/autogen.out ; then
- echo "Autogen stage failed"
- exit 26
- else
- if [ "$TESTFARM_REMOVE_SUCCESS_LOGS" == "yes" ]; then
- rm -f $TESTFARM_OUTPUT_DIR/autogen.out
- fi
- fi
- }
- function run_test() {
- T_NAME="$1"
- if [ -f "$TESTFARM_OUTPUT_DIR/$T_NAME.OK" ]; then
- echo "Skipping succeed test: $T_NAME"
- return
- fi
- echo "Running test: $T_NAME"
- if ! cd $BUILDDIR ; then
- echo "Cannot change to $BUILDDIR"
- exit 24
- fi
- echo " [$T_NAME] Distclean"
- ( make distclean 2>&1 ) > $TESTFARM_OUTPUT_DIR/$T_NAME.distclean.out
- rm -f $TESTFARM_OUTPUT_DIR/$T_NAME.distclean.out
- echo " [$T_NAME] Configure"
- if ! ( ./configure --prefix=$TESTFARM_CF_PREFIX `cat $TESTFARM_OPT_DIR/$t.opt` 2>&1 ) > $TESTFARM_OUTPUT_DIR/$t.configure.out ; then
- echo "==> ERROR: Configure failed for test $T_NAME"
- return
- fi
- echo " [$t] Build"
- if ! ( make 2>&1 ) > $TESTFARM_OUTPUT_DIR/$T_NAME.build.out ; then
- echo "==> ERROR: Build failed for test $T_NAME"
- return
- fi
- echo " [$t] Install"
- if ! ( DESTDIR="$TESTFARM_DESTDIR_ROOT/$ID/" make install 2>&1 ) > $TESTFARM_OUTPUT_DIR/$t.install.out ; then
- echo "==> ERROR: Install failed for test $T_NAME"
- return
- fi
- touch $TESTFARM_OUTPUT_DIR/$T_NAME.OK
- if [ "$TESTFARM_REMOVE_SUCCESS_LOGS" == "yes" ]; then
- rm -f \
- $TESTFARM_OUTPUT_DIR/$T_NAME.build.out \
- $TESTFARM_OUTPUT_DIR/$T_NAME.configure.out \
- $TESTFARM_OUTPUT_DIR/$T_NAME.distclean.out \
- $TESTFARM_OUTPUT_DIR/$T_NAME.install.out
- fi
- }
- prepare_builddir
- for t in $TESTS ; do
- run_test $t
- done
|