Remove all duplicate platform files, i.e development/ndk/platforms/android-N now only contains files that are introduced in API level 'N' and not found in level 'N-1' (This makes it easier to manage independent platform release branches, and makes platform additions trivial to examine and maintain). Move samples that depends on features of API level 'N' into platforms/android-N/samples + update tests/run-all.sh accordingly Change-Id: I04c4c67c6c674c1714d5812d461d0524a4f4cfd9
127 lines
2.8 KiB
Bash
Executable File
127 lines
2.8 KiB
Bash
Executable File
# Run all tests
|
|
|
|
PROGDIR=`dirname $0`
|
|
PROGDIR=`cd $PROGDIR && pwd`
|
|
|
|
# Assume that we are under tests/
|
|
# and that the samples will be under samples/ and platforms/android-N/samples/
|
|
#
|
|
ROOTDIR=`dirname $PROGDIR`
|
|
#
|
|
# Sanity checks:
|
|
#
|
|
if [ -z "$NDK" ] ; then
|
|
echo "ERROR: Please define NDK in your environment to point to the root of your NDK install."
|
|
exit 1
|
|
fi
|
|
|
|
if [ ! -d "$NDK" ] ; then
|
|
echo "ERROR: Your NDK variable does not point to a directory: $NDK"
|
|
exit 2
|
|
fi
|
|
|
|
if [ ! -f "$NDK/ndk-build" -o ! -f "$NDK/build/core/ndk-common.sh" ] ; then
|
|
echo "ERROR: Your NDK variable does not point to a valid NDK directory: $NDK"
|
|
exit 3
|
|
fi
|
|
|
|
if [ ! -d "$NDK/platforms" -o ! -d "$NDK/samples" ] ; then
|
|
echo "ERROR: Your NDK directory does not have 'platforms' or 'samples' directories."
|
|
echo "Please run $NDK/build/tools/build-platforms.sh first !"
|
|
exit 3
|
|
fi
|
|
|
|
#
|
|
# Parse options
|
|
#
|
|
JOBS=
|
|
while [ -n "$1" ]; do
|
|
opt="$1"
|
|
optarg=`expr "x$opt" : 'x[^=]*=\(.*\)'`
|
|
case "$opt" in
|
|
--help|-h|-\?)
|
|
OPTION_HELP=yes
|
|
;;
|
|
--verbose)
|
|
VERBOSE=yes
|
|
;;
|
|
-j*)
|
|
JOBS="$opt"
|
|
shift
|
|
;;
|
|
--jobs=*)
|
|
JOBS="-j$optarg"
|
|
;;
|
|
-*) # unknown options
|
|
echo "ERROR: Unknown option '$opt', use --help for list of valid ones."
|
|
exit 1
|
|
;;
|
|
*) # Simply record parameter
|
|
if [ -z "$PARAMETERS" ] ; then
|
|
PARAMETERS="$opt"
|
|
else
|
|
PARAMETERS="$PARAMETERS $opt"
|
|
fi
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if [ "$OPTION_HELP" = "yes" ] ; then
|
|
echo "Usage: $PROGNAME [options]"
|
|
echo ""
|
|
echo "Run all NDK automated tests at once."
|
|
echo ""
|
|
echo "Valid options:"
|
|
echo ""
|
|
echo " --help|-h|-? Print this help"
|
|
echo " --verbose Enable verbose mode"
|
|
echo " -j<N> --jobs=<N> Launch parallel builds"
|
|
echo ""
|
|
exit 0
|
|
fi
|
|
|
|
#
|
|
# Create log file
|
|
#
|
|
MYLOG=/tmp/ndk-tests.log
|
|
mkdir -p `dirname $MYLOG`
|
|
rm -f $MYLOG
|
|
echo "NDK automated tests log file" > $MYLOG
|
|
|
|
if [ "$VERBOSE" = "yes" ] ; then
|
|
run ()
|
|
{
|
|
$NDK/ndk-build -B $JOBS 2>&1
|
|
}
|
|
else
|
|
run ()
|
|
{
|
|
$NDK/ndk-build -B $JOBS >> $MYLOG 2>&1
|
|
}
|
|
fi
|
|
|
|
# Find sample directories
|
|
SAMPLE_DIRS=`cd $ROOTDIR && ls -d samples/*`
|
|
SAMPLE_DIRS="$SAMPLE_DIRS "`cd $ROOTDIR && ls -d platforms/android-*/samples/*`
|
|
|
|
#
|
|
# Rebuild all samples first
|
|
# $1: sample name
|
|
#
|
|
build_sample ()
|
|
{
|
|
echo "Building NDK sample: `basename $1`"
|
|
SAMPLEDIR=$ROOTDIR/$1
|
|
cd $SAMPLEDIR
|
|
run $NDK/ndk-build -B $JOBS
|
|
if [ $? != 0 ] ; then
|
|
echo "!!! BUILD FAILURE [$1]!!! See $MYLOG for details or use --verbose option!"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
for DIR in $SAMPLE_DIRS; do
|
|
build_sample $DIR
|
|
done
|