mirror_corosync/test/testmake.sh
Jim Meyering 904a10ed38 remove all trailing blanks
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2117 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-22 08:03:55 +00:00

116 lines
1.7 KiB
Bash

#!/bin/sh
#
# author: Angus Salkeld (ahsalkeld@gmail.com)
#
# usage:
# run this from the base directory of corosync
#
SRCDIR=$(pwd)
ALL_TESTS="1 2 3 4"
MAKE_LOG=/tmp/corosync-make-test.log
test_1()
{
TEST="[1] simple make"
rm -f $SRCDIR/make_o_path
make >$MAKE_LOG 2>&1
return $?
}
make_clean()
{
if [ -f $SRCDIR/make_o_path ]
then
make $(cat $SRCDIR/make_o_path) clean >$MAKE_LOG 2>&1
RES=$?
else
if [ -n "$BUILD_DIR" ]
then
pushd $BUILD_DIR >/dev/null
make -f $SRCDIR/Makefile clean >$MAKE_LOG 2>&1
RES=$?
popd >/dev/null
else
make clean >$MAKE_LOG 2>&1
RES=$?
fi
fi
return $RES
}
test_2()
{
rm -f $SRCDIR/make_o_path
TEST="[2] make from exec dir"
pushd $SRCDIR/exec >/dev/null
make >$MAKE_LOG 2>&1
RES=$?
popd >/dev/null
return $RES
}
test_3()
{
local BUILD_DIR=/tmp/corosync-make-test
echo "O=$BUILD_DIR" > $SRCDIR/make_o_path
TEST="[3] make objects separately from the source"
rm -rf $BUILD_DIR
make O=$BUILD_DIR >$MAKE_LOG 2>&1
unset BUILD_DIR
return $?
}
test_4()
{
BUILD_DIR=/tmp/corosync-make-test
rm -f $SRCDIR/make_o_path
TEST="[4] make -f SRCDIR/Makefile from the builddir"
rm -rf $BUILD_DIR
mkdir -p $BUILD_DIR
pushd $BUILD_DIR >/dev/null
make -f $SRCDIR/Makefile >$MAKE_LOG 2>&1
RES=$?
popd >/dev/null
return $RES
}
if [ -n "$1" ]
then
TESTS_TO_RUN=$1
else
TESTS_TO_RUN=$ALL_TESTS
fi
for t in $TESTS_TO_RUN
do
test_$t
if [ $? -ne 0 ]
then
echo "$0 $TEST [failed]."
cat $MAKE_LOG
exit 1
else
echo "$0 $TEST [passed]."
fi
make_clean
if [ $? -ne 0 ]
then
echo "$0 $TEST [failed to clean]."
cat $MAKE_LOG
exit 1
else
echo "$0 $TEST [cleaned]."
fi
done
echo $0 all make tests passed!
exit 0