# 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